Ayuda

« Atrás

IPv6: conceptos básicos

IPv6 (Internet Protocol Version 6) es una versión de protocolo IP creada por el Grupo de Trabajo de Ingeniería de Internet (en inglés, Internet Engineering Task Force (IETF)). Esta versión de protocolo sustituye la versión 4 del protocolo IP (IPv4) que se usaba hasta ahora y establece un procedimiento estándar para transmitir paquetes de datos en redes informáticas. Las funciones principales de IPv6 son el direccionamiento de elementos de red a través de las llamadas direcciones IPv6, así como el redireccionamiento de paquetes entre subredes (routing). Uno de los motivos principales para la creación de IPv6 es la escasez de direcciones de Internet públicas. IPv4 usa direcciones de 32 bits. Por lo tanto, tiene un espacio de direcciones de unos 4,3 millones de direcciones. En cambio, IPv6 usa direcciones IPv6 de 128 bits de tamaño. Este tamaño de direcciones permite una cantidad inimaginable de 2128 o 3,4 x 1038 direcciones IPv6.

Estructura de una dirección IPv6

Las direcciones IPv6 se componen de 8 bloques de 16 bits con números hexadecimales de cuatro dígitos cada uno. Los bloques están separados por dos puntos. Ejemplo:

2001:0620:0000:0000:0211:24FF:FE80:C12C

Los primeros 64 bits se usan para el routing y determinan el prefijo de encaminamiento (routing prefix). El prefijo de encaminamiento identifica la red, la subred o el rango de direcciones. Los últimos 64 bits son los identificadores de interfaz (Interface Identifier (IID)). El identificador de interfaz identifica un host en esta red. Se forma a partir de la dirección MAC de 48 bits de la interfaz y se convierte en una dirección de 64 bits. Se trata del formato EUI-64 modificado. Por lo tanto, la interfaz se puede identificar con claridad independientemente del prefijo de encaminamiento.

La máscara de red o subred, que se usaban en IPv4, ya no se usan en IPv6. Para poder llevar a cabo una segmentación pese a ello, se define la longitud del prefijo y se añade con una "/" (barra) a la dirección IPv6 real. Ejemplo:

Una subred con las direcciones IPv6 2001:0820:9511:0000:0000:0000:0000:0000 hasta 2001:0820:9511:FFFF:FFFF:FFFF:FFFF:FFFF se puede describir con la notación 2001:0820:9511::/48.

Asignación de direcciones

En regla general, los proveedores de servicios de Internet (ISP) reciben del RIR un grupo de direcciones con prefijo de 48 bits (redes /48), que a su vez lo subdividen en subredes. A los clientes finales se les asigna redes /48 o redes /56.

Extensiones privadas (Privacy Extensions)

El uso de una dirección IPv6 basada en el formato EUI-64 modificado permite acceder a la dirección MAC subyacente. Dado que esto podría generar dudas respecto a la protección de datos, se han desarrollado las extensiones privadas para anonimizar la parte del host en las direcciones IPv6. Para ello, las extensiones privadas eliminan la vinculación del identificador de interfaz con la dirección MAC y generan identificadores de interfaz temporales para conexiones salientes.

Reglas de notación

Como las direcciones IPv6 pueden ser muy largas, suelen acortarse. En la RFC 5952 , se definen reglas de notación vinculantes. Estas incluyen, entre otras, las reglas siguientes:
  • Los ceros iniciales de cada grupo pueden omitirse.
  • Un grupo de 4 ceros se resume en un cero.
  • Uno o más grupos de ceros se sustituyen por dos dos puntos ("::"). Esta sustitución puede realizarse únicamente una vez en la dirección, de lo contrario se pierde la unicidad. Ejemplo:

    La dirección 2001:0dc8:0:0:8d5:0:0:0 se acortaría así 2001:0dc8:0:0:8d5:0:: o así 2001:0dc8:0::8d5:0:0:0

  • Si la dirección contiene varios grupos de ceros, solo se puede sustituir el grupo situado más a la izquierda.

