4.4 Lección 1
Certificación: |
Linux Essentials |
---|---|
Versión: |
1.6 |
Tema: |
4 El sistema operativo Linux |
Objetivo: |
4.4 Su computadora en la red |
Lección: |
1 de 1 |
Introducción
En el mundo actual, cualquier tipo de dispositivo informático intercambia información por medio de redes. En el corazón mismo del concepto de redes de computadoras están las conexiones físicas entre un dispositivo y sus pares. Estas conexiones se denominan enlaces y son la conexión más básica entre dos dispositivos diferentes. Los enlaces se pueden establecer a través de diversos medios, como cables de cobre, fibras ópticas, ondas de radio o láser.
Cada enlace está conectado por medio de una interfaz del dispositivo. Cada dispositivo puede tener múltiples interfaces y por lo tanto estar conectado a múltiples enlaces. A través de estos enlaces, las computadoras pueden formar una red; una pequeña comunidad de dispositivos que pueden conectarse directamente entre sí. Existen numerosos ejemplos de tales redes en el mundo. Para poder comunicarse más allá del alcance de una red de capa de enlace, los dispositivos usan enrutadores. Piense en las redes de capa de enlace como islas conectadas por enrutadores que conectan las islas, igual que los puentes, la información tiene que viajar para llegar a un dispositivo que forma parte de una isla remota.
Este modelo conduce a varias capas diferentes de redes:
- Capa de enlace
-
Maneja la comunicación entre dispositivos conectados directamente.
- Capa de red
-
Maneja el enrutamiento fuera de las redes individuales y el direccionamiento único de dispositivos más allá de una red única de capa de enlace.
- Capa de aplicación
-
Permite que los programas se conecten entre sí.
En principio, las redes de computadoras usaban los mismos métodos de comunicación que los teléfonos, ya que tenían conmutación de circuitos. Esto significa que se debe formar un enlace dedicado y directo entre dos nodos para que puedan comunicarse. Este método funcionó bien, sin embargo, requirió todo el espacio en un enlace dado para que solo dos hosts se pudieran comunicar.
Finalmente, las redes de computadoras se trasladaron a algo llamado paquetes de conmutación. En este método, los datos se agrupan por un encabezado que contiene información acerca de dónde proviene la información y hacia dónde va. La información de contenido real está contenida en este marco y se envía a través del enlace al destinatario indicado en el encabezado del marco. Esto permite que múltiples dispositivos compartan un solo enlace y se comuniquen casi simultáneamente.
Redes de capa de enlace
El trabajo de cualquier paquete es llevar información desde la fuente a su destino a través de un enlace que conecta ambos dispositivos. Estos dispositivos necesitan una forma de identificarse entre sí. Este es el propósito de una dirección de capa de enlace. En una red ethernet, se usan Media Access Control Addresses (MAC) para identificar dispositivos individuales. Una dirección MAC consta de 48 bits. No son necesariamente únicos a nivel mundial y no pueden utilizarse para dirigirse a pares fuera del enlace actual. Por lo tanto, estas direcciones no se pueden usar para enrutar paquetes a otros enlaces. El destinatario de un paquete verifica si la dirección de destino coincide con su propia capa de enlace y, si lo hace, procesa el paquete. De lo contrario, el paquete se descarta. La excepción a esta regla son los paquetes de difusión (un paquete enviado a todos en una red local determinada) que siempre se aceptan.
El comando ip link show
muestra una lista de todas las
interfaces de red disponibles y sus
direcciones de capa de enlace, así como
alguna otra información sobre el tamaño
máximo de paquete:
$ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 00:0c:29:33:3b:25 brd ff:ff:ff:ff:ff:ff
El resultado anterior muestra que el
dispositivo tiene dos interfaces, lo
y ens33
. lo
es el loopback device y tiene
la dirección MAC 00:00:00:00:00:00
mientras que ens33
es una
interfaz de Ethernet y tiene la
dirección MAC 00:0c:29:33:3b:25
.
Redes IPv4
Para visitar sitios web como Google o Twitter, consultar correos electrónicos o permitir que las empresas se conecten entre sí; los paquetes deberán poder moverse de una red de capa de enlace a otra. A menudo, estas redes están conectadas de manera indirecta, con varias redes de capa de enlace intermedio que los paquetes tienen que cruzar para llegar a su destino real.
Las direcciones de capa de enlace de una interfaz de red no se pueden usar fuera de esa red de capa de enlace específica. Dado que esta dirección no tiene importancia para los dispositivos en otras redes de capa de enlace, se necesita una forma de direcciones globalmente únicas para implementar el enrutamiento. Este esquema de direccionamiento, junto con el concepto general de enrutamiento, se implementa mediante Internet Protocol (IP).
Note
|
Un protocolo es un conjunto de procedimientos de como hacer algo para que todas las partes que siguen el protocolo sean compatibles entre sí. Un protocolo puede verse como la definición de un estándar. En informática, el Protocolo de Internet es un estándar acordado por todos para que diferentes dispositivos producidos por diferentes fabricantes puedan comunicarse entre sí. |
Direcciones IPv4
Las direcciones IP, como las direcciones MAC, son una forma de indicar de dónde viene un paquete de datos y hacia dónde va. IPv4 fue el protocolo original. Las direcciones IPv4 tienen 32 bits de ancho, lo que da un número máximo teórico de 4,294,967,296 direcciones. Sin embargo, el número de esas direcciones que pueden usar los dispositivos es mucho menor, ya que algunos rangos están reservados para casos de uso especiales, como las direcciones de difusión (que se utilizan para llegar a todos los participantes de una red específica), las direcciones de multidifusión (similares a las direcciones de difusión, pero el dispositivo debe sintonizarse como una radio) o aquellos reservados para uso privado.
En un formato legible para los
humanos, las direcciones IPv4 se
construyen con cuatro dígitos
separados por un punto. Cada dígito
puede variar de 0
a 255
.
Por ejemplo, esto es una dirección IP:
192.168.0.1
Técnicamente, cada uno de estos dígitos representa ocho bits individuales. Por lo tanto, esta dirección también podría escribirse así:
11000000.10101000.00000000.00000001
En la práctica se usa la notación
decimal como se ve en el ejemplo
anterior, sin embargo, esto es una
representación para comprender como se
aplica en la práctica el concepto de
subredes (subneteo).
Subredes IPv4
Para admitir el enrutamiento, las direcciones IP se pueden dividir en dos partes: la red y los host. La primera parte identifica la red en la que se encuentra el dispositivo y se utiliza para enrutar paquetes. La parte de los host se usa para identificar un dispositivo específico en una red y entregar el paquete a su destinatario específico una vez que haya seleccionado su red de capa de enlace.
Las direcciones IP se pueden dividir en subredes y en hosts en cualquier momento. La llamada máscara de subred define dónde ocurre esta división. Reconsideremos la representación binaria de la dirección IP del ejemplo anterior:
11000000.10101000.00000000.00000001
Ahora para esta dirección IP, la
máscara de subred establece cada bit
perteneciente a la red con valor 1
y cada bit que pertenece a los hosts
con valor 0
:
11111111.11111111.11111111.00000000
En la práctica, la máscara de red se escribe en la notación decimal:
255.255.255.0
Esto significa que esta red varía de
192.168.0.0
a 192.168.0.255
.
Tenga en cuenta que los primeros tres
números tienen todos los bits
establecidos en la máscara de red,
permanecen sin cambios en las
direcciones IP.
Finalmente, hay una notación
alternativa para la máscara de subred,
que se denomina Classless
Inter-Domain Routing (CIDR).
Esta notación solo indica cuántos bits
se configuran en la máscara de subred
y agrega este número a la dirección
IP. En el ejemplo, 24 de 32 bits están
configurados en 1
en la
máscara de subred. Esto se puede
expresar en notación CIDR como 192.168.0.1/24
Direcciones IPv4 privadas
Como se mencionó anteriormente, algunas secciones del espacio de direcciones IPv4 están reservadas para casos de uso especiales. Uno de estos casos de uso son las asignaciones de direcciones privadas. Las siguientes subredes están reservadas para direccionamiento privado:
-
10.0.0.0/8
-
172.16.0.0/12
-
192.168.0.0/16
Las direcciones que salen de estas subredes pueden ser utilizadas por cualquier persona. Sin embargo, estas subredes no se pueden enrutar en Internet público, ya que potencialmente son utilizadas por numerosas redes al mismo tiempo.
La mayoría de las redes usan estas direcciones internas permitiendo la comunicación interna sin la necesidad de ninguna asignación. La mayoría de las conexiones a Internet hoy en día solo vienen con una única dirección IPv4 externa. Los enrutadores asignan todas las direcciones internas a esa única dirección IP externa cuando reenvían paquetes a Internet. Esto se llama Network Address Translation (NAT). El caso especial de NAT en el que un enrutador asigna direcciones internas a una sola dirección IP externa a veces se llama enmascaramiento (masquerading). Esto permite que cualquier dispositivo en la red interna establezca nuevas conexiones con cualquier dirección IP global en Internet.
Note
|
Con el enmascaramiento, los dispositivos internos no pueden ser referenciados desde Internet ya que no tienen una dirección válida globalmente. Sin embargo, esto no es una característica de seguridad. Incluso cuando se usa el enmascaramiento se necesita un firewall. |
Configuración de dirección IPv4
Hay dos formas principales de configurar las direcciones IPv4 en una computadora. Asignando direcciones manualmente o usando el Dynamics Host Configuration Protocol (DHCP) para la configuración automática.
Cuando se utiliza DHCP, un servidor central controla qué direcciones se entregan a qué dispositivos. El servidor también puede suministrar a los dispositivos otra información sobre la red, como las direcciones IP de los servidores DNS, la dirección IP del enrutador predeterminado o en el caso de configuraciones más complicadas, iniciar un sistema operativo desde la red. DHCP está habilitado de manera predeterminada en muchos sistemas, por lo tanto, es probable que ya tenga una dirección IP cuando esté conectado a una red.
Las direcciones IP también se pueden
agregar manualmente a una interfaz
usando el comando ip addr add
.
Aquí, agregamos la dirección 192.168.0.5
a la interfaz ens33
. La
red utiliza la máscara de red 255.255.255.0
que es igual a /24
en
notación CIDR:
$ sudo ip addr add 192.168.0.5/255.255.255.0 dev ens33
Ahora podemos verificar que la
dirección fue agregada usando el
comando ip addr show
:
$ ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 25: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0c:29:33:3b:25 brd ff:ff:ff:ff:ff:ff inet 192.168.0.5/24 192.168.0.255 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::010c:29ff:fe33:3b25/64 scope link noprefixroute valid_lft forever preferred_lft forever
La salida anterior muestra tanto la
interfaz lo
como la
interfaz ens33
con su
dirección asignada con el comando
anterior.
Para verificar la accesibilidad de un
dispositivo se puede usar el comando ping
.
Envía un tipo de mensaje especial
llamado echo request en el
que el remitente solicita una
respuesta al destinatario. Si la
conexión entre los dos dispositivos se
puede establecer con éxito, el
destinatario enviará una respuesta de
echo verificando así la conexión:
$ ping -c 3 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=2.16 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=1.85 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=3.41 ms --- 192.168.0.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 5ms rtt min/avg/max/mdev = 1.849/2.473/3.410/0.674 ms
El parámetro -c 3
hace
que ping
se detenga
después de enviar tres solicitudes de
echo. De lo contrario, ping
continúa ejecutándose permanentemente
y debe detenerse presionando Ctrl+C.
Enrutamiento IPv4
El enrutamiento es el proceso en el que un paquete llega desde la red de origen a la red de destino. Cada dispositivo mantiene una tabla de enrutamiento que contiene información sobre a qué red se puede acceder a través de la conexión del dispositivo para vincular redes de capa y a qué red se puede acceder al pasar paquetes a un enrutador. Finalmente, una ruta predeterminada define un enrutador que recibe todos los paquetes que no coinciden con ninguna otra ruta.
Al establecer una conexión, el dispositivo busca la dirección IP del objetivo en su tabla de enrutamiento. Si una entrada coincide con la dirección, el paquete se envía a la red de capa de enlace respectiva o se pasa al enrutador indicado en la tabla de enrutamiento.
Los enrutadores también mantienen tablas de enrutamiento, al recibir un paquete un enrutador también busca la dirección de destino en su propia tabla de enrutamiento y envía el paquete al siguiente enrutador. Esto se repite hasta que el paquete llega al enrutador en la red de destino. Cada enrutador involucrado en este viaje se llama hop. Este último enrutador encuentra un enlace conectado directo para la dirección de destino en su tabla de enrutamiento y envía los paquetes a su interfaz de destino.
La mayoría de las redes domésticas solo tienen una salida, el enrutador singular que obtuvieron del proveedor de servicios de Internet (ISP). En este caso, un dispositivo solo reenvía todos los paquetes que no son para la red interna directamente al enrutador doméstico que luego lo enviará al enrutador del proveedor para su posterior reenvío. Este es un ejemplo de la ruta predeterminada.
El comando ip route show
enumera la tabla de enrutamiento IPv4
actual:
$ ip route show 127.0.0.0/8 via 127.0.0.1 dev lo0 192.168.0.0/24 dev ens33 scope link
Para agregar una ruta predeterminada,
todo lo que se necesita es la
dirección interna del enrutador que
será la puerta de enlace
predeterminada. Si por ejemplo, el
enrutador tiene la dirección 192.168.0.1
,
entonces el siguiente comando lo
configura como una ruta
predeterminada:
$ sudo ip route add default via 192.168.0.1
Para verificar, ejecute ip
route show
nuevamente:
$ ip route show default via 192.168.0.1 dev ens33 127.0.0.0/8 via 127.0.0.1 dev lo0 192.168.0.0/24 dev ens33 scope link
Redes IPv6
IPv6 fue diseñado para hacer frente a las deficiencias de IPv4, principalmente la falta de direcciones a medida que se conectaban más y más dispositivos. Sin embargo, IPv6 también incluye otras características como nuevos protocolos para la configuración automática de la red. En lugar de 32 bits por dirección, IPv6 usa 128. Esto permite aproximadamente 2128 direcciones. Sin embargo, al igual que IPv4, la cantidad de direcciones utilizables globalmente únicas es mucho menor debido a que las secciones de la asignación se reservan para otros usos. Esto significa que hay más que suficientes direcciones públicas para cada dispositivo que se encuentra actualmente conectado a Internet y para muchos más por venir, lo que reduce la necesidad de enmascararse y sus problemas, como el retraso durante la traducción y la imposibilidad de conectarse directamente a dispositivos enmascarados.
Direcciones IPv6
Las direcciones usan 8 grupos de 4 dígitos hexadecimales cada uno separado por dos puntos:
2001:0db8:0000:abcd:0000:0000:0000:7334
Note
|
Los dígitos hexadecimales
van de |
Para más fácilIdad, se pueden eliminar los ceros iniciales de cada grupo cuando se escriben, sin embargo, cada grupo debe contener al menos un dígito:
2001:db8:0:abcd:0:0:0:7334
Cuando varios grupos que contienen
solo ceros que se encuentran uno tras
otro, pueden reemplazarse por ::
:
2001:db8:0:abcd::7334
Sin embargo, esto solo puede suceder una vez en cada dirección.
Prefijo IPv6
Los primeros 64 bits de una dirección IPv6 se conocen como prefijo de ruta (routing prefix). Los enrutadores utilizan este prefijo para determinar a qué red pertenece un dispositivo y por lo tanto a qué ruta deben enviarse los datos. La división en subredes siempre ocurre dentro del prefijo. Los ISP generalmente distribuyen prefijos /48 o /58 a sus clientes dejándo 16 o 8 bits para su subred interna.
Hay tres tipos principales de prefijos en IPv6:
- Global Unique Address
-
En donde el prefijo se asigna desde los bloques reservados para direcciones globales. Estas direcciones son válidas en todo internet.
- Unique Local Address
-
No se puede enrutar en internet. Sin embargo, pueden enrutarse internamente dentro de una organización. Estas direcciones se usan dentro de una red para garantizar que los dispositivos siempre tengan una dirección incluso cuando no haya conexión a Internet. Son el equivalente de los rangos de direcciones privadas de IPv4. Los primeros 8 bits son siempre
fc
ofd
seguidos de 40 bits generados aleatoriamente. - Link Local Address
-
Solo son válidos en un enlace en particular. Cada interfaz de red compatible con IPv6 tiene una de esas direcciones, comenzando con
fe80
. IPv6 utiliza estas direcciones internamente para solicitar direcciones adicionales mediante la configuración automática y para buscar otras computadoras en la red mediante el protocolo Neighbor Discovery (ND).
Identificador de interfaz IPv6
Si bien el prefijo determina en qué red reside un dispositivo, el identificador de interfaz se utiliza para enumerar los dispositivos dentro de una red. Los últimos 64 bits en una dirección IPv6 forman el identificador de interfaz, al igual que los últimos bits de una dirección IPv4.
Cuando una dirección IPv6 se asigna manualmente, el identificador de interfaz se configura como parte de la dirección. Cuando se usa la configuración de dirección automática, el identificador de la interfaz se elige al azar o se deriva de la dirección de la capa de enlace del dispositivo. Esto hace que aparezca una variación de la dirección de la capa de enlace dentro de la dirección IPv6.
Configuración de dirección IPv6
Al igual que IPv4, la dirección IPv6 se puede asignar de forma manual o automática. Sin embargo, IPv6 tiene dos tipos diferentes de configuración automatizada, DHCPv6 y Stateless Address Autoconfiguration (SLAAC)
SLAAC es el más fácil de los dos métodos automatizados y está integrado en el estándar IPv6. Los mensajes usan el nuevo Neighbor Discovery Protocol que permite que los dispositivos se encuentren y soliciten información sobre una red. Esta información es enviada por enrutadores y puede contener prefijos IPv6 que los dispositivos pueden usar combinándolos con un identificador de interfaz de su elección siempre que la dirección resultante aún no esté en uso. Los dispositivos no proporcionan comentarios al enrutador sobre las direcciones reales que han creado.
Por otro lado, DHCPv6 es el DHCP actualizado hecho para trabajar con los cambios de IPv6. Permite un control más preciso sobre la información entregada a los clientes, como permitir que la misma dirección se entregue al mismo cliente cada vez que se conecta y enviar más opciones al cliente que SLAAC. Con DHCPv6, los clientes necesitan obtener el consentimiento explícito de un servidor DHCP para usar una dirección.
El método para asignar manualmente una dirección IPv6 a una interfaz es el mismo que con IPv4:
$ sudo ip addr add 2001:db8:0:abcd:0:0:0:7334/64 dev ens33
Para verificar que la asignación ha
funcionado se usa el mismo comando ip
addr show
:
$ ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 25: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0c:29:33:3b:25 brd ff:ff:ff:ff:ff:ff inet 192.168.0.5/24 192.168.0.255 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80::010c:29ff:fe33:3b25/64 scope link noprefixroute valid_lft forever preferred_lft forever inet6 2001:db8:0:abcd::7334/64 scope global valid_lft forever preferred_lft forever
Aquí también vemos la dirección de
enlace local fe80::010c:29ff:fe33:3b25/64
.
Al igual que IPv4, el comando ping
también se puede usar para confirmar
la accesibilidad de los dispositivos a
través de IPv6:
$ ping 2001:db8:0:abcd::1 PING 2001:db8:0:abcd::1(2001:db8:0:abcd::1) 56 data bytes 64 bytes from 2001:db8:0:abcd::1: icmp_seq=1 ttl=64 time=0.030 ms 64 bytes from 2001:db8:0:abcd::1: icmp_seq=2 ttl=64 time=0.040 ms 64 bytes from 2001:db8:0:abcd::1: icmp_seq=3 ttl=64 time=0.072 ms --- 2001:db8:0:abcd::1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 43ms rtt min/avg/max/mdev = 0.030/0.047/0.072/0.018 ms
Note
|
En algunos sistemas Linux,
|
Para nuevamente verificar la
dirección del enlace local, use ping
de nuevo. Pero como todas las
interfaces usan el prefijo fe80::/64
,
se debe especificar la interfaz
correcta junto con la dirección:
$ ping6 -c 1 fe80::010c:29ff:fe33:3b25%ens33 PING fe80::010c:29ff:fe33:3b25(fe80::010c:29ff:fe33:3b25) 56 data bytes 64 bytes from fe80::010c:29ff:fe33:3b25%ens33: icmp_seq=1 ttl=64 time=0.049 ms --- fe80::010c:29ff:fe33:3b25 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.049/0.049/0.049/0.000 ms
DNS
Las direcciones IP son difíciles de
recordar y tienen un alto factor de
frialdad si está tratando de
comercializar un servicio o producto.
Aquí es donde entra en juego el Domain
Name System. En su forma más
simple, DNS es una guía telefónica
distribuida que asigna nombres de
dominio fáciles de recordar como example.com
a direcciones IP. Cuando, por ejemplo,
un usuario navega a un sitio web,
ingresa el nombre de host DNS como parte
de la URL. El navegador web luego envía
el nombre DNS a la resolver DNS
que se haya configurado. Este resolver
a su vez encontrará la dirección que se
correlaciona con el dominio. Luego, el resolver
responde con esa dirección y el
navegador web intenta llegar al servidor
web en esa dirección IP.
Los resolvers que Linux usa
para buscar datos DNS se configuran en
el archivo de configuración /etc/resolv.conf
:
$ cat /etc/resolv.conf search lpi nameserver 192.168.0.1
Cuando el resolver realiza una
búsqueda de nombre, primero verifica el
archivo /etc/hosts
para
ver si contiene una dirección para el
nombre solicitado. Si lo hace, devuelve
esa dirección y no se pone en contacto
con el DNS. Esto permite a los
administradores de red proporcionar
resolución de nombres sin tener que
pasar por el esfuerzo de configurar un
servidor DNS completo. Cada línea en ese
archivo contiene una dirección IP
seguida de uno o más nombres:
127.0.0.1 localhost.localdomain localhost ::1 localhost.localdomain localhost 192.168.0.10 server 2001:db8:0:abcd::f server
Para realizar una búsqueda en el DNS
use el comando host
:
$ host learning.lpi.org learning.lpi.org has address 208.94.166.198
Se puede recuperar información más
detallada utilizando el comando dig
:
$ dig learning.lpi.org ; <<>> DiG 9.14.3 <<>> learning.lpi.org ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21525 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ; COOKIE: 2ac55879b1adef30a93013705d3306d2128571347df8eadf (bad) ;; QUESTION SECTION: ;learning.lpi.org. IN A ;; ANSWER SECTION: learning.lpi.org. 550 IN A 208.94.166.198 ;; Query time: 3 msec ;; SERVER: 192.168.0.1#53(192.168.0.1) ;; WHEN: Sat Jul 20 14:20:21 EST 2019 ;; MSG SIZE rcvd: 89
Aquí también vemos el nombre de los
tipos de registro DNS, en este caso A
para IPv4.
Sockets
Un socket es un punto final de comunicación para dos programas que se comunican entre sí. Si el socket está conectado a una red, los programas pueden ejecutarse en diferentes dispositivos, como un navegador web que se ejecuta en la computadora portátil de un usuario y un servidor web que se ejecuta en el centro de datos de una empresa.
Hay tres tipos principales de sockets:
- Unix Sockets
-
Son procesos de conexión que se ejecutan en el mismo sistema (ordenador).
- UDP (User Datagram Protocol) Sockets
-
Se conectan aplicaciones usando un protocolo que es rápido pero no resistente.
- TCP (Transmission Control Protocol) Sockets
-
Son más confiables que los sockets UDP y confirman la recepción de datos.
Los sockets Unix solo pueden conectar aplicaciones que se ejecutan en el mismo sistema. Sin embargo, los sockets TCP y UDP pueden conectarse a través de una red. TCP permite una secuencia de datos que siempre llega en el orden exacto en que se envió. UDP es más fugaz; el paquete se envía pero no se garantiza su entrega en el otro extremo. Sin embargo, UDP carece de la sobrecarga de TCP, por lo que es perfecto para aplicaciones de baja latencia, como los videojuegos en línea.
TCP y UDP usan puertos para abordar múltiples sockets en la misma dirección IP. Si bien el puerto de origen para una conexión suele ser aleatorio, los puertos de destino están estandarizados para un servicio específico. Por ejemplo HTTP generalmente está alojado en el puerto 80, HTTPS se ejecuta en el puerto 443. SSH un protocolo para iniciar sesión de forma segura en un sistema Linux remoto, escucha en el puerto 22.
El comando ss
le permite
a un administrador investigar todos los
sockets en una computadora Linux.
Muestra todo, desde la dirección de
origen, la dirección de destino y el
tipo. Una de sus mejores características
es el uso de filtros para que un usuario
pueda monitorear los sockets en
cualquier estado de conexión que desee.
El comando ss
se puede
ejecutarse con un conjunto de opciones,
así como una expresión de filtro para
limitar la información que se muestra.
Cuando se ejecuta sin ninguna opción,
el comando muestra una lista de todos
los sockets establecidos. El uso de la
opción -p
incluye
información sobre el proceso con cada
socket. La opción –s
muestra un resumen de los sockets. Hay
muchas más opciones disponibles para
esta herramienta, pero el último
conjunto de las principales son -4
y -6
para reducir el
protocolo IP a IPv4 o IPv6
respectivamente, -t
y -u
permiten al administrador seleccionar
sockets TCP o UDP y -l
para mostrar solo los sockets que
escuchan nuevas conexiones.
Por ejemplo, el siguiente comando enumera todos los sockets TCP actualmente en uso:
$ ss -t State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 192.168.0.5:49412 192.168.0.1:https ESTAB 0 0 192.168.0.5:37616 192.168.0.1:https ESTAB 0 0 192.168.0.5:40114 192.168.0.1:https ESTAB 0 0 192.168.0.5:54948 192.168.0.1:imap ...
Ejercicios guiados
-
Se le solicita a un ingeniero de red que asigne dos direcciones IP a la interfaz
ens33
de un host, una dirección IPv4 (192.168.10.10/24
) y una dirección IPv6 (2001:0:0:abcd:0:8a2e:0370:7334/64
). ¿Qué comandos debe ingresar para lograr esto?
-
¿Qué direcciones de la lista son privadas?
192.168.10.1
120.56.78.35
172.16.57.47
10.100.49.162
200.120.42.6
-
¿Qué entrada agregaría al archivo hosts para asignar
192.168.0.15
aexample.com
?
-
¿Qué efecto tendría el siguiente comando?
sudo ip -6 route add default via 2001:db8:0:abcd::1
Ejercicios exploratorios
-
Nombre el tipo de registro DNS utilizado para atender las siguientes solicitudes:
-
Dato textual
-
Búsqueda inversa de dirección IP
-
Un dominio no tiene dirección propia y depende de otro dominio para esta información
-
Servidor de correo
-
-
Linux tiene una característica llamada puente (bridging). ¿Qué hace y cómo es útil?
-
¿Qué opción se debe proporcionar al comando
ss
para ver todos los sockets UDP establecidos?
-
¿Qué comando muestra un resumen de todos los sockets que se ejecutan en un dispositivo Linux?
-
El siguiente resultado es generado por el comando del ejercicio anterior. ¿Cuántos sockets TCP y UDP están activos?
Total: 978 (kernel 0) TCP: 4 (estab 0, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0 Transport Total IP IPv6 * 0 - - RAW 1 0 1 UDP 7 5 2 TCP 4 3 1 INET 12 8 4 FRAG 0 0 0
Resumen
Este tema cubrió la conexión en red de su computadora Linux. Primero aprendimos sobre los diversos niveles de redes:
-
La capa de enlace conecta los dispositivos directamente.
-
La capa de red que proporciona enrutamiento entre redes y un espacio de direcciones global.
-
La capa de aplicación donde las aplicaciones se conectan entre sí.
Hemos visto cómo se usan IPv4 e IPv6 para abordar computadoras individuales y cómo TCP y UDP enumeran los sockets utilizados por las aplicaciones para conectar entre sí. También aprendimos cómo se usa DNS para resolver nombres en direcciones IP.
Comandos utilizados en los ejercicios:
dig
-
Consulta información de DNS y proporcionar información detallada sobre las consultas y respuestas del mismo.
host
-
Consulta información DNS y proporcionando salida.
ip
-
Configura las redes en Linux, incluidas las interfaces de red, las direcciones y el enrutamiento.
ping
-
Prueba la conectividad con un dispositivo remoto.
ss
-
Muestra información sobre sockets.
Respuestas a los ejercicios guiados
-
Se le solicita a un ingeniero de red que asigne dos direcciones IP a la interfaz
ens33
de un host, una dirección IPv4 (192.168.10.10/24
) y una dirección IPv6 (2001:0:0:abcd:0:8a2e:0370:7334/64
). ¿Qué comandos debe ingresar para lograr esto?sudo ip addr add 192.168.10.10/24 dev ens33 sudo ip addr add 2001:0:0:abcd:0:8a2e:0370:7334/64 dev ens33
-
¿Qué direcciones de la lista son privadas?
192.168.10.1
X
120.56.78.35
172.16.57.47
X
10.100.49.162
X
200.120.42.6
-
¿Qué entrada agregaría al archivo hosts para asignar
192.168.0.15
aexample.com
?192.168.0.15 example.com
-
¿Qué efecto tendría el siguiente comando?
sudo ip -6 route add default via 2001:db8:0:abcd::1
Agregaría una ruta predeterminada a la tabla que envía todo el tráfico IPv6 al enrutador con la dirección interna
2001:db8:0:abcd::1
.
Respuestas a los ejercicios exploratorios
-
Nombre el tipo de registro DNS utilizado para atender las siguientes solicitudes:
-
Dato textual
TXT
-
Búsqueda inversa de dirección IP
PTR
-
Un dominio no tiene dirección propia y depende de otro dominio para esta información
CNAME
-
Servidor de correo
MX
-
-
Linux tiene una característica llamada puente (bridging). ¿Qué hace y cómo es útil?
Un puente conecta múltiples interfaces de red. Todas las interfaces conectadas a un puente pueden comunicarse como si estuvieran conectadas a la misma red de capa de enlace: todos los dispositivos usan direcciones IP de la misma subred y no requieren un enrutador para conectarse entre sí.
-
¿Qué opción se debe proporcionar al comando
ss
para ver todos los sockets UDP establecidos?La opción
-u
muestra todos los sockets UDP establecidos.¿Qué comando muestra un resumen de todos los sockets que se ejecutan en un dispositivo Linux?
El comando
ss -s
muestra un resumen de todos los sockets. -
El siguiente resultado es generado por el comando del ejercicio anterior. ¿Cuántos sockets TCP y UDP están activos?
Total: 978 (kernel 0) TCP: 4 (estab 0, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0 Transport Total IP IPv6 * 0 - - RAW 1 0 1 UDP 7 5 2 TCP 4 3 1 INET 12 8 4 FRAG 0 0 0
11 sockets TCP y UDP están activos.