Primera aproximación a IPv6

VN:F [1.9.22_1171]
Rating: 3.7/5 (3 votos cast)

Este es el primer artículo técnico sobre IPv6 donde se explicará de forma general las dos primeras características de este protocolo: la estructura del datagrama y el direccionamiento.

Introducción a IPv6

IPv6 es el nuevo protocolo desarrollado por el IETF (Internet Engineering Task Force) para sustituir al actual protocolo IPv4 utilizado en las redes de todo el mundo. La primera versión de IPv6 fue publicada en 1994 y originalmente recibió el nombre de IPng (IP Next Generation). La principal razón por la que se comenzó el desarrollo de esta versión de IP fue por el agotamiento del espacio de direccionamiento de la versión IPv4. Con la nueva versión, además de solucionar este problema, se añadieron características adicionales para mejorar el funcionamiento de IP. Por tanto, las principales características de IPv6 son:

  • Espacio de direcciones ampliado. Este es el principal objetivo de IPv6. Se define un nuevo tipo de dirección IP de 128 bits, en lugar de los 32 bits de una dirección IPv4, lo que conlleva un espacio de direccionamiento prácticamente inagotable.
  • Mecanismo de opciones mejorado. Las opciones de IPv6 se encuentran en cabeceras separadas opcionales situadas entre la cabecera IPv6 y la cabecera de la capa de transporte. La mayoría de estas cabeceras opcionales no se examinan ni procesan por ningún dispositivo de encaminamiento en la trayectoria del paquete. Esto simplifica y acelera el procesamiento que realiza un dispositivo de encaminamiento sobre los datagramas IPv6 en comparación a los datagramas IPv4, y hace que sea más fácil incorporar opciones adicionales.
  • Direcciones de autoconfiguración. Esta capacidad proporciona una asignación dinámica de direcciones IPv6, siendo por tanto innecesario el uso de DHCP en muchas de las situaciones.
  • Aumento de la flexibilidad en el direccionamiento. IPv6 incluye el uso mejorado de direcciones multicast (envío de un datagrama a un grupo de receptores) incluyendo direccionamiento anycast (envío de un datagrama a un receptor dentro de un grupo).
  • Facilidad para la asignación de recursos. IPv6 habilita el etiquetado de los paquetes como pertenecientes a un flujo de tráfico particular para el cual el emisor solicita un tratamiento especial. Esto ayuda al tratamiento del tráfico especializado, como puede ser el video o la voz en tiempo real.
  • Las características de seguridad, conocidas como IPsec son intrínsecas al núcleo del protocolo. En IPv4 se puede utilizar IPsec pero es opcional.
  • Encaminamiento y procesamiento de los datagramas en los routers es más eficiente gracias a la jerarquía de direccionamiento de IPv6 y a que no haya fragmentación ya que, de ser necesaria, ésta se aplica sólo en el nodo origen.
  • Características para permitir la movilidad.

Datagrama IPv6

La unidad de datos del protocolo IPv6 también llamada datagrama tiene la siguiente estructura general:

Como se observa, IPv6 utiliza una cabecera principal con la información imprescindible para el encaminamiento de los datagramas, y el resto de información se incluye de forma opcional en cabeceras secundarias, que pueden o no enviarse. Esta característica facilita el procesamiento de los datagramas en los routers permitiendo incluso implementar los mecanismos de encaminamiento por hardware (como en los switches) en lugar de por software, que es como se realiza con IPv4, lo que provoca una mejora significativa en las prestaciones de los routers.

La única cabecera obligatoria es conocida como la cabecera IPv6 y tiene una longitud fija de 40 bytes, mientras que la parte obligatoria de la cabecera IPv4 es de 20 bytes. Sin embargo, la cabecera IPv6 tiene ocho campos, frente a los 13 campos de la cabecera de IPv4.

En la figura anterior se representa la cabecera fija de IPv6, que consta de los siguientes campos:

  • Versión. Tiene una longitud de 4 bits. Indica el número de la versión de IP (el valor es 6).
  • Clase de tráfico. Tiene una longitud de 8 bits. Indica la prioridad. Permite diferenciación de tráfico (por ejemplo, interactivo o flujo) y posibilidad de descarte en caso de congestión.
  • Etiqueta de flujo. Tiene una longitud de 20 bits. Puede ser utilizado por un nodo para etiquetar aquellos paquetes para los que se requiere un tratamiento especial en los dispositivos de encaminamiento dentro de la red.
  • Longitud de la carga útil. Tiene una longitud de 16 bits. Indica la longitud en bytes del resto del paquete IPv6 excluida la cabecera principal. Representa la longitud total de todas las cabeceras adicionales más la PDU de la capa de transporte.
  • Cabecera siguiente. Tiene una longitud de 8 bits. Identifica el tipo de cabecera que sigue inmediatamente a la cabecera IPv6.
  • Límite de saltos. Tiene una longitud de 8 bits. Indica el número restante de saltos permitidos para este paquete. El límite de saltos se establece por la fuente a algún valor máximo deseado. Se decrementa en 1 en cada nodo que reenvía el paquete. Es equivalente al campo TTL de IPv4.
  • Dirección origen. Tiene una longitud de 128 bits (16 bytes). Indica la dirección que identifica al emisor del datagrama.
  • Dirección destino. Tiene una longitud de 128 bits (16 bytes). Indica la dirección que identifica al receptor del datagrama. Si se utiliza encaminamiento desde el origen, este campo contiene la dirección del siguiente router.

Cabeceras adicionales en IPv6

En la nueva versión, ciertas informaciones complementarias se codifican en cabeceras que deben colocarse en el paquete entre la cabecera IPv6 y la cabecera del nivel de transporte. Hay un pequeño número de extensiones a la cabecera IPv6 (cada una de ellas identificada por un valor Cabecera siguiente distinto). Un paquete IPv6 puede contener ninguna, una o varias cabeceras suplementarias.

Salvo excepciones, las cabeceras suplementarias apenas son examinadas o manipuladas por los nodos alcanzados por el paquete a lo largo de su camino hasta que éste llega al nodo (o a cada grupo de nodos en el caso del multicast) identificados por el campo dirección de destino de la cabecera IPv6. En este momento se trata la primera cabecera suplementaria, o la cabecera de transporte en el caso de no haber cabeceras suplementarias. El contenido de cada cabecera determinará si es necesario tratar la cabecera siguiente.

La única excepción es la cabecera nodo por nodo (Hop-by-Hop), que lleva información que deberá ser examinada por los nodos de la red. Cuando está presente, tiene que seguir inmediatamente a la cabecera IPv6. Cada cabecera suplementaria es de una longitud de un múltiplo de ocho octetos, para conservar una alineación de 8 bytes en las cabeceras suplementarias. Cuando hay más de una cabecera suplementaria en un mismo paquete, las cabeceras deben aparecer en el orden siguiente:

  1. Cabecera IPv6 (IPv6 Header).
  2. Cabecera nodo por nodo (Hop-by-Hop Header).
  3. Cabecera de encaminamiento (Routing Header).
  4. Cabecera de fragmentación (Fragment Header).
  5. Cabecera de autentificación (Authentication Header).
  6. Cabecera de confidencialidad (Privacy Header).
  7. Cabecera de extremo a extremo (End-to-End Header).

Cada tipo de cabecera debe aparecer una sola vez en el paquete (excepto en el caso de un encapsulado IPv6 en IPv6, donde cada cabecera IPv6 encapsulada debe estar seguida por su propia cabecera suplementaria).

 Direccionamiento IPv6

El principal objetivo por el que se desarrolló la versión 6 de IP fue la ampliación del espacio de direcciones, que se había quedado corto con IPv4 después del gran desarrollo que experimentó Internet. Una dirección IPv4 es un número de 32 bits representados en formato punto decimal, es decir, agrupando los bits de ocho en ocho y pasando cada cifra a decimal. El nuevo protocolo IPv6 utiliza direcciones de 128 bits, es decir, cuatro veces más bits que una dirección IPv4. Con ello, el espacio de direcciones en IPv6 es de 2128, un número enorme y prácticamente inagotable.

Además de ampliarse el número de bits de las direcciones IPv6 también se ha cambiado la forma de representar dichas direcciones. Se utiliza la numeración hexadecimal y se forman grupos de 16 bits, es decir, de 4 dígitos hexadecimales. Por tanto una dirección IPv6 estará formada por 8 grupos de 4 dígitos hexadecimales. El carácter separador de cada grupo son los dos puntos (:). La siguiente dirección es un ejemplo de dirección IPv6:

2001:0bd8:0000:0000:0012:ac43:0000:65d3

La escritura de las direcciones IPv6 admite además varias simplificaciones:

  • Dentro de cada bloque de 4 dígitos hexadecimales se pueden quitar los ceros a la izquierda. Aplicando esta regla, la dirección anterior quedaría:
2001:bd8:0000:0000:12:ac43:0000:65d3
  • Un bloque donde todos los dígitos sean cero se puede representar con un solo cero. Siguiendo con el ejemplo anterior:
2001:bd8:0:0:12:ac43:0:65d3
  • Se pueden sustituir varios bloques consecutivos con el valor cero por la abreviatura “::”. Esto sólo se puede aplicar una vez. Aplicando esta regla en el ejemplo:
2001:bd8::12:ac43:0:65d3

En el siguiente ejemplo se muestra otra dirección donde existen bloques consecutivos a cero en dos partes de la dirección. Sólo se aplica la regla anterior en la primera aparición:

Dirección sin simplificaciones:

2001:006b:0000:0000:cd41:0000:0000:923a

Dirección con simplificaciones:

2001:6b::cd41:0:0:923a

El el próximo artículo de la serie se explicarán los tipos de direcciones en IPv6 y otros protocolos asociados.

VN:F [1.9.22_1171]
Rating: 3.7/5 (3 votos cast)
Primera aproximación a IPv6, 3.7 out of 5 based on 3 ratings

Un pensamiento en “Primera aproximación a IPv6

Deja un comentario

Tu dirección de correo electrónico no será publicada.

* Copy This Password *

* Type Or Paste Password Here *