Fundamentos del Protocolo IPv6

 Leinier Cruz Salfran     26/ene/2019
Documentación, Estándar, IPv6


Tabla de contenidos

Introducción

Sin lugar a dudas, el protocolo IP es la base de las comunicaciones en la actualidad; a partir de las opciones de convergencia de servicios de diferente naturaleza (video, voz, datos) en una misma red, así como la posibilidad de interconectar equipos disímiles en forma transparente. Adicionalmente, cada vez es mayor la tendencia a emplear dispositivos móviles con posibilidad de conexión a redes. Internet definitivamente está abandonando de ser una red exclusiva para humanos, para convertirse en una red donde dispositivos de diferente naturaleza (automóviles, refrigeradores, radios, cámaras, etc.) tienen vida propia.

Este escenario implica que las tasas de crecimiento actuales en Internet, están sobrepasando con creces, las expectativas y propósitos con que se diseño originalmente la red ARPANET entre los años 60s y 70s, que luego de sucesivas transformaciones, una parte de ella derivó en la Internet actual. A pesar diversas innovaciones realizadas para expandir las posibilidades de servicios de la red, el protocolo base (IP) es el mismo que comenzó su operación en 1983.

El protocolo IP, entre otras funciones, tiene que garantizar el principio de unicidad de las comunicaciones; es decir, que una comunicación entre 2 entes cualesquiera conectados a la red, tiene que diferenciarse de cualquier otra comunicación que se produzca en la red. De esta manera se establece que cada participante en la red posea un identificador único, que lo diferencie del resto. En Internet, a este identificador se le conoce como dirección IP.

Como quiera que Internet es una red de alcance global, garantizar la unicidad de las comunicaciones se convierte en una tarea de mayor complejidad. De ahí la existencia de cuerpos de coordinación para la gestión de direcciones IP. Concretamente nos referimos a la Corporación Internet para los Números y Nombres [ICANN], la Organización para Registros de Números [NRO], los Registros Regionales de Internet y los Registros Nacionales o Locales de Recursos de Internet [NIR/LIR].

A pesar de diferentes políticas establecidas por las organizaciones antes mencionadas para la asignación y control de direcciones IP, unido a técnicas de conservación de direcciones desarrolladas por la Fuerza de Tarea para la Ingeniería de Internet [IETF], las direcciones IP disponibles se van agotando. La Red de redes soporta su operación en un conjunto de protocolos conocidos como TCP/IP diseñados en los años 70; de ahí la obsolescencia de los mismos, antes los nuevos requerimientos de aplicaciones y servicios, y crecimiento de la red. El protocolo IP, es la base de comunicaciones de la arquitectura TCP/IP, y por ello es habitual encontrar de manera intercambiable el uso del término Redes IP o Redes TCP/IP. La versión actual del protocolo IP es la 4, conocido como IPv4.

Desde inicios de los 90, comenzaron a realizarse estudios por parte del IETF acerca del posible agotamiento de direcciones IPv4, previendo un futuro crecimiento exponencial de Internet, y teniendo en cuenta que en los inicios de operación de la red, existieron malas políticas de asignación de direcciones IP, en tanto se reservó parte del espacio de direcciones disponibles para supuestos desarrollos que no tuvieron lugar. En consecuencia se decidió desarrollar un nuevo protocolo, que en inicio resolviera el problema del espacio de direcciones de 32 bits de IPv4 (que permitiría teóricamente conectar unos 4 billones de usuarios y/o dispositivos; pero en la práctica, la cantidad real de dispositivos a conectar es mucho menor, a partir de la forma en que se realizan las asignaciones y que necesariamente significan pérdidas de parte del espacio de direcciones). Sin embargo, hoy Internet cuenta con aproximadamente 2 billones de usuarios conectados, y tomando en cuenta que una persona puede conectar simultáneamente mas de un dispositivo a la red, Internet está confrontando serios problemas para su supervivencia

La nueva versión del protocolo IP, fue conocida originalmente como IP Nueva Generación (IPng); la cual luego se rebautizó como IP versión 6, o simplemente IPv6. No existió IPv5.

Agotamiento de direcciones IPv4

