Configurar y Verificar Direcciones IPv6 en Linux

CompTIABeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá las habilidades fundamentales para configurar y verificar direcciones IPv6 en un sistema Linux. Utilizando herramientas modernas de línea de comandos, obtendrá experiencia práctica con las tareas esenciales involucradas en la gestión de redes IPv6, desde la inspección hasta la configuración estática y las pruebas de conectividad. Este laboratorio se centra en el uso del comando ip del conjunto iproute2 y la utilidad ping6, que son estándar en distribuciones Linux modernas como Ubuntu 22.04.

Comenzará utilizando el comando ip a para descubrir las direcciones IPv6 de loopback y de enlace local configuradas automáticamente en sus interfaces de red. A continuación, asignará manualmente una dirección global unicast estática a una interfaz. Finalmente, utilizará el comando ping6 para verificar la conectividad de red a las direcciones de loopback, de enlace local y a la dirección global unicast recién configurada, confirmando que su configuración IPv6 funciona correctamente.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 100%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Descubrir Direcciones de Enlace Local y Loopback con ip a

En este paso, aprenderá a descubrir las direcciones IPv6 que se configuran automáticamente en su sistema. Las distribuciones Linux modernas, incluida Ubuntu 22.04, tienen IPv6 habilitado por defecto. Utilizaremos el comando ip, que es la herramienta moderna y recomendada para la configuración e inspección de redes en Linux.

Primero, inspeccionemos las interfaces de red y sus direcciones asignadas. El comando ip a es una abreviatura de ip address.

  1. Abra una terminal. Su ruta predeterminada es ~/project.
  2. Ejecute el comando ip a para listar todas las interfaces de red y sus direcciones.
ip a

Verá una salida similar a la siguiente. Los nombres de interfaz exactos (como eth0) y las direcciones pueden variar, pero la estructura será la misma.

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
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:16:3e:00:54:72 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    altname ens5
    inet 172.16.50.202/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
       valid_lft 1892159972sec preferred_lft 1892159972sec
    inet6 fe80::216:3eff:fe00:5472/64 scope link
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:89:01:6f:fc brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

Ahora, analicemos la salida para identificar las direcciones IPv6 clave:

  • Dirección de Loopback: Busque la interfaz llamada lo. Esta es la interfaz virtual de loopback, utilizada para probar la pila de red en la máquina local. Verá la dirección IPv6 ::1/128. Esta es la dirección de loopback IPv6, equivalente a 127.0.0.1 en IPv4. El scope host indica que solo es válida dentro del propio host.

  • Dirección de Enlace Local: Busque su interfaz de red principal (por ejemplo, eth0, enp0s3). Encontrará una dirección inet6 que comienza con fe80::. Esta es su dirección de enlace local. Se asigna automáticamente a cada interfaz habilitada para IPv6 y se utiliza para la comunicación solo en el segmento de red local (por ejemplo, su LAN Ethernet local). El scope link confirma que esta dirección solo es válida en el enlace local y no es enrutable en Internet.

Ahora ha identificado con éxito los dos tipos fundamentales de direcciones IPv6 configuradas automáticamente en su sistema.

Añadir una Dirección Global Unicast Estática con ip addr add

En este paso, configurará manualmente una Dirección Global Unicast (GUA) en su interfaz de red. Mientras que las direcciones de enlace local se utilizan para la comunicación en el segmento de red local, las GUA son el equivalente IPv6 de las direcciones IPv4 públicas. Son globalmente únicas y enrutables en Internet.

Para este laboratorio, utilizaremos una dirección del bloque 2001:db8::/32, que está reservado específicamente para documentación y ejemplos. Esto asegura que no utilicemos accidentalmente una dirección de Internet real y en uso.

  1. Añadiremos la GUA estática 2001:db8:acad::1/64 a la interfaz eth0. El /64 indica la longitud del prefijo, que es estándar para la mayoría de las LAN. Necesitamos sudo porque la modificación de las interfaces de red requiere privilegios administrativos.

    sudo ip -6 addr add 2001:db8:acad::1/64 dev eth0
    • Nota: Este cambio es temporal y se eliminará si reinicia el sistema. Para una configuración permanente en Ubuntu, normalmente editaría archivos en /etc/netplan/, pero eso está fuera del alcance de este laboratorio.
  2. Ahora, verifique que la nueva GUA se ha asignado correctamente. Ejecute el comando ip a nuevamente para inspeccionar sus interfaces de red.

    ip a

    Ahora debería ver la nueva dirección listada bajo la interfaz eth0. Observe el scope global, que indica que es una dirección enrutable.

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        ...
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:00:54:72 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        altname ens5
        inet 172.16.50.202/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159959sec preferred_lft 1892159959sec
        inet6 2001:db8:acad::1/64 scope global
           valid_lft forever preferred_lft forever
        inet6 fe80::216:3eff:fe00:5472/64 scope link
           valid_lft forever preferred_lft forever

Ha asignado correctamente una GUA IPv6 estática a su interfaz de red. En el siguiente paso, probaremos la conectividad a esta nueva dirección.

Probar Conectividad a Loopback y GUA con ping6

En este paso, utilizará la utilidad ping6 para probar la conectividad IPv6. Este comando es el equivalente IPv6 del familiar comando ping y es esencial para el diagnóstico de redes. Verificaremos que su pila IPv6 local está funcionando correctamente y que la Dirección Global Unicast (GUA) que configuró en el paso anterior responde.

