IVI: Ejemplo de Funcionamiento

En el post IVI: Mecanismo de Traducción Stateless IPv4/IPv6 hemos introducido las funciones que IVI [RFC6219] realiza como mecanismo de traducción stateless para proporcionar la coexistencia entre IPv4 e IPv6 en un mismo entorno. A su vez, hemos resumido las estructuras de direccionamiento necesarias para convertir el direccionamiento IP entre ambas familias de protocolos [RFC6052] y hemos visto el algoritmo utilizado por IVI para convertir las cabeceras [RFC6145]. El objetivo de este post es mostrar mediante un ejemplo el funcionamiento paso a paso de la traducción necesaria para la comunicación entre hosts únicamente IPv4 y hosts únicamente IPv6.
A continuación se presenta la topología del ejemplo, las consideraciones necesarias y el proceso paso a paso de la traducción entre ambos dominios:
CONSIDERACIONES
- Las direcciones IPv4 utilizadas forman parte de los bloques TEST-NET-1 (192.0.2.0/24) y TEST-NET-2 (198.51.100.0/24) definidos en IPv4 Address Blocks Reserved for Documentation [RFC5737].
- El prefijo IPv6 utilizado forma parte de 2001:db8::/32 reservado para documentación según IPv6 Address Prefix Reserved for Documentation [RFC3849].
- El ISP selecciona 2001:db8:100::/40 como NSP (Network-Specific Prefix) para el dominio IPv6.
- El traductor (router entre ambos dominios) debe configurarse para que conozca el prefijo IPv6 2001:db8:100/40 que utilizará en las operaciones algorítmicas para traducir de IPv4 a IPv6 (y a la inversa).
- El traductor inyectará el prefijo IPv6 2001:db8:100::/40 en el dominio IPv6 y la red IPv4 192.0.2.0/24 en el dominio IPv4 para completar el routing.
- La dirección IPv6 de HOST 2 puede configurarse de manera manual o mediante DHCPv6 o SLAAC (auto-configuración) teniendo en cuenta que el prefijo proporcionado debe incluir la dirección IPv4 que representará a este nodo IPv6 en el dominio IPv4.
TOPOLOGÍA
PROCESO Para ver el proceso paso a paso de la traducción, se ha escogido una comunicación iniciada por un host IPv4 (HOST 1) que transmite información a un host IPv6 (HOST 2).
- HOST 1 transmite información hacia HOST 2 poniendo como dirección IPv4 destino 192.0.2.33 que representa al host IPv6 en el dominio IPv4. Como dirección origen pone la suya propia (198.51.100.2).
- Cuando el traductor recibe el paquete de HOST 1, analiza la dirección destino y ve que tiene que traducir el paquete de IPv4 a IPv6. El traductor utiliza el prefijo 2001:db8:100::/40 concatenado con la dirección IPv4 destino pasada a hexadecimal para obtener el destino en la red IPv6 (2001:db8:1C0:2:21::). Para traducir la dirección de origen, el traductor realiza la misma operación convirtiendo la dirección 198.51.100.2 en 2001:db8:1C6:3364:2::
- El traductor aplica el algoritmo de traducción definido en la RFC6145 para transformar los campos de la cabecera IPv4 a IPv6.
- El paquete viaja por la red IPv6 hasta HOST 2.
- Cuando HOST 2 contesta, utiliza las mismas direcciones IPv6 pero intercambiando origen y destino.
- El paquete llega al traductor que retira los prefijos IPv6 de las direcciones origen y destino para quedarse con las direcciones IPv4 y poder utilizarlas en la cabecera IPv4.
- El traductor convierte los demás campos de la cabecera IPv6 a IPv4 mediante el algoritmo de traducción definido en la RFC6145 y envía el paquete a través de la red IPv4.
En caso de que la comunicación se iniciase desde el host IPv6 (HOST 2) hacia el host IPv4 (HOST 1), el procedimiento es totalmente análogo.