La adopción de Pv6, está condicionada por un factor objetivo bien definido: la necesidad de contar con direcciones IP suficientes para que siga creciendo Internet. La Red de Redes se va modificando a gran velocidad, buscando mayor penetración en los diferentes sectores de la población. De igual manera, es cada vez más frecuente en Internet, el uso de dispositivos móviles, y existe gran tendencia a la conexión masiva de equipos electrodomésticos, de automatización industria, sensores, entre otros; dando lugar a la llamada Internet de las Cosas. El pasado 3 de febrero del 2011, fueron distribuidos equitativamente por región geográfica (América del Norte, Latinoamérica y El Caribe, Asia-Pacifico, Europa y África) los últimos 5 bloques de direcciones IPv4 disponibles. La zona de Asia-Pacifico, que cuenta con la mayor densidad poblacional del mundo, ya está terminando de consumir el nuevo espacio.

La administración de las direcciones IP (IPv4 o IPv6), la realizan los Registros Regionales de Internet (RIRs) en cada zona geografica. En América del Norte es responsabilidad de ARIN, en Latinoamérica y El Caribe de LACNIC, en Asia-Pacifico de APNIC, en Europa de RIPENCC y en África de AFRINIC.

La distribución actual de direcciones IPv4 por Registro Regional es la siguiente:

La visibilidad en Internet de las direcciones IPv4 asignadas por cada Registro, así como las reservas disponibles en cada uno, pueden encontrarse en la siguiente figura:

Características generales

  • Espacio de direcciones de 128 bits (permite construir 340,282,366,920,938,463,463,374,607,431,768,211,456 direcciones)
  • Representación en formato hexadecimal siguiendo la notación establecida en CIDR (numero de red/prefijo) Ej: 2001:0000:130F:0000:0000:09C0:876A:130B 2001:0000:130F::/48
  • Incluye IPSEC como parte nativa del protocolo
  • Incluye Multicast como funcionalidad básica
  • Soporte nativo a movilidad IP
  • Incluye opciones para gestionar Calidad de Servicio
  • Verdadero "plug and play" a partir de su posibilidad de autoconfiguración de la dirección IP; ya sea a partir de un prefijo de red anunciado o por medio direcciones completamente autogeneradas (en ausencia de un prefijo de red conocido)

Direccionamiento

El esquema de direccionamiento IPv6 se define en la RFC 4291, y sus características principales son:

  • 128 bits de longitud
  • Permite asignación jerárquicamente
  • Flexible para la evolución de las redes
  • Usa los principios de enrutamiento sin clases (CIDR)
    • Prefijo/longitud de prefijo
    • Agregación para reducir las tablas de rutas
  • Espacio de direcciones de 128 bits (permite construir 340,282,366,920,938,463,463,374,607,431,768,211,456 direcciones)

Tipos de direcciones existentes en IPv6:

  • Unicast (comunicación uno a uno)
    • Globales (RFC 3587)
    • Enlace local (link-local) FE80::/10
    • Sitio local (site-local) FEC0::/10 (desaprobado RFC 3879)
    • Unicas locales (ULA) FC00::/7
    • IPv4 compatible ::IPv4/128 (desaprobadas RFC 4291)
    • IPv4 Mapeadas ::FFFF:IPv4/128
  • Multicast (comunicación uno a muchos) -FF00::/8 Multicast
  • Anycast (comunicación uno al mas cercano)
    • Se asignan a partir de prefijos locales
  • Reservadas
    • ::/128 Dirección no especificada (128 bits en cero)
    • ::1/128 Loopback
    • 2001:db8::/32 (direcciones para documentación RFC 3849)
  • Transción
    • Ej: 2002:IPV4::/48 (6to4)

Operación

Entre las consideraciones del diseño de IPv6, se encuentra la mejoría notable de los medios de transmisión en la actualidad, y ello permite eliminar algunos chequeos para corrección de errores, que se encuentran presentes en el encabezado de los paquetes IPv4. De igual manera, el encabezado básico en IPv6 tiene longitud fija de 40 bytes, y ello facilita la implementación de estructuras de datos para manejar rápidamente los paquetes. La siguiente figura muestra las modificaciones en el encabezado de paquetes IPv6, respecto al de IPv4.

Es posible definir múltiples encabezados en IPv6, que agregan determinada funcionalidad al paquete IPv6 básico, y para ello se introduce el concepto de cabeceras extensibles.

Otro aspecto interesante en la operación de IPv6 es la eliminación de la fragmentación de los paquetes de datos en los nodos intermedios. De esta manera, los extremos son responsables del funcionamiento y de acomodar el tamaño de los paquetes al mínimo necesario según la trayectoria de origen a destino. De esta forma, la red aumenta su eficiencia al enfocarse principalmente en el enrutamiento de paquetes.

En IPv6, la carga minima que puede transportar un paquete de datos, es 1280 bytes.

