Configurar un túnel 6to4 de IPv4 a IPv6 en Linux

CompTIABeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a configurar un túnel IPv4 a IPv6 6to4 en un entorno Linux. Este ejercicio práctico lo guiará a través del proceso de habilitar la conectividad IPv6 sobre una red IPv4 existente, un mecanismo de transición clave para los administradores de red. Utilizará herramientas estándar de línea de comandos de Linux para construir y verificar un túnel funcional desde cero.

Siguiendo un proceso paso a paso, primero preparará una dirección IPv4 pública conceptual para simular un escenario del mundo real. Luego creará una interfaz de túnel SIT (Simple Internet Transition), le asignará una dirección IPv6 con formato 6to4 y agregará una ruta IPv6 predeterminada a través de un relé 6to4 público. Para concluir el laboratorio, probará la conectividad IPv6 de extremo a extremo a través del túnel recién configurado utilizando el comando ping6.

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 97%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Preparar para el Túnel con una Dirección IPv4 Pública Conceptual

En este paso, aprenderá sobre el requisito fundamental para el tunelizado 6to4: una dirección IPv4 pública. Exploraremos cómo identificar la dirección IP de su sistema y por qué utilizaremos una dirección especial y conceptual para este ejercicio de laboratorio.

El tunelizado 6to4 es un mecanismo de transición que encapsula paquetes IPv6 dentro de paquetes IPv4, permitiéndoles viajar a través de Internet IPv4. Para que esto funcione en un escenario del mundo real, su sistema (el punto final del túnel) debe tener una dirección IPv4 pública para que otros dispositivos en Internet puedan enviarle tráfico de vuelta. En un entorno típico de laboratorio o doméstico, su computadora a menudo se encuentra detrás de un enrutador que utiliza Traducción de Direcciones de Red (NAT) y tiene una dirección IPv4 privada, que no es accesible desde Internet público.

Primero, verifiquemos la dirección IPv4 real asignada a su interfaz de red en este entorno de laboratorio. Puede hacerlo utilizando el comando ip a combinado con grep para filtrar las direcciones IPv4.

Ejecute el siguiente comando en su terminal:

ip a | grep inet

Verá una salida similar a la siguiente, que enumera las direcciones IPv4 e IPv6 en su sistema. Tenga en cuenta que las direcciones IPv4 son privadas, no públicas.

    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
    inet 172.16.50.33/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
    inet6 fe80::216:3eff:fe01:236f/64 scope link
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0

Como puede ver, las direcciones listadas son privadas (como 172.16.50.33) o de loopback (127.0.0.1). No se pueden utilizar como punto final público para un túnel 6to4. Para simular una configuración del mundo real, utilizaremos una dirección IPv4 pública conceptual. Para este laboratorio, usaremos 192.0.2.1. Esta dirección forma parte de un bloque reservado específicamente para documentación y ejemplos (RFC 5737), lo que garantiza que no entre en conflicto con ninguna dirección IP pública real. Todos los pasos subsiguientes utilizarán esta dirección de marcador de posición para construir la configuración de nuestro túnel.

Crear una Interfaz de Túnel SIT con el Comando ip tunnel

En este paso, creará la interfaz de túnel virtual que servirá como base para nuestro túnel 6to4. Utilizaremos el comando ip, una potente utilidad en Linux para la configuración de redes.

El comando ip tunnel se utiliza para crear, administrar y eliminar interfaces de túnel. Para 6to4, necesitamos un tipo específico de túnel llamado sit, que significa "Simple Internet Transition". Este modo encapsula paquetes IPv6 directamente dentro de paquetes IPv4, que es el mecanismo central de 6to4.

Ahora, creemos una interfaz de túnel llamada tun6to4. La configuraremos utilizando la dirección IPv4 pública conceptual 192.0.2.1 que identificamos en el paso anterior.

Ejecute el siguiente comando en su terminal. Necesita sudo porque la creación de interfaces de red es una operación que requiere privilegios.

sudo ip tunnel add tun6to4 mode sit local 192.0.2.1 remote any

Analicemos este comando:

  • sudo ip tunnel add tun6to4: Esta parte indica al sistema que agregue una nueva interfaz de túnel llamada tun6to4.
  • mode sit: Esto especifica el modo de encapsulación. sit es el modo correcto para el tunelizado 6to4.
  • local 192.0.2.1: Esto establece la dirección IPv4 de origen de los paquetes del túnel. Es el punto final "local" de nuestro túnel, que estamos simulando con nuestra IP pública conceptual.
  • remote any: Esta es una parte crucial del mecanismo 6to4. Le dice al sistema que el túnel puede conectarse a cualquier punto final remoto. En la práctica, esto significa que enviará tráfico a una dirección "anycast" conocida para un enrutador relé 6to4, que luego reenviará el tráfico a la Internet IPv6.

Después de ejecutar el comando, puede verificar que la interfaz del túnel se ha creado. Utilice el comando ip tunnel show:

ip tunnel show

La salida debería confirmar la creación y configuración de su nueva interfaz tun6to4. También puede ver una interfaz sit0 predeterminada, que puede ignorarse para este laboratorio.

sit0: ipv6/ip remote any local any ttl 64 nopmtudisc 6rd-prefix 2002::/16
tun6to4: ipv6/ip remote any local 192.0.2.1 ttl inherit 6rd-prefix 2002::/16

También puede ver la nueva interfaz ejecutando ip a nuevamente, pero aún no tendrá ninguna dirección IP asignada. Nos ocuparemos de eso en el siguiente paso.

Asignar una Dirección IPv6 con Formato 6to4 a la Interfaz de Túnel

En este paso, configurará la interfaz tun6to4 que acaba de crear asignándole una dirección IPv6 especial con formato 6to4. Esta dirección no es arbitraria; se deriva directamente de la dirección IPv4 pública del punto final del túnel.

El esquema de direccionamiento 6to4 está diseñado para ser automático. Utiliza un prefijo IPv6 designado, 2002::/16. Los 32 bits que siguen a este prefijo se rellenan con la dirección IPv4 pública, convertida a formato hexadecimal. Esto crea un prefijo IPv6 /48 único para cualquier organización con al menos una dirección IPv4 pública.

Calculemos la representación hexadecimal de nuestra dirección IPv4 conceptual, 192.0.2.1:

  • 192 en decimal es c0 en hexadecimal.
  • 0 en decimal es 00 en hexadecimal.
  • 2 en decimal es 02 en hexadecimal.
  • 1 en decimal es 01 en hexadecimal.

Combinando estos, la representación hexadecimal de 192.0.2.1 es c000:0201. Por lo tanto, nuestro prefijo 6to4 único es 2002:c000:0201::/48.

Ahora, asignaremos una dirección IPv6 específica de este prefijo a nuestra interfaz tun6to4. Usaremos la primera dirección en la primera subred, 2002:c000:0201::1/64. Ejecute el siguiente comando para asignar la dirección:

sudo ip -6 addr add 2002:c000:0201::1/64 dev tun6to4

Después de crear la interfaz y asignar una dirección, la interfaz todavía está en estado "DOWN" (inactiva) por defecto. Necesita ponerla "UP" (activa) para que sea operativa. Utilice el comando ip link set para esto:

sudo ip link set tun6to4 up

Finalmente, verifiquemos que la interfaz está activa y tiene la dirección IPv6 correcta. Utilice el comando ip a y busque la interfaz tun6to4:

ip a

Debería ver una salida que incluya la interfaz tun6to4, ahora activa y configurada con la dirección IPv6. Tenga en cuenta que el número de interfaz (por ejemplo, 5:) puede variar, y puede ver otras interfaces como docker0 o sit0.

5: tun6to4@NONE: <NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000
    link/sit 192.0.2.1 brd 0.0.0.0
    inet6 ::192.0.2.1/96 scope global
       valid_lft forever preferred_lft forever
    inet6 2002:c000:201::1/64 scope global
       valid_lft forever preferred_lft forever

Observe que, además de la dirección 2002:... que configuró, el sistema agregó automáticamente una dirección IPv6 compatible con IPv4 (::192.0.2.1/96). Este es un comportamiento esperado.

Agregar una Ruta IPv6 Predeterminada a través de la Dirección del Relé 6to4

En este paso, configurará la pieza final del rompecabezas para la conectividad saliente: una ruta predeterminada. Simplemente tener una dirección IP en la interfaz tun6to4 no es suficiente; su sistema necesita saber a dónde enviar el tráfico IPv6 destinado a la Internet global. Lo dirigiremos a un enrutador relé 6to4 especial.

6to4 se basa en enrutadores relé públicos que conectan el mundo 6to4 a la Internet IPv6 nativa. Estos enrutadores escuchan el tráfico encapsulado en una dirección IPv4 anycast específica y bien conocida: 192.88.99.1. Cuando nuestro sistema envía un paquete IPv6 a un destino externo, lo encapsulará en un paquete IPv4 y lo enviará a esta dirección de relé. Luego, el relé desempaquetará el paquete y lo reenviará a la red IPv6.

Para configurar esto, agregaremos una ruta IPv6 predeterminada usando el comando ip -6 route add. Ejecute lo siguiente en su terminal:

sudo ip -6 route add default via ::192.88.99.1 dev tun6to4

Analicemos el comando:

  • default: Esto especifica que la ruta es la "puerta de enlace predeterminada" para todo el tráfico IPv6 que no coincide con una ruta más específica en la tabla de enrutamiento.
  • via ::192.88.99.1: Esto establece la puerta de enlace del siguiente salto. La sintaxis ::192.88.99.1 es una forma especial de representar una dirección IPv4 dentro de un contexto IPv6, indicando al sistema que envíe el tráfico a la dirección IPv4 192.88.99.1.
  • dev tun6to4: Esto le dice explícitamente al sistema que use nuestra interfaz tun6to4 para esta ruta.