Primero, probemos la pila IPv6 local haciendo ping a la dirección de loopback.

  1. Haga ping a la dirección de loopback IPv6 ::1. Utilizaremos la opción -c 3 para enviar solo 3 paquetes en lugar de hacer ping indefinidamente.

    ping6 -c 3 ::1

    Una prueba exitosa mostrará que los paquetes se envían y reciben con un 0% de pérdida de paquetes, lo que confirma que su pila IPv6 local está operativa.

    PING ::1(::1) 56 data bytes
    64 bytes from ::1: icmp_seq=1 ttl=64 time=0.026 ms
    64 bytes from ::1: icmp_seq=2 ttl=64 time=0.021 ms
    64 bytes from ::1: icmp_seq=3 ttl=64 time=0.035 ms
    
    --- ::1 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2030ms
    rtt min/avg/max/mdev = 0.021/0.027/0.035/0.005 ms

A continuación, probemos la GUA que asignó manualmente a la interfaz eth0. Esto confirma que la interfaz está configurada correctamente y está escuchando en esa dirección.

  1. Haga ping a la GUA 2001:db8:acad::1 que añadió en el paso anterior.

    ping6 -c 3 2001:db8:acad::1

    Similar a la prueba de loopback, un resultado exitoso mostrará respuestas de la dirección, confirmando que está correctamente asignada y es accesible en el host.

    PING 2001:db8:acad::1(2001:db8:acad::1) 56 data bytes
    64 bytes from 2001:db8:acad::1: icmp_seq=1 ttl=64 time=0.028 ms
    64 bytes from 2001:db8:acad::1: icmp_seq=2 ttl=64 time=0.037 ms
    64 bytes from 2001:db8:acad::1: icmp_seq=3 ttl=64 time=0.038 ms
    
    --- 2001:db8:acad::1 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2034ms
    rtt min/avg/max/mdev = 0.028/0.034/0.038/0.004 ms

Ahora ha verificado con éxito la conectividad tanto a la dirección de loopback como a su Dirección Global Unicast configurada manualmente.

En este paso, aprenderá cómo probar la conectividad a una dirección de enlace local. Como descubrió anteriormente, estas direcciones comienzan con fe80:: y solo son válidas en un único segmento de red (el "enlace"). Dado que no son globalmente únicas, debe proporcionar información adicional al comando ping6 para especificar qué interfaz de red se debe utilizar para enviar el ping. Esto se conoce como el "índice de zona" o "ID de alcance" (zone index o scope ID).

Primero, necesita encontrar nuevamente la dirección de enlace local de su interfaz eth0.

  1. Ejecute el comando ip a e identifique la dirección inet6 que comienza con fe80:: para la interfaz eth0.

    ip a show eth0

    La salida será similar a esta. Debe copiar la dirección (por ejemplo, fe80::xxxx:xxff:fexx:xxxx).

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:00:54:72 brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        altname ens5
        inet 172.16.50.202/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159869sec preferred_lft 1892159869sec
        inet6 2001:db8:acad::1/64 scope global
           valid_lft forever preferred_lft forever
        inet6 fe80::216:3eff:fe00:5472/64 scope link
           valid_lft forever preferred_lft forever
  2. Ahora, haga ping a esta dirección de enlace local. Para especificar el índice de zona, añada % seguido del nombre de la interfaz (eth0) a la dirección. Reemplace YOUR_LINK_LOCAL_ADDRESS con la dirección real que acaba de encontrar.

    ping6 -c 3 YOUR_LINK_LOCAL_ADDRESS%eth0

    Por ejemplo, si su dirección fuera fe80::216:3eff:fe00:5472, el comando sería:
    ping6 -c 3 fe80::216:3eff:fe00:5472%eth0

    Un ping exitoso confirma que la interfaz responde a su dirección de enlace local.

    PING fe80::216:3eff:fe00:5472%eth0(fe80::216:3eff:fe00:5472%eth0) 56 data bytes
    64 bytes from fe80::216:3eff:fe00:5472%eth0: icmp_seq=1 ttl=64 time=0.031 ms
    64 bytes from fe80::216:3eff:fe00:5472%eth0: icmp_seq=2 ttl=64 time=0.030 ms
    64 bytes from fe80::216:3eff:fe00:5472%eth0: icmp_seq=3 ttl=64 time=0.030 ms
    
    --- fe80::216:3eff:fe00:5472%eth0 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2028ms
    rtt min/avg/max/mdev = 0.030/0.030/0.031/0.000 ms

    Si olvida la parte %eth0, el comando fallará porque el sistema no sabrá qué interfaz usar para el destino de enlace local. Esta sintaxis especial es un concepto clave en el manejo de direcciones IPv6 de enlace local.

Resumen

En este laboratorio, aprendió a realizar tareas fundamentales de configuración y verificación de IPv6 en un sistema Linux utilizando el conjunto de comandos ip. Comenzó utilizando ip a para inspeccionar las interfaces de red, identificando con éxito la dirección IPv6 de loopback asignada automáticamente (::1) en la interfaz lo y la dirección de enlace local (precedida por fe80::) en la interfaz de red principal. Luego procedió a configurar manualmente una Dirección Global Unicast (GUA) estática en la interfaz principal utilizando el comando ip addr add.

Para validar la configuración, utilizó la utilidad ping6. Confirmó que la pila de red local estaba operativa haciendo ping a la dirección de loopback y verificó que la GUA estática estaba correctamente asignada y era accesible. Finalmente, aprendió el requisito específico para probar las direcciones de enlace local, que implica el uso de la sintaxis %interface con ping6 para especificar explícitamente el índice de zona (interfaz de salida), un paso necesario debido al alcance de "enlace" (link scope) de estas direcciones.