En IPv6 se elimina la difusión (broadcast) y esa funcionalidad se realiza empleando multidifusión (multicast).

El protocolo ICMP adquiere nueva funcionalidad, y se convierte en uno de los protocolos base para la operación de IPv6.

Cabeceras extensibles

IPv6 no soporta fragmentación/reensamblado de paquetes en los nodos intermedios por donde viaja la comunicación; por tanto, dicha función es responsabilidad de los extremos que se comunican. Cuando sea necesario fragmentar un paquete de datos, se introduce un nuevo encabezado (extensible), referenciado desde el encabezado del paquete básico . De igual manera, esta funcionalidad se requiere cuando se emplea IPSec.

La siguiente figura muestra el tamaños del paquete básico, así como la ubicación de las cabeceras extensibles, que necesariamente, ocupan espacio dentro del destinado a la carga util del paquete IPv6.

Pueden insertarse uno o mas encabezados, según se requiera, referenciándose siempre un encabezado a partir del anterior.

Los tipos de encabezados estandarizados son:

  • Hop-by-Hop Options header (0)
  • Destination Options header (60)
  • Routing header (43) (la cabecera cero desaprobada RFC 5095)
  • Fragment header (44)
  • Authentication header (51)
  • Encapsulating Security Payload header (50)
  • Destination Options header (60)
  • Mobility header (135)
  • No next header (59)
  • Upper-layer header (TCP (6), UDP (17), ICMPv6 (58)

De forma general solo se procesan los encabezados en los nodos destino y fuente, excepto Hop-by-Hop Options que se procesa por todos los enrutadores intermedios.

IPSec

IP Secure (IPSec) es una tecnología que permite asegurar las comunicaciones empleando el protocolo IP, a partir de emplear técnicas de autenticación y encriptación de datos. IPSec se desarrolló para IPv4, y sus especificaciones se han incorporado como base en el diseno de IPv6. Aun cuando esta tecnología aparece como "obligatoria" (mandatory) en IPv6, no todas las implementaciones soportan este protocolo.

En cualquier caso, al igual que para IPv4, la implementación de IPv6 requiere de una Infraestructura de Claves Publicas (PKI)

ICMPv6

ICMPv6 es la implementacion en IPv6 del protocolo ICMP (originalmente disenado para IPv4), aunque con algunas extensiones. En este caso combina la funcionalidad de ICMPv4, IGMP y ARP. Se ejecuta sobre IPv6 en modos unicast y multicast

ICMPv6 es utilizado por los nodos IPv6 para reportar errores encontrados durante el procesamiento de paquetes, asi como para realizar otras funciones relativas al nivel de interconexion de redes, tales como ping. Como quiera que este protocolo es uno de los pilares de la arquitectura de IPv6, todos los mensajes y funcionalidad especificados en la RFC 4443, tiene que ser completamente implementada en cada nodo.

Entre la funcionalidad de ICMPv6 se encuentra el Protocolo para Descubrimiento de vecinos (neighbor discovery (ND); el cual lo emplean nodos que comparten un mismo medio físico para:

  • Descubrir su presencia mutuamente
  • Determinar la dirección de nivel de enlace de sus vecinos
  • Encontrar enrutadores
  • Mantener información sobre alcanzabilidad de los vecinos

La figura siguiente, ilustra algunos de los mensajes de ICMP en el Protocolo de Descubrimiento de vecinos. Especificamente se muestran los mensajes Router Advertisement (RA), definidos para que los enrutadores anuncien periodicamente estos paquetes que incluyen Prefijo de red, TTL, MTU, etc, y Router solicitation (RS), mediante el cual un dispositivo solicita un paquete RA.

Multicast

IPv6 no emplea la técnica de difusión (broadcast) para comunicar con todos los nodos en un segmento de red. Ahora esa funcionalidad se realiza empleando multidifusión (multicast).

La multidifusión IP, consiste en enviar datagramas IP a un grupo de receptores interesados, previa suscripción a un grupo multicast, empleando una única trasmisión (tal como se ejemplifica en la figura siguiente). Puede funcionar en comunicaciones de los tipos uno-varios o varios-varios.

IPv6 emplea un bloque especial de direcciones (ff00::/8) para las aplicaciones de multidifusión. En cualquier caso, se envía un único datagrama a la direccion multicast del grupo y los enrutadores intermedios se ocupan de realizar copias de dicha información y enviarlas a los receptores que se han unido al grupo de multidifusión; propiciando, un uso mas eficiente de los canales de transmisión.

En el funcionamiento normal del protocolo IPv6, se combina el uso de ICMPv6 con Multicast para diferentes procesos: Descubrimiento de vecinos, Resolucion de direcciones (equivalente a ARP en v4), Autoconfiguracion de direcciones y Deteccion de direcciones duplicadas.

Las direcciones de multidifusión se estructuran como en la siguiente figura:

Alcance:

  • 0000(0) - Reservado
  • 0101(5) - Alcance de sitio
  • 0001(1) - Alcance en interfaz
  • 1000(8) - Alcance local/organización
  • 0010(2) - Alcance en enlace local
  • 1110(E) - Alcance global
  • 0100(4) - Alcance local administrativo
  • 1111(F) - Reservdao

Banderas 0RPT:

  • T: 0 (asignado permanentemente a direcciones multicast "bien conocidas"), asignadas por IANA; 1 9direcciones de multidifusión no asignadas permanentemente)
  • P: 1 (dirección multidifusión basada en prefijo unicas)[RFC3306]. Si P=1, T tiene que ser igual a 1
  • R: 1 (dirección multidifusión que incorpora la dirección de un Punto de Reunion (Rendezvous Point) [RFC3956] si R=1, P/T tienen que ser igual a 1

Movilidad

Movilidad IP (IP Mobile) es un protocolo estandar de comunicaciones diseñado por IETF, tal que permite a los usuario moverse de una red a otra manteniendo una dirección permanente, para garantizar que no se interrumpa la comunicación. Esta tecnología se desarrolló en IPv4, pero ha sido actualizado y portado a IPv6 (RFC 6275).

El protocolo IPv6 Mobile, permite la movilidad tanto en redes homogéneas (basada en la misma tecnología) como en redes heterogéneas.

La siguiente figura muestra la arquitectura general para la implementación de un servicio basado en movilidad IP:

En este esquema, un nodo móvil desea establecer comunicación con un nodo cualquiera (nodo correspndiente) que se ubica en un punto de Internet. El nodo móvil puede desplazarse libremente por toda la red de su proveedor (Red domestica), cambiando de un punto de acceso a otro, sin problema alguno. El servidor de políticas y el agente de movilidad localizada (LMA), se encargan de actualizar la ubicación del nodo móvil en la red, con el fin de reenviarle adecuadamente el trafico que recibe de su nodo correspondiente. Cuando el nodo móvil abandona su red domestica, puede aparecer como invitado en la red de otro operador, siguiendo conceptos análogos al roaming de la telefonía móvil tradicional.

En adición a la movilidad de un nodo simple, existen extensiones a IP mobile, para facilitar la comunicación en redes en movimiento (NEMO). De esta forma, el protocolo tiene que garantizar el mantenimiento de la comunicación de todos los nodos, una vez que la red de desplace. Este protocolo es muy practico para la conectividad en aviones, trenes y otros vehículos.

Tecnologías de transición

Desde que se desarrollaron las especificaciones de IPv6, motivadas por el posible agotamiento de las direcciones IPv4 (según tempranas predicciones por parte de IETF), se suponía que la red iba a evolucionar al nuevo protocolo de una manera rápida y ordenada, para lo cual bastaría que cada dispositivo conectado a Internet, tuviera de forma simultánea una dirección IPv4 y otra IPv6. De esta forma, se garantizaba una transición sencilla y rápida. Sin embargo, esto no sucedio, producto de diversos factores; y lo que parecia un tema simple, derivo en múltiples mecanismos "temporales" para pretender llegar a IPv6. A estos mecanismos se les conoce como tecnologías de transición.

Las tecnologías de transición se clasifican en 3 grupos:

1- Dual stack: En esta red, operan de forma simultanea IPv4 e IPv6. En una red dual stack, ambos protocolos son desplegados completamente y los protocolos de enrutamiento deben llevar los prefijos correspondientes a cada tecnología, de manera transparente. La mayor desventaja de esta aproximación ideal, es que requiere que todo el equipamiento soporte ambos protocolos, lo cual no es la situación real. 2- Túneles: Por medio de esta técnica, se pueden enviar paquetes IPv6 dentro de paquetes IPv4, y viceversa. En la actualidad, Internet es básicamente una red IPv4 con algunas islas IPv6; por tanto, lo mas frecuente es que el trafico IPv6 viaje encapsulado en paquetes IPv4.

La figura anterior muestra el encapsulamiento de paquetes IPv6 en IP4, para conectar 2 hosts IPv6 empleando la infraestructura IPv4 de Internet. Nótese que los routers que enlazan el mundo IPv4 con el mundo IPv6 tienen que ser Dual stack.

Tipos de túneles empleados como tecnologías de transición

  • 4in6: Encapsula tráfico IPv4 en IPv6 (RFC2473)
  • 6in4: Encapsula tráfico IPv6 en IPv4 (RFC4213)
  • 6over4: permite transmitir paquetes IPv6 entre 2 nodos dual stack empleando una red IPv4 que permita multidifusión
  • 6to4: Permite tráfico IPv6 sobre una red IPv4 sin la necesidad de configurar túneles de forma explícita, aunque se mantiene la función de encapsulamiento de IPv6 en IPv4. Servidores especialmente diseñados actúan como relay, permitiendo la comunicación. 6to4 puede ser empleada por un host (el cual requiere dirección IP pública) o por una red (RFC3056)
  • 6rd: Se deriva de 6to4, y propone realizar el despliegue de relays 6rd dentro de la infraestructura de un ISP, empleando para ello el bloque IPv6 unicast del ISP, en lugar del prefijo especial (2001::/16) de 6to4 (RFC5969)
  • ISATAP: Mecanismo que permite intercambio de tráfico entre nodos dual stack empleando una red IPv4. Es similar a 6over4, pero sin el requerimiento del empleo de multidifusión sobre la red IPv4. Incluye soporte en Windows XP, Windows Vista, Windows 7, Windows Mobile, Linux y algunas versiones de Cisco IOS. (RFC4214)
  • Teredo: Ofrece conectividad IPv6 total a nodos IPv4 que no tienen conexión directa con una red IPv6. Funciona eficientemente detras de NATs. Emplea protocolo UDP. (RFC4380)
  • Dual Stack Lite (DS-Lite): Mecanismo que permite a un ISP no asignar direcciones IPv4 a sus clientes, y solamente entregarles direcciones IPv6. El cliente puede escoger un rango privado cualquiera y su trafico viaja hacia la red del proveedor, encapsulado en IPv6 (RFC6333) Tunnel Setup Protocol (TSP): permite negociar los parámetros de conexión de un cliente y un servidor tunnel-broker (RFC5572) IPv6 Tunnel Broker: proveen conectividad IPv6 a usuarios finales o redes. Encapsula IPv6 en IPv4, indicandolo por medio del identificador 41 en el campo tipo de protocolo de IPv4 (RFC3053)
  • Softwires: Mecanismo que permite el uso de algunos de los protocolos existentes (como 6rd o DS-Lite) para proveer conectividad IPv6 en redes IPv4 puras. Se basa en L2TPv2 y L2TPv3. Puede encapsular IPv6 en IPv4, IPv6 en IPv6, IPv4 en IPv6 y IPv4 en IPv4. Puede funcionar detrás de NATs, permite la delegación de prefijos IPv6 y puede crear túneles seguros. Para su funcionamiento, requiere de un iniciador softwires (cliente) y un concentrador softwires (servidor de tunel) (RFC5571)

3- Traducción: Aunque esta no es una técnica deseable a largo plazo, es muy efectiva, pues trabaja realizando traducción de IPv6 a IPv4 y viceversa.

Las técnicas de traducción mas empleadas son:

  • Stateless IP/ICMP Translation (SIIT): Realiza traducción de encabezados IPv6 a IPv4 y vicersa
  • DNS64: Mecanismo que entrega a los clientes IPv6 un registro AAAA (aunque solamente exista un registro A. El cliente típico de estas solicitudes es un servidor NAT64 (RFC6147)
  • NAT64: Mecanismo que permite a los hosts IPv6 comunicar con hosts IPv4. Puede implementarse en modo stateless (siguiendo la RFC6145) o stateful (según la RFC6146)
  • Stateless NAT64 (Stateless NAT46, IVI): Mecanismo de traslación de direcciones IPv6-IPv4, pero garantizando correspondencia 1:1, en lugar de usar correspondencia 1:muchos como en el NAT stateful. Implementado para la Red China de avanzada (CERNET2) Transport Relay Translator * (TRT): es el mecanismo tradicional de trabajo de NAT-PT, pero requiere de traducciones de DNS de registros AAAA a registros A (RFC 3142) NAT-PT (eliminado por RFC 4966)

Nota

Este artículo fue tomado, en su mayor parte, de la investigación realizada por el equipo de investigación de IPv6 en Cuba.