jueves, 26 de enero de 2017

TCP/IP (12): El deseado IPv6



¿POR QUÉ IPv6?

En el anterior artículo, hablamos del agotamiento de las direcciones IP y de las piruetas que han tenido que hacerse para mantener el viejo IPv4 en funcionamiento. 

IPv4 se desarrolló a finales de la década de los 1970 para el Ministerio de Defensa de EEUU, y se publicó en 1980 como RFC 760. La fortaleza de su diseño ha hecho que durante décadas siga siendo la base de prácticamente todas las comunicaciones no sólo en Internet, sino incluso en redes locales e intranets. Pocos desarrollos tecnológicos en la historia han sido tan exitosos y se han mantenido sin cambios por tanto tiempo. Sin embargo, el tamaño de su espacio de direcciones se ha mostrado insuficiente ante el boom que ha sufrido Internet. Esta situación ya era preocupante a principios de este siglo.

Mucho antes, a finales del siglo XX, la IETF se puso a trabajar en una nueva versión de IP. Se llamó IPv6 porque el número de versión 5 ya se había usado para un protocolo orientado a conexión, complementario de IPv4, que no llegó a cuajar.

Hay que tener claro que la adopción de IPv6 es la única solución que va a permitir a Internet seguir desarrollándose. Por tanto, su uso generalizado solo es cuestión de tiempo, a pesar de la lentitud y poco entusiasmo con los que ha ido siendo adoptado por los proveedores de Internet.

NUEVO ESPACIO DE DIRECCIONES

El espacio de direcciones que introduce IPv6 es de 128 bits, frente a los 32 de IPv4. La cantidad de direcciones posibles que surge de esta longitud no sólo es suficiente para cualquier uso futuro, sino que resulta inimaginable para la mente humana. Sólo decir que en este espacio hay varios miles de cuatrillones de direcciones para cada persona del planeta.

Esta enorme extensión en el espacio de direcciones no es arbitraria, sino que ha sido pensada más allá de evitar el simple agotamiento. La idea es que, usando este espacio tan amplio, sea posible desarrollar mecanismos de rutado mucho más eficientes. Las técnicas de agregación de rutas permitirán que diferentes partes de Internet puedan usar prefijos comunes de manera estructurada.




NOTACIÓN DE DIRECCIONES

Lógicamente, al aumentar tanto de tamaño, la forma de representar los dígitos de las direcciones debe cambiar con respecto a IPv4. La representación común es de números hexadecimales de 16 bits cada uno, separados por el signo de dos puntos (:). Se forman, por tanto, ocho grupos con cuatro dígitos hexadecimales cada uno. Por ejemplo:

3ffe:1900:4545:3:200:f8ff:fe21:67cf

Los ceros a la izquierda en cada grupo no se escriben. Las letras hexadecimales se escriben en minúsculas por convención.

Dado que esta notación aún es incómoda de usar por su longitud, se permite abreviarla usando ciertas convenciones:

Los grupos de ceros consecutivos se pueden omitir colocando dos veces los dos puntos en su lugar. Por ejemplo:

fe80:0:0:0:200:f8ff:fe21:67cf

se puede abreviar a 

fe80::200:f8ff:fe21:67cf

Si hay más de una secuencia de ceros, se abreviará la más larga de ellas, pero nunca más de una. Esto es para evitar representaciones ambiguas. Por ejemplo:

fe80:0:0:0:200:0:0:67cf

se abrevia a 

fe80::200:0:0:67cf

pero NO se puede escribir:

fe80::200::67cf

Si las secuencias de ceros a abreviar son de igual longitud, se elige la que está más a la izquierda. Por ejemplo:

fe80:0:0:1:200:0:0:67cf

se abrevia a 

fe80::1:200:0:0:67cf

Usando este tipo de notación, es muy simple escribir las típicas direcciones de loopback (::1 por 0:0:0:0:0:0:1) e inespecificada (:: por 0:0:0:0:0:0:0:0). 

Sin embargo, surgen problemas para integrar las direcciones en protocolos preexistentes, que usan los dos puntos para otros fines. Concretamente, para las URL (localizador universal de recurso) e URI (identificador universal de recurso), es necesario usar corchetes para delimitar la dirección IPv6. Por ejemplo:

http://[3ffe:1900:4545:3:200:f8ff:fe21:67cf]/index.html

En los localizadores de tipo UNC (convención uniforme de nombres), propio de los protocolos de Microsoft, la solución adoptada es usar un dominio DNS específico (ipv6-literal.net), cambiando además los símbolos de dos puntos (: y ::) por guiones (- y  --). Por ejemplo;

3ffe-1900--f8ff-fe21-67cf.ipv6-literal.net

Aunque éste es un dominio real registrado por Microsoft, las direcciones normalmente son resueltas por el propio software sin necesidad de llamadas a los servidores DNS.

CARACTERÍSTICAS NUEVAS EN IPv6

Aparte de la ampliación del espacio de direcciones, el nuevo protocolo lógicamente incorpora nuevas funcionalidades, así como correcciones de problemas que se han ido detectando en su antecesor:

- Redefinición de multicast y broadcast

En IPv6 se redefine el funcionamiento del multicast (envío de paquetes a varios nodos) y el broadcast (envío de paquetes a todos los nodos). En realidad se unifican ambos conceptos, los cuales tenían en IPv4 diferentes mecanismos. En IPv6 se solucionan muchas de las dificultades que había para implementar emisiones multicast. Por ejemplo, la adaptación entre las direcciones de unicast (punto a punto) y multicast es automática por el diseño, sin necesidad de los complejos mecanismos de IPv4. Cualquier dirección IPv6 tiene asignada por sí misma, sin configuración adicional, un conjunto amplio de direcciones multicast usables globalmente.

Una de esas direcciones multicast predefinidas es precisamente la de "todos los nodos" (ff02::1), equivalente a la tradicional dirección de broadcast (255.255.255.255).

- Nuevas funciones de autoconfiguración

Aparte de las tradicionales configuraciones manuales o dinámicas (DHCPv6), los nodos pueden autoconfigurarse usando un mecanismo más avanzado basado en el protocolo ICMPv6. En él, los propios encaminadores de la red informan en todo momento de los parámetros de la red y enrutado disponible, mediante la llamada autoconfiguración de direcciones sin estados (SLAAC).

- Seguridad "de serie"

Los protocolos de encriptación y autenticación IPsec, opcionales en IPv4, están ahora implementados obligatoriamente.

- Enrutamiento más ágil

Las cabeceras de los paquetes IPv6 están rediseñadas para acelerar el procesamiento en los enrutadores. Esto se consigue aún cuando el tamaño de las cabeceras sea que las de IPv4, mediante un diseño más eficiente:


  • Los campos que se usan raramente se mueven a extensiones opcionales de la cabecera.
  • No se admite la fragmentación de paquetes en ruta. 
  • Los paquetes sólo se pueden fragmentar de extremo a extremo, usando una técnica de descubrimiento del tamaño máximo del camino (PMTU discovery).
  • Se elimina la redundancia en el control de errores (checksum). La integridad es competencia de las otras capas de red (enlace y/o transporte). Es innecesario que la capa IP tenga que calcular también el checksum.
  • El concepto de TTL (tiempo de vida) se rediseña a uno más lógico de límite de saltos (hop limit).
  • Se incorpora el concepto de jumbogramas (paquetes de hasta 4 gigabytes de tamaño) para aplicaciones específicas.

No hay comentarios:

Publicar un comentario

Expresa tu opinión respetando a los demás y a unas mínimas reglas del lenguaje castellano.