CONSULTORÍA ESTRATÉGICA EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIONES

CONSULTORIA EN REDES Y SERVICIOS DE TELECOMUNICACIONES




El protocolo IPv6 (II)

Autor: Ramón Jesús Millán Tejedor

Publicado en Comunicaciones World nº 158, IDG Communications S.A., 2001

El protocolo IPv6


Acceder a la primera parte



Direccionamiento en IPv6

Recordemos que las direcciones IP, tienen una longitud de 32 bits. Los bits se dividen en dos campos:

La representación de las direcciones IPv4 sigue el esquema x.x.x.x, donde x es un valor decimal de 8 bits, es decir, puede tomar el valor 0-255. Un ejemplo de dirección IP es 136.255.151.252.

En función de la longitud de los campos de subred y de sistema de la dirección IP, se distinguen cinco tipos básicos de direcciones, esquematizados en la Tabla 1:

Clase Redes Hosts Primer octeto
A 128 16 millones 0-127
B 16.000 65.000 128-191
C 2 millones 255 192-223
D multicasting - 224-239

Tabla 1: Esquema de las clases de direcciones IP.

Las redes pueden ser divididas en redes más pequeñas de carácter local, denominadas subredes, a través de un proceso conocido como subnetting. El subnetting proporciona al administrador varios beneficios, como una flexibilidad adicional, un uso más eficiente de las direcciones de red, y la capacidad de soportar tráfico de broadcast (el tráfico de broadcast nunca atraviesa los routers). La subred es creada tomando parte de los bits correspondientes al campo de servidor, denotándolos por campo de subred. El número de bits varía y viene especificado por la máscara de subred. El enmascaramiento de subred aislada asigna un 1 binario a los bits que pertenecen a la parte de red y un 0 binario a los bits que pertenecen a la parte de la dirección local. Por ejemplo, la máscara de subred para la clase C es 255.255.255.0 sin subnetting, pero si consideramos 5 bits para subredes, la máscara de subred será 255.255.255.248; tendremos por lo tanto, 25-2=30 subredes posibles, con 23-2=6 servidores por subred, pues las direcciones de subred y de sistema con todos los bits a 0 o 1 son direcciones reservadas. La máscara de subred local será utilizada por los routers aplicando una operación and lógica sobre los paquetes que reciben, con el fin de encaminar en función de la dirección de red.

El concepto contrario al subnetting es el supernetting o CIDR (Classless Inter-Domain Routing). Debido a la pocos niveles de jerarquía de las direcciones, que sólo consideran una parte de subred y otra de sistema, las tablas de encaminamiento de las redes troncales de Internet han crecido enormemente, reduciendo la eficiencia de los routers. El supernetting divide las direcciones, en bloques de tamaño variable.

Las direcciones en IPv6, descritas en la RFC 2373, soportan un número de bits que cuadriplica al utilizado por las de IPv4. Así, mientras el espacio de direccionamiento total en IPv4 es de 232 (4.294.967.296), en IPv6 lo es de 2128 (340.282.366.920.938.463.463.374.607.431.768.211.456). Para hacerse una idea del tremendo espacio de direcciones disponible, se suele indicar que esto supone, en un sentido teórico, 665.570.793.348.866.943.898.599 direcciones por metro cuadrado de la superficie del planeta Tierra (asumiendo que la superficie de la Tierra tiene 511.263.971.197.990 metros cuadrados).

Las direcciones IPv6 de 128 bits identifican interfaces individuales o grupos de interfaces. Las direcciones IPv6, cualquiera que sea el tipo, se asignan a las interfaces, no a los nodos. Puesto que cada interfaz pertenece a un único nodo, cualquiera de las direcciones de interfaces unicast de ese nodo podrían ser utilizadas como un identificador del nodo. Una única interfaz puede tener múltiples direcciones IPv6 de cualquier tipo; por ejemplo una interfaz podría tener una dirección unicast, otra anycast, y otra multicast simultáneamente.

Se distinguen tres tipos de direcciones en IPv6:

La representación de las direcciones IPv6 sigue el esquema x:x:x:x:x:x:x:x, donde x es un valor hexadecimal de 16 bits. No es preciso escribir los 0s a la izquierda de cada campo y, puesto que además pueden existir varias cadenas de 0s, se permite la escritura de su abreviación mediante el uso de “::”, el cual representa múltiples grupos de 16 bits a 0 binario. Por ejemplo, la dirección 0:0:0:0:0:0:0:0000000000000001, puede escribirse como ::1. No obstante, de tener una dirección del tipo 0:0:0:1:0:0:0:1, sólo puede ser abreviada como ::1:0:0:0:1 o 0:0:0:1::1; pues de hacerlo como ::1::1, podría ser confundida con otras direcciones, por ejemplo con la 0:0:1:0:0:0:0:1.

El tipo específico de dirección IPv6 viene indicado por los primeros bits de la dirección. Este campo de longitud variable es denominado prefijo y permite conocer dónde está conectado un determinado nodo, es decir, su ruta de encaminamiento. La dirección IPv6 se compone, por consiguiente, de un prefijo seguido de un identificador de nodo.

En IPv6 se ha reservado (que no asignado) algo más del 15% del espacio de direccionamiento para permitir una fácil transición del resto de protocolos y para el desarrollo de los propios mecanismos del protocolo, como podemos ver en la Tabla 2. El 85% se ha dejado para un uso futuro. Como vemos, la estructura de direcciones de IPv6 ha sido diseñada para soportar las direcciones, como IPX o NSAP. De esta forma se facilita la migración de otros protocolos a IPv6.

Estado Prefijo (en binario) Fracción del espacio
Reservado 0000 0000 1/256
Reservado para NSAP 0000 0001 1/256
Reservado para IPX 0000 001 1/128
No asignado 0000 010 1/128
No asignado 0000 1 1/32
No asignado 001 1/8
Direcciones unicast globales agregables basadas en el proveedor 010 1/8
No asignado 101 1/8
No asignado 110 1/8
No asignado 1110 1/16
No asignado 1111 0 1/32
No asignado 1111 10 1/64
No asignado 1111 110 1/128
No asignado 1111 1110 0 1/512
Direccions unicast locales de enlace 1111 1110 10 1/1.024
Direcciones unicast locales de sitio 1111 1110 11 1/1.024
Direcciones multicast 1111 1111 1/256

Tabla 2: Prefijos.

Las direcciones unicast globales agregables basadas en el proveedor, son utilizadas para comunicaciones globales en todo Internet. Estas direcciones son semejantes a las direcciones IPv4 utilizando CIDR. Los tres primeros bits, correspondientes al prefijo son 101. El resto de la dirección la forman los siguientes campos, de longitud variable hasta hacer un total de 128 bits:

Las direcciones unicast de uso local son direcciones que sólo tienen un ámbito de encaminamiento local, es decir, dentro de una red local o dentro de la red de una única compañía, y que podrían ser únicas local o globalmente. Se han definido dos tipos de direcciones locales:

En ambos tipos de direcciones locales el identificador de interfaz es un identificador que debe ser único en el dominio en el cual está siendo usado. En la mayoría de los casos este identificador utilizará la dirección IEEE 802 de 48 bits de ese nodo, por ejemplo, en el caso de una red Ethernet se utilizará la dirección MAC. La subred, para el caso de las direcciones locales de sitio, identifica una red determinada del sitio local u organización.

Las direcciones de uso local permiten a las organizaciones que aún no se han conectado a Internet, operar sin la necesidad de solicitar un prefijo de dirección del espacio global de direcciones de Internet. Si la organización se incorpora más adelante a Internet, puede utilizar el identificador de subred y de interfaz en combinación con un prefijo global (es decir, un identificador de registro, otro de proveedor y otro de subscriptor) para crear una dirección global. Esto supone una mejora significativa respecto a IPv4, pues requiere que los sitios que utilizan direcciones IPv4 privadas (no globales) se renumeren manualmente cuando se conectan a Internet. IPv6 hace la renumeración automáticamente.

Las direcciones unicast especiales definidas en IPv6 son:

Las direcciones anycast, descritas en la RFC 2526, utilizan cualquiera de los formatos de direcciones definidos para las direcciones unicast. De esta forma, las direcciones anycast son sintácticamente indistinguibles de las direcciones unicast. Cuando una dirección unicast es asignada a más de una interfaz, convirtiéndose así en una dirección anycast, los nodos a los cuales se les ha asignado esa dirección se deben configurar explícitamente para que sepan que se trata de una dirección anycast.

Las direcciones multicast están descritas en la RFC 2375. Tienen un prefijo 1111 1111. Después, tienen un campo de bandera de 4 bits, de los cuales los tres primeros están reservados y deben ser inicializados a 0, el último bit puede estar a 0, lo cual indica una dirección multicast asignada permanentemente, o a 1, si es una dirección multicast asignada transitoriamente. El campo que sigue al de banderas es también de 4 bits y se denomina ámbito; su valor se utiliza para limitar el ámbito del grupo de multicast (global, local de nodo, local de enlace, local de sitio, etc.). Finalmente, el campo de grupo de 112 bits, identifica el grupo de multicast.

Descubrimiento de nodos vecinos

El protocolo equivalente (aunque con grandes mejoras y ventajas) en IPv6, al protocolo de resolución de direcciones o ARP (Address Resolution Protocol) en IPv4, es el de descubrimiento de vecinos o ND (Neigbour Discovery), descrito en la RFC 2461. Recordemos que ARP, es un protocolo que utiliza el broadcast para que un nodo pueda obtener la dirección física de otro a partir de su dirección IP. Básicamente, lo que hace el nodo es preguntar a todos los nodos vecinos cuál es la dirección física del nodo de dirección IP con el que quiere comunicarse, respondiéndole sólo el nodo con dicha dirección IP, con un paquete que contiene su dirección física.

El protocolo ND utiliza el multicast y es independiente del tipo de enlace físico en cuestión. Se trata de un protocolo bastante complejo y sofisticado, ya que es la base para permitir el mecanismo de autoconfiguración en IPv6. ND emplea los mensajes de ICMPv6 para algunos de sus servicios. Ofrece, entre otros, mecanismos para: descubrir routers, prefijos y otros parámetros, autoconfiguración de direcciones, resolución de direcciones, determinación del siguiente salto, detección de direcciones duplicadas o cambios, redirección, etc. El protocolo ND define cinco tipos de paquetes ICMPv6:

TransiciÓn de IPv4 a IPv6

La transición de IPv4 a IPv6 no tendrá lugar de la noche a la mañana. Las dos versiones de IP deberán coexistir durante muchos años. Básicamente, IPv6 puede ser implementado como una actualización software en los nodos IPv4 actuales, comenzando un período de transición para minimizar los costes de nuevos equipos y proteger las fuertes inversiones realizadas. Sin embargo, es difícil saber cuando las operadoras en Internet migrarán a la tecnología IPv6. En la actualidad la gran mayoría de las operadoras utiliza nodos IPv4, y con esta situación, donde casi todo el tráfico debería adaptarse a redes basadas en IPv4, la motivación para el cambio es muy baja. Las nuevas características de autoconfiguración, que hace que las redes IPv6 más fáciles de configurar y mantener que las redes IPv4, pueden ser atractivas para nuevas operadoras que han de realizar un despliegue de infraestructura muy rápido. Por otro lado, para facilitar la migración es importante que las aplicaciones IPv4 existentes sean capaces de operar también con las aplicaciones IPv6; por ejemplo, los navegadores de Internet deben ser capaces de comunicarse utilizando IPv6 e IPv4.

El principal problema es, que mientras los sistemas IPv6 son compatibles hacia atrás, es decir, pueden enviar, encaminar y recibir paquetes IPv4, los sistemas IPv4 actuales no son capaces de manejar paquetes IPv6. Lo ideal sería declarar unos días de inactividad, durante los cuales todas las máquinas de Internet serán desactivadas, y se migraría de IPv4 a IPv6. No obstante, una tarea así, con millones de máquinas y de administradores de redes implicados, es prácticamente imposible. Seguidamente se presentan las dos principales opciones (que pueden trabajar de forma aislada o conjunta), descritas en la RFC 1993, que hay para solventar esta limitación.

La primera opción es introducir una doble pila completa de protocolos, IPv4 e IPv6, en los nodos IPv6. De esta forma, este nodo IPv6/IPv4 puede enviar y recibir paquetes IPv6 e IPv4. Cuando trabaje con un nodo IPv4, el nodo IPv6/IPv4 puede utilizar paquetes IPv4; cuando trabaje con un nodo IPv6, puede utilizar paquetes IPv6. Los nodos IPv6/IPv4 deben tener tanto direcciones IPv6 como IPv4. Deben de ser capaces también de descubrir si otro nodo es capaz de utilizar IPv6 o sólo IPv4. Esto se puede conseguir utilizando el protocolo de resolución de nombres de dominio o DNS, que puede devolver una dirección IPv6 si el nombre del nodo que se está resolviendo es capaz de utilizar IPv6, o bien una dirección IPv4 en caso contrario. Por supuesto, si el nodo que hace la petición DNS únicamente puede utilizar IPv4, DNS devolverá sólo una dirección IPv4.

Según este método, si cualquiera de los nodos intermedios sólo puede operar con IPv4, se deben utilizar paquetes IPv4. Por ello, es posible que la comunicación entre dos nodos extremos IPv6, tenga lugar con paquetes IPv4. Lo que se hace es que ambos extremos envían paquetes IPv6, pero cuando estos lleguen a un nodo IPv4, todo el paquete IPv6 será encapsulado en el campo de datos del paquete IPv4 y se llevará a cabo una correspondencia de direcciones, perdiendo la información relevante de los campos de la cabecera IPv6.

La segunda opción es utilizar túneles. Esto permitiría que los nodos extremos IPv6 se comuniquen siempre en IPv6, aunque haya nodos intermedios IPv4. Se considera un túnel a todos los nodos IPv4 entre dos nodos IPv6.

Utilizando esta técnica, el nodo IPv6 que hace frontera con el túnel, toma el paquete IPv6, y lo pone en el campo de datos de un paquete IPv4. Este paquete IPv4 tiene como dirección de destino el nodo IPv6 en la parte final del túnel y es enviado al primer nodo IPv4 que conforma el túnel. Los nodos IPv4 del túnel encaminan el paquete, sin tener constancia de que el paquete IPv4 que están manejando contiene un paquete IPv6. Cuando este paquete llega al extremo receptor IPv6 del túnel, que es precisamente el destino del paquete, éste determina que el paquete IPv4 contiene un paquete IPv6, extrae el paquete IPv6 y lo encamina exactamente del mismo modo que si hubiera recibido el paquete IPv6 de un nodo IPv4 vecino.

Foro IPv6

Los principales organismos encargados de desarrollar y estandarizar la tecnología de Internet son cuatro:

Por otro lado, el Foro IPv6 es un consorcio internacional sin ánimo de lucro creado en el año 1999, que está formado por las principales instituciones de investigación y desarrollo, universidades, y consultoras y proveedores de infraestructura de telecomunicaciones. Su misión es promover el uso de IPv6 en el mercado para crear la próxima generación de Internet, de mayor calidad y más segura, apoyando la estandarización y desarrollo estable de este protocolo, y fomentando su conocimiento.

Los objetivos del Foro IPv6 son los enumerados a continuación:

Como vemos, el Foro IPv6 no tiene por fin desarrollar los estándares de IPv6, pues sólo la IETF, con la que trabaja estrechamente, tiene autoridad sobre ellos. Además, el Foro IPv6 mantiene sus puertas abiertas a acuerdos con otras instituciones o foros industriales, habiendo establecido, por ejemplo, importantes acuerdos de colaboración con el Foro UMTS.

En el Sitio Web del Foro IPv6, cuya página de inicio se muestra en la Figura 3 se puede conseguir información detallada sobre sus actividades, estándares, y el protocolo IPv6 en general.

Sitio Web del Foro IPv6

Figura 3: Sitio Web del Foro IPv6.

Acceder a la primera parte

Volver al listado de artículos