Ahora, puede verificar que la tabla de enrutamiento IPv6 se ha actualizado correctamente. Ejecute el siguiente comando:

ip -6 route show

La salida ahora debería incluir una ruta predeterminada que apunta al relé 6to4 a través de su interfaz de túnel. La salida exacta puede variar ligeramente, pero lo clave es la línea default.

::1 dev lo proto kernel metric 256 pref medium
::/96 dev tun6to4 proto kernel metric 256 pref medium
2002:c000:201::/64 dev tun6to4 proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default via ::192.88.99.1 dev tun6to4 metric 1024 pref medium

Con esta ruta implementada, su sistema ahora está completamente configurado para enviar tráfico IPv6 a través del túnel 6to4 simulado.

Probar la Conectividad IPv6 a Través del Túnel con ping6

En este paso, intentará probar su túnel 6to4 recién configurado enviando tráfico IPv6 a un destino público. Utilizaremos el comando ping6, que es el equivalente IPv6 de la utilidad familiar ping.

El objetivo es ver si nuestro sistema puede enviar un paquete IPv6, que este sea encapsulado en un paquete IPv4, enviado al relé 6to4 y luego reenviado a su destino final. Usaremos la opción -I con ping6 para especificar que el tráfico debe originarse en nuestra interfaz tun6to4.

Intentemos hacer ping a un host conocido con capacidad IPv6, como ipv6.google.com. La opción -c 4 limitará el comando a enviar solo 4 paquetes.

Ejecute el siguiente comando en su terminal:

ping6 -c 4 -I tun6to4 ipv6.google.com

Resultado Esperado y Explicación

Verá que el comando falla, con una salida que indica que el destino no es alcanzable. Este es el resultado esperado, y esta parte del laboratorio es solo para fines de demostración.

PING ipv6.google.com(sfo03s32-in-x0e.1e100.net (2607:f8b0:4005:814::200e)) from 2002:c000:201::1 tun6to4: 56 data bytes
From iZrj9hhbt3mi4boxowaqhxZ (2002:c000:201::1) icmp_seq=1 Destination unreachable: Address unreachable
From iZrj9hhbt3mi4boxowaqhxZ (2002:c000:201::1) icmp_seq=2 Destination unreachable: Address unreachable
From iZrj9hhbt3mi4boxowaqhxZ (2002:c000:201::1) icmp_seq=3 Destination unreachable: Address unreachable
From iZrj9hhbt3mi4boxowaqhxZ (2002:c000:201::1) icmp_seq=4 Destination unreachable: Address unreachable

--- ipv6.google.com ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3253ms

Este fallo no significa que haya configurado algo incorrectamente. Ha configurado con éxito el lado del cliente de un túnel 6to4. El fallo es esperado en este entorno de laboratorio por dos razones clave:

  1. Entorno de Laboratorio: La máquina virtual LabEx no tiene una dirección IPv4 pública real. Utilizamos una dirección conceptual (192.0.2.1) para la configuración. El relé 6to4 no puede enviar una respuesta a esta dirección no enrutable.
  2. Infraestructura Obsoleta: La infraestructura pública de relés 6to4 (en la dirección anycast 192.88.99.1) está en gran medida obsoleta y ya no se mantiene en la Internet moderna. Los operadores de red han pasado a mecanismos de transición IPv6 más robustos y seguros como IPv6 nativo, 6rd y DS-Lite.

El propósito principal de este laboratorio es enseñarle el concepto y la sintaxis de configuración de un mecanismo de túnel IPv4 a IPv6 históricamente importante, que es un tema cubierto en certificaciones de redes como CompTIA Network+.

Resumen

En este laboratorio, aprendió a configurar un túnel 6to4 de IPv4 a IPv6 en Linux. Comenzó comprendiendo el requisito principal para el túnel 6to4: una dirección IPv4 pública. Después de identificar la dirección IP privada en el entorno de laboratorio, adoptó una dirección IPv4 pública conceptual (192.0.2.1) para simular un escenario del mundo real. Luego utilizó el comando ip tunnel para crear una interfaz de túnel SIT (Simple Internet Transition), que sirve como punto final para encapsular paquetes IPv6 dentro de IPv4.

Con la interfaz de túnel establecida, construyó y asignó una dirección IPv6 con formato 6to4, que se deriva programáticamente de la dirección IPv4 pública conceptual. Para dirigir el tráfico IPv6 a través del túnel, agregó una ruta IPv6 predeterminada que apunta a la dirección del relé 6to4 anycast. Finalmente, probó la configuración utilizando el comando ping6. La prueba falló como se esperaba, lo que confirmó que, si bien su configuración local era correcta, la infraestructura pública de relés 6to4 ya no está ampliamente disponible, lo que demuestra una razón clave por la que esta tecnología ahora se considera histórica.