Blog del grupo de investigación GRITS. Redes de próxima generación para el Internet del futuro, Fog Computing e Internet de las cosas para implementar nuestros diseños personalizados en nubes híbridas ciberseguras, en sistemas de almacenamiento a gran escala y comunicaciones de larga distancia.

29 Diciembre 2013 | Publicado por Editorial Team GRITS

IVI: Mecanismo de Traducción Stateless IPv4/IPv6

En algunos posts anteriores estuvimos comentando la importancia de la adopción de IPv6 en nuestras redes para que puedan soportar la gran cantidad de nodos conectados a Internet y los requerimientos de futuras aplicaciones. Vimos cómo realizar el despliegue de una red IPv6 dándonos cuenta de la necesidad de implementar mecanismos de coexistencia entre IPv4 e IPv6 debido a la incompatibilidad entre ambas familias de protocolos. Si recordamos los diversos mecanismos que podíamos aplicar, éstos se dividían en tres grupos: Dual-Stack, Traducción y Tunneling. Concretamente, en este post, introduciremos uno de los mecanismos de traducción, IVI.

Antes de centrarnos en IVI, recordemos que los mecanismos de traducción se aplican cuando debemos proporcionar comunicación directa entre nodos que trabajan únicamente con IPv4 y nodos que trabajan únicamente con IPv6.

Translation_IPv4v6 Para conseguir que IPv4 e IPv6 coexistan en un entorno con estas características, podemos emplear mecanismos de traducción de alguno de los siguientes tipos:

  • Stateless translation. No se mantiene estado de la traducción. Tan solo es necesario aportar cierta configuración simple en el dispositivo que traduce y mediante operaciones algorítmicas se traduce entre IPv4 e IPv6.
  • Stateful translation. Se mantiene estado de la traducción. Se consumen recursos en el dispositivo que traduce para realizar el seguimiento de la traducción en curso.

En el caso que nos ocupa, IVI [RFC6219], mecanismo que adopta su nombre de unir los números romanos IV y VI por la traducción realizada entre los protocolos de red IPv4 e IPv6, tratamos con un mecanismo de traducción stateless que realiza las siguientes funciones:

  • Traducción entre cabeceras IPv4 e IPv6.
  • Traducción de las cabeceras de la capa de transporte (necesario adaptar algunos parámetros como la MTU que se pasa a la capa de transporte ya que ambas cabeceras tienen longitudes diferentes).
  • Traducción entre ICMPv4 e ICMPv6 y los mensajes de error asociados.
  • Recálculo de checksum (debido a que se realizan cambios en algunos valores entre cabeceras tanto de la capa de transporte como de red).

El primer aspecto importante en cualquier traducción es la representación de las direcciones IPv4 (32 bits) e IPv6 (128 bits) entre ambos dominios. La estructura de direccionamiento que se utiliza en las traducciones algorítmicas está definida en IPv6 Addressing of IPv4/IPv6 Translators [RFC6052] y utiliza las siguientes representaciones:

  • IPv4-converted IPv6 Address. Dirección IPv6 que representa un nodo IPv4 en una red IPv6.

Converted

  • IPv4-translatable IPv6 Address. Dirección IPv6 asignada a un nodo IPv6 en una red IPv6. La dirección IPv4 utilizada en esta IPv4-translatable IPv6 Address será la que represente al host IPv6 en el dominio IPv4.

Translatable

El campo Sufijo está formado por ceros para acabar de completar los 128 bits necesarios en direcciones IPv6. El NSP (Network-Specific Prefix) es un prefijo IPv6, normalmente de longitud /32 o /40, asignado por el ISP para crear el direccionamiento IPv6 en el dominio IPv6. Al ser un prefijo asignado por el ISP, nos proporciona la característica de agregación de prefijos que define IPv6 [RFC2460] para que las tablas de routing de los proveedores tengan menor tamaño. Aunque, generalmente este prefijo sea /32 o /40, el formato definido en la RFC6052 puede contemplar otras longitudes de prefijos como se muestra en la siguiente tabla.

tabla prefijos

Los bits del 64 al 71 (campo 'u') están reservados y su valor debe ser cero.

Vistas las diferentes representaciones de direccionamiento según el formato estándar recomendado en la RFC6052, cabe destacar que IVI utiliza el siguiente formato de direccionamiento.

IVI address

El segundo aspecto importante es la conversión del resto de campos de las cabeceras cuando pasamos del dominio IPv4 a IPv6 (o a la inversa). El algoritmo IP/ICMP Translation Algorithm [RFC6145] estandariza la traducción de cada campo de las cabeceras y los mensajes ICMP entre IPv4 e IPv6. Debido a que los mensajes de error de ICMP necesitan considerar ciertos aspectos particulares de cada protocolo, Stateless Source Address Mapping for ICMPv6 Packets [RFC6791] actualiza la RFC6145 para adaptar este tipo de mensajes.

Finalmente, la mejor manera de entender el funcionamiento de IVI es mediante un sencillo ejemplo que basaremos en la siguiente topología y veremos paso a paso en el post IVI: Ejemplo de Funcionamiento.

Ejemplo IVI_1

Share