Documentación > Ejemplos de uso > Stateful NAT64
Stateful NAT64: Ejemplo de Uso
Índice
Introducción
Este documento explica como ejecutar Jool en modo Stateful NAT64. Si no tiene nociones de este tipo de traducción ingresa a Stateful NAT64.
Similar a los modos anteriores, solo necesita una instalación exitosa del módulo del kernel para SIIT. El configurador no es requerido en esta ejecución básica.
Red de ejemplo
Aquí también, son válidas y aplican las observaciones mencionadas de la sección Red de Ejemplo para SIIT exceptuando dos: el del uso de direcciones en el segmento 198.51.100.8/29 y el default gateway. Resumiéndolas, tenemos que:
- Al menos necesitará tres nodos: A, V y T.
- Jool requiere Linux, los otros Nodos no necesariamente.
- Para este tutorial, consideraremos que: a) todos están en Linux, b) su configuración de red se hará manualmente.
Configuración de Nodos en IPv6
Para los nodos de A a E, ejecute la siguiente secuencia de comandos:
user@A:~# service network-manager stop
user@A:~# /sbin/ip link set eth0 up
user@A:~# # Replace "::8" depending on which node you're on.
user@A:~# /sbin/ip address add 2001:db8::8/96 dev eth0
user@A:~# /sbin/ip route add default via 2001:db8::1
Configuración de Nodos en IPv4
Para los nodos de V a Z, ejecute la siguiente secuencia de comandos:
user@V:~# service network-manager stop
user@V:~# /sbin/ip link set eth0 up
user@V:~# # Replace ".16" depending on which node you're on.
user@V:~# /sbin/ip address add 203.0.113.16/24 dev eth0
Estos nodos no necesitan una ruta por defecto dado que se encuentran en la misma red que el NAT64. Como la dirección 203.0.113.2 estará enmascarando los nodos IPv6, asi que desde V hasta Z piensan que están hablando directamente con T.
Configuración del Nodo Traductor
Para el Nodo T, ejecute la siguiente secuencia de comandos:
user@T:~# service network-manager stop
user@T:~#
user@T:~# /sbin/ip link set eth0 up
user@T:~# /sbin/ip address add 2001:db8::1/96 dev eth0
user@T:~#
user@T:~# /sbin/ip link set eth1 up
user@T:~# /sbin/ip address add 203.0.113.1/24 dev eth1
user@T:~# /sbin/ip address add 203.0.113.2/24 dev eth1
user@T:~#
user@T:~# sysctl -w net.ipv4.conf.all.forwarding=1
user@T:~# sysctl -w net.ipv6.conf.all.forwarding=1
user@T:~# ethtool --offload eth0 tso off
user@T:~# ethtool --offload eth0 ufo off
user@T:~# ethtool --offload eth0 gso off
user@T:~# ethtool --offload eth0 gro off
user@T:~# ethtool --offload eth0 lro off
user@T:~# ethtool --offload eth1 tso off
user@T:~# ethtool --offload eth1 ufo off
user@T:~# ethtool --offload eth1 gso off
user@T:~# ethtool --offload eth1 gro off
user@T:~# ethtool --offload eth1 lro off
En modo Stateful es especial en el sentido de que el NAT64 necesita por lo menos dos direcciones IPv4 separadas:
- Una o más direcciones utilizadas para el trafico local (por ej. hacia y desde T). En la configuración de arriba, se emplea 203.0.113.1.
- Una o más direcciones utilizadas para la traducción NAT64. Linux necesita estar consciente de éstas por que necesitará enviarles una respuesta ARP. En nuestro ejemplo, la dirección para traducir es la 203.0.113.2.
La necesidad de esta separación es una peculiaridad de Jool y se esta investigando como eliminarla.
Las direcciones de traducción requieren menos prioridad que las del tráfico local para que T no las use por accidente. Una manera de lograr esto, es simplemente añadiendo las direcciones NAT64 después de las direcciones de nodo.
Recuerde que quizá quiera asegurarse de que T puede comunicarse con todos los nodos antes de continuar.
Jool
Esta es la sintaxis para insertar Jool Stateful NAT64 en el kernel:
user@T:~# /sbin/modprobe jool \
[pool6=<IPv6 prefix>] \
[pool4=<IPv4 prefixes>] \
[disabled]
-
pool6
es el prefijo que el mecanismo de traducción estará adjuntando y removiendo de las direcciones de los paquetes. -
pool4
es el subconjunto de direcciones de los nodos que serán utilizadas para la traducción (la longitud del prefijo es /32 por defecto). -
disabled
inicia Jool en modo inactivo.
EAM
y pool6791
no aplican en el modo stateful, y como tal no están disponibles.
Para nuestra red de ejemplo:
user@T:~# /sbin/modprobe jool pool6=64:ff9b::/96 pool4=203.0.113.2
Jool escuchará en la dirección 203.0.113.2
y para los paquetes en IPv4 se agrega y se remueve el prefijo 64:ff9b::/96
.
Pruebas
Conectividad de IPv6 a IPv4
Haga un ping a V desde C:
user@C:~$ ping6 64:ff9b::203.0.113.16
PING 64:ff9b::192.0.2.16(64:ff9b::c000:210) 56 data bytes
64 bytes from 64:ff9b::cb00:7110: icmp_seq=1 ttl=63 time=1.13 ms
64 bytes from 64:ff9b::cb00:7110: icmp_seq=2 ttl=63 time=4.48 ms
64 bytes from 64:ff9b::cb00:7110: icmp_seq=3 ttl=63 time=15.6 ms
64 bytes from 64:ff9b::cb00:7110: icmp_seq=4 ttl=63 time=4.89 ms
^C
--- 64:ff9b::203.0.113.16 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 1.136/6.528/15.603/5.438 ms
Conectividad a un Web Server en IPv4
Agrege un servidor en Z y acceselo desde A:
Para saber cómo permitir que los Nodos IPv4 inicien comunicación consulte la sección de lecturas adicionales.
Si algo no funciona, consulte el FAQ.
Deteniendo Jool
Para detener Jool, emplee de nuevo el comando modprobe usando el parámetro -r
:
user@T:~# /sbin/modprobe -r jool
Lecturas adicionales
- Un nodo IPv4 externo no puede iniciar la comunicación por que el ve a la red IPv6 como una red privada IPv4 que está atrás de un NAT. Para remediar esto, Jool le permite configurar el “redireccionamiento de puertos” (port forwarding). Ingrese aqui si está interesado.
- Aprende más sobre la pool IPv4.
- El documento de DNS64 le dirá como configurar un DNS64 para hacer transparente el uso de dirección-prefijo a los usuarios.
- Por favor, lea acerca de problemas con MTUs antes de seleccionar alguno.
- Hay otra manera de correr el Stateful NAT64. Quizá le ayude a ver las cosas desde una perspectiva más amplia.