Representación en los URL

En un URL, las direcciones IPv6 aparecen entre corchetes. Ejemplo:

http://[2001:0db8:83a3:08d3::0380:7344]/

Los números de puerto deben estar tras los corchetes de cierre. Están separados por dos puntos.

http://[2001:0db8:83a3:08d3::0380:7344]:8080/

El signo de porcentaje (%) se sigue utilizando para identificar la codificación de caracteres hexadecimales en los URL. Dentro del URL se sustituirá el signo de porcentaje por su propio código hexadecimal "%25" (RFC 6874). Esto es necesario si se desea forzar la conexión a través de una interfaz específica.

Tipos de dirección IPv6

Al igual que en IPv4, también se han definido diferentes rangos de direcciones con tareas y propiedades especiales para IPv6. Estas se especifican en la RFC 4291 y RFC 5156 y se identifican por los primeros bits de una dirección IPv6, el denominado prefijo de formato.

  • Direcciones loopback: la dirección 0:0:0:0:0:0:0:1 (también ::1/128) se denomina dirección loopback. Se trata de la dirección de la propia ubicación.
  • Direcciones de enlace local: las direcciones de enlace local solo son válidas dentro de redes locales y comienzan con el prefijo de formato FE80::/10. Estas direcciones se utilizan para direccionar elementos dentro de una red local, así como para la autoconfiguración o el descubrimiento del vecindario (Neighbour Discovery). Por regla general, el alcance de una dirección local de enlace se extiende hasta llegar al siguiente router, de modo que cada dispositivo conectado a la red puede comunicarse con este para generar una dirección IPv6 global. Ese proceso se denomina descubrimiento del vecindario (Neighbour Discovery).
  • Direcciones locales únicas: para redes locales privadas se han definido y reservado rangos de direcciones para el protocolo IPv6. Estas se describen en la RFC 4193 y poseen una función similar a los rangos de direcciones privados establecidos en el protocolo IPv4. Las direcciones locales únicas (en inglés, unique local addresses (ULA)) se encuentran dentro del rango "fc00::/7" (fc00… hasta fdff…) y no se enrutan en Internet. Solo son válidas dentro de una red definida. Hay que diferenciar entre el prefijo "fc" y "fd", ya que no significan lo mismo. Mientras que las direcciones IPv6 con el prefijo fc son asignadas por el proveedor, las direcciones IPv6 con el prefijo fd pueden ser utilizadas en una red local.
  • Direcciones unicast globales: las direcciones unicast globales son únicas y se reconocen a nivel global. Los dispositivos de red las necesitan para establecer la conexión a Internet. Un host puede tener varias de esas direcciones IPv6. El host las instala mediante la autoconfiguración.
  • Direcciones multicast: las direcciones multicast se usan como método para comunicaciones uno-a-muchos (one-to-many). Los paquetes enviados a una dirección multicast llegan a todos los dispositivos de red que formen parte del grupo multicast. Un dispositivo puede pertenecer paralelamente a varios grupos multicast. En caso de crearse una dirección unicast IPv6 para un dispositivo de red, este se convertirá automáticamente en miembro de determinados grupos multicast necesarios para la detección, accesibilidad y el establecimiento de prefijos. Las direcciones multicast se identifican con el prefijo "ff::/8". Los siguientes 4 bits se utilizan como flags (indicadores) y otros 4 bits para indicar el scope (alcance) de la dirección multicast.

    Las direcciones multicast terminan con un número identificador de un grupo multicast. En https://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml, encontrará una lista de los grupos multicast.

  • Direcciones anycast: las direcciones de este tipo se pueden direccionar a grupos de dispositivos destinatarios. Los paquetes de datos se enviarán solo al dispositivo más cercano al emisor. Por lo tanto, las direcciones anycast se usan para el balanceo de carga (los distintos servidores se reparten el trabajo de modo que no haya un equipo sobrecargado) y la creación de ámbitos de redundancia (si un equipo falla, los demás asumen sus funciones y el servicio sigue disponible).

Formato de paquete de IPv6

El protocolo IPv6 especifica un nuevo formato de paquete. La cabecera tiene una tamaño fijo de 40 bytes. Las cabeceras de extensión (extension headers) deslocalizan información opcional entre la cabecera IPv6 y las cabeceras de protocolos de nivel superior. Así se pueden añadir opciones sin que cambe la cabecera. Las extensiones de cabecera de IPv6 pueden contener la siguiente información: opciones salto a salto (Hop-By-Hop Options), opciones para el destino (Destination Options), opciones de enrutamiento (Routing Options), así como opciones de fragmentación, autenticación y encriptación. En la RFC 2460, encontrará información adicional sobre el formato de paquete de IPv6.

Autoconfiguración de direcciones sin estado

La autoconfiguración de direcciones sin estado (en inglés, Stateless Address Autoconfiguration (SLAAC)) es un procedimiento para configurar automáticamente direcciones IPv6 en una interfaz de red. Con este procedimiento un host puede establecer de forma totalmente automática una conexión a Internet operativa. "Sin estado" significa que la dirección IPv6 no se asigna y guarda de forma centralizada. El host crea una dirección IPv6 local de enlace para la comunicación inicial con el router y se la asigna a sí mismo. Con la dirección IPv6 local de enlace, un dispositivo puede buscar el router en su segmento de red gracias al protocolo ND (en inglés, Neighbour Discovery Protocol (NDP)). Esto se realiza a través una solicitud a la dirección multicast, mediante la cual se puede acceder a todos los routers de un segmento.

Tras recibir dicha solicitud, un router envía información sobre los prefijos disponibles. Para evitar la asignación duplicada de direcciones IPv6, el host lleva a cabo una detección de direcciones duplicadas (en inglés, Duplicate Address Detection (DAD)) en una dirección IPv6 recién generada. El host enviará una solicitud a la dirección generada en la red local. La dirección de respuesta será una dirección multicast. Si otra unidad ya está usando la dirección IPv6, se enviará una respuesta de vuelta. Si esta dirección no enviará ninguna respuesta, el host usará la dirección IPv6 para la comunicación.

Neighbour Discovery Protocol

El Neighbour Discovery Protocol (NDP) es un protocolo de IPv6. Entre otras cosas, se utiliza para la resolución de direcciones IPv6 en direcciones MAC. Además, se usa para actualizar direcciones en caché. Cuando un nodo no se encuentra en la misma red, el NDP se utiliza para encontrar un router que redireccione los paquetes. Además, este protocolo desempeña, entre otras, las tareas siguientes:
  • descubrimiento de parámetros
  • autoconfiguración de direcciones sin estado
  • resolución de direcciones (con descubrimiento del vecindario)
  • detección de que el vecino puede ser o no contactado (Neighbor Unreachability Detection (NUD)
  • detección de direcciones duplicadas (en inglés, Duplicate Address Detection (DAD)
  • redireccionamiento

Encontrará información adicional sobre el Neighbour Discovery Protocol en la RFC 4861

DHCP6

DHCP es un protocolo que administra la configuración IP en una red TCP/IP. Esto permite integrar clientes conectados en una red existente sin necesidad de configurar manualmente la interfaz de red. En una red de IPv6, en realidad, no hace falta DHCP6, ya que esta tarea la asume la autoconfiguración de direcciones sin estado (SLAAC). Aunque puede haber motivos para usar DHCP6. Por ejemplo, en caso de que el cliente de IPv6 no pueda usar las opciones de la configuración IP mediante la autoconfiguración de direcciones sin estado. En este caso, la dirección IP puede asignarse mediante la autoconfiguración de direcciones sin estado y el resto de los parámetros de configuración mediante DHCPv6.