El Protocolo de Internet versión 6 ( IPv6 ) es la versión más reciente del Protocolo de Internet (IP), el protocolo de comunicaciones que proporciona un sistema de identificación y localización para ordenadores en redes y enruta el tráfico a través de Internet . IPv6 fue desarrollado por el Grupo de Trabajo de Ingeniería de Internet (IETF) para abordar el problema largamente esperado del agotamiento de direcciones IPv4 , y estaba destinado a reemplazar a IPv4 . [1] En diciembre de 1998, IPv6 se convirtió en un borrador de estándar para el IETF, [2] que posteriormente lo ratificó como estándar de Internet el 14 de julio de 2017. [3] [4]
A los dispositivos de Internet se les asigna una dirección IP única para su identificación y definición de ubicación. Con el rápido crecimiento de Internet después de su comercialización en la década de 1990, se hizo evidente que se necesitarían muchas más direcciones para conectar dispositivos que las que tenía disponibles el espacio de direcciones IPv4. En 1998, la IETF había formalizado el protocolo sucesor. IPv6 utiliza direcciones de 128 bits , lo que teóricamente permite 2 128 , o aproximadamente3,4 × 10 38 direcciones en total. El número real es ligeramente menor, ya que varios rangos están reservados para usos especiales o completamente excluidos del uso general. Los dos protocolos no están diseñados para ser interoperables y, por lo tanto, la comunicación directa entre ellos es imposible, lo que complica la transición a IPv6. Sin embargo, se han ideado varios mecanismos de transición para rectificar esto.
IPv6 ofrece otros beneficios técnicos además de un mayor espacio de direccionamiento. En particular, permite métodos de asignación de direcciones jerárquicos que facilitan la agregación de rutas a través de Internet y, por lo tanto, limitan la expansión de las tablas de enrutamiento . El uso del direccionamiento de multidifusión se amplía y simplifica, y proporciona una optimización adicional para la entrega de servicios. En el diseño del protocolo se han tenido en cuenta aspectos de movilidad, seguridad y configuración de dispositivos.
Las direcciones IPv6 se representan como ocho grupos de cuatro dígitos hexadecimales cada uno, separados por dos puntos. La representación completa se puede acortar; por ejemplo, 2001:0db8:0000:0000:0000:8a2e:0370:7334 se convierte en 2001:db8::8a2e:370:7334 .
IPv6 es un protocolo de capa de Internet para interconexión de redes por conmutación de paquetes y proporciona transmisión de datagramas de extremo a extremo a través de múltiples redes IP, siguiendo estrechamente los principios de diseño desarrollados en la versión anterior del protocolo, el Protocolo de Internet versión 4 (IPv4).
Además de ofrecer más direcciones, IPv6 también implementa características que no están presentes en IPv4. Simplifica aspectos de configuración de direcciones, renumeración de redes y anuncios de enrutadores cuando se cambia de proveedor de conectividad de red. Simplifica el procesamiento de paquetes en enrutadores al colocar la responsabilidad de la fragmentación de paquetes en los puntos finales. El tamaño de la subred IPv6 está estandarizado al fijar el tamaño de la porción del identificador de host de una dirección a 64 bits.
La arquitectura de direccionamiento de IPv6 está definida en RFC 4291 y permite tres tipos diferentes de transmisión: unicast , anycast y multicast . [5] : 210
El Protocolo de Internet versión 4 (IPv4) fue la primera versión utilizada públicamente del Protocolo de Internet . IPv4 fue desarrollado como un proyecto de investigación por la Agencia de Proyectos de Investigación Avanzada de Defensa (DARPA), una agencia del Departamento de Defensa de los Estados Unidos , antes de convertirse en la base de Internet y la World Wide Web . IPv4 incluye un sistema de direccionamiento que utiliza identificadores numéricos que constan de 32 bits. Estas direcciones se muestran típicamente en notación decimal con punto como valores decimales de cuatro octetos, cada uno en el rango de 0 a 255, u 8 bits por número. Por lo tanto, IPv4 proporciona una capacidad de direccionamiento de 232 o aproximadamente 4.3 mil millones de direcciones. El agotamiento de direcciones no fue inicialmente una preocupación en IPv4 ya que originalmente se supuso que esta versión era una prueba de los conceptos de red de DARPA. [6] Durante la primera década de funcionamiento de Internet, se hizo evidente que se debían desarrollar métodos para conservar el espacio de direcciones. A principios de la década de 1990, incluso después del rediseño del sistema de direccionamiento utilizando un modelo de red sin clases , se hizo evidente que esto no sería suficiente para evitar el agotamiento de las direcciones IPv4 y que se necesitaban más cambios en la infraestructura de Internet. [7]
En febrero de 2011, la Autoridad de Números Asignados de Internet (IANA) asignó los últimos bloques de direcciones de nivel superior no asignados de 16 millones de direcciones IPv4 a los cinco registros de Internet regionales (RIR). [8] Sin embargo, cada RIR aún tiene grupos de direcciones disponibles y se espera que continúe con las políticas de asignación de direcciones estándar hasta que quede un bloque de enrutamiento entre dominios sin clases (CIDR) /8 . Después de eso, solo se proporcionarán bloques de 1024 direcciones (/22) desde los RIR a un registro de Internet local (LIR). A septiembre de 2015, todos los Centros de Información de Redes de Asia y el Pacífico (APNIC), el Centro de Coordinación de Redes de las Redes IP Europeas (RIPE NCC), el Centro de Información de Redes de América Latina y el Caribe (LACNIC) y el Registro Americano de Números de Internet (ARIN) han llegado a esta etapa. [9] [10] [11] Esto deja al Centro Africano de Información de Redes (AFRINIC) como el único registro regional de Internet que todavía utiliza el protocolo normal para distribuir direcciones IPv4. A partir de noviembre de 2018, la asignación mínima de AFRINIC es /22 o 1024 direcciones IPv4. Un LIR puede recibir una asignación adicional cuando se ha utilizado aproximadamente el 80% de todo el espacio de direcciones. [12]
RIPE NCC anunció que se había quedado sin direcciones IPv4 el 25 de noviembre de 2019 [13] y pidió un mayor progreso en la adopción de IPv6.
En Internet, los datos se transmiten en forma de paquetes de red . IPv6 especifica un nuevo formato de paquete , diseñado para minimizar el procesamiento de encabezados de paquetes por parte de los enrutadores. [2] [14] Debido a que los encabezados de los paquetes IPv4 y los paquetes IPv6 son significativamente diferentes, los dos protocolos no son interoperables. Sin embargo, la mayoría de los protocolos de transporte y de capa de aplicación necesitan poco o ningún cambio para operar sobre IPv6; las excepciones son los protocolos de aplicación que incorporan direcciones de capa de Internet, como el Protocolo de transferencia de archivos (FTP) y el Protocolo de tiempo de red (NTP), donde el nuevo formato de dirección puede causar conflictos con la sintaxis del protocolo existente.
La principal ventaja de IPv6 sobre IPv4 es su mayor espacio de direcciones. El tamaño de una dirección IPv6 es de 128 bits, en comparación con los 32 bits de IPv4. [2] Por lo tanto, el espacio de direcciones tiene 2 128 = 340.282.366.920.938.463.463.374.607.431.768.211.456 direcciones (340 undecillones , aproximadamente).3,4 × 10 38 ). Algunos bloques de este espacio y algunas direcciones específicas están reservados para usos especiales .
Si bien este espacio de direcciones es muy grande, no fue la intención de los diseñadores de IPv6 asegurar la saturación geográfica con direcciones utilizables. Más bien, las direcciones más largas simplifican la asignación de direcciones, permiten una agregación de rutas eficiente y permiten la implementación de características de direccionamiento especiales. En IPv4, se desarrollaron métodos complejos de enrutamiento entre dominios sin clases (CIDR) para aprovechar al máximo el pequeño espacio de direcciones. El tamaño estándar de una subred en IPv6 es de 264 direcciones , aproximadamente cuatro mil millones de veces el tamaño de todo el espacio de direcciones de IPv4. Por lo tanto, la utilización real del espacio de direcciones será pequeña en IPv6, pero la administración de la red y la eficiencia del enrutamiento se mejoran con el gran espacio de subred y la agregación de rutas jerárquica.
La multidifusión , la transmisión de un paquete a múltiples destinos en una única operación de envío, forma parte de la especificación básica de IPv6. En IPv4, esta es una característica opcional (aunque se implementa comúnmente). [15] El direccionamiento de multidifusión de IPv6 tiene características y protocolos en común con la multidifusión de IPv4, pero también proporciona cambios y mejoras al eliminar la necesidad de ciertos protocolos. IPv6 no implementa la difusión de IP tradicional , es decir, la transmisión de un paquete a todos los hosts en el enlace adjunto utilizando una dirección de difusión especial , y por lo tanto no define direcciones de difusión. En IPv6, se logra el mismo resultado enviando un paquete al grupo de multidifusión de todos los nodos local del enlace en la dirección ff02::1, que es análoga a la multidifusión de IPv4 a la dirección 224.0.0.1. IPv6 también proporciona nuevas implementaciones de multidifusión, incluida la incorporación de direcciones de puntos de encuentro en una dirección de grupo de multidifusión de IPv6, lo que simplifica la implementación de soluciones entre dominios. [16]
En IPv4 es muy difícil para una organización obtener incluso una asignación de grupo multicast enrutable globalmente, y la implementación de soluciones entre dominios es un misterio. [17] Las asignaciones de direcciones unicast por parte de un registro de Internet local para IPv6 tienen al menos un prefijo de enrutamiento de 64 bits, lo que produce el tamaño de subred más pequeño disponible en IPv6 (también 64 bits). Con una asignación de este tipo es posible incrustar el prefijo de dirección unicast en el formato de dirección multicast IPv6, mientras se sigue proporcionando un bloque de 32 bits, los bits menos significativos de la dirección, o aproximadamente 4.2 mil millones de identificadores de grupo multicast. De este modo, cada usuario de una subred IPv6 tiene automáticamente disponible un conjunto de grupos multicast específicos de origen enrutables globalmente para aplicaciones multicast. [18]
Los hosts IPv6 se configuran automáticamente. Cada interfaz tiene una dirección local de enlace autogenerada y, cuando se conecta a una red, se realiza la resolución de conflictos y los enrutadores proporcionan prefijos de red a través de anuncios de enrutador. [19] La configuración sin estado de los enrutadores se puede lograr con un protocolo especial de renumeración de enrutadores. [20] Cuando sea necesario, los hosts pueden configurar direcciones con estado adicionales a través del Protocolo de configuración dinámica de host versión 6 (DHCPv6) o direcciones estáticas manualmente.
Al igual que IPv4, IPv6 admite direcciones IP únicas a nivel global . El diseño de IPv6 pretendía volver a enfatizar el principio de extremo a extremo del diseño de red que se concibió originalmente durante el establecimiento de Internet en sus inicios, haciendo que la traducción de direcciones de red quedara obsoleta. Por lo tanto, cada dispositivo de la red es direccionable a nivel global directamente desde cualquier otro dispositivo.
Una dirección IP estable, única y direccionable globalmente facilitaría el seguimiento de un dispositivo a través de redes. Por lo tanto, dichas direcciones son una preocupación particular en materia de privacidad para dispositivos móviles, como computadoras portátiles y teléfonos celulares. [21] Para abordar estas preocupaciones de privacidad, el protocolo SLAAC incluye lo que normalmente se denomina "direcciones de privacidad" o, más correctamente, "direcciones temporales". [22] Las direcciones temporales son aleatorias e inestables. Un dispositivo de consumo típico genera una nueva dirección temporal a diario e ignorará el tráfico dirigido a una dirección anterior después de una semana. Las direcciones temporales se utilizan de forma predeterminada en Windows desde XP SP1, [23] macOS desde (Mac OS X) 10.7, Android desde 4.0 e iOS desde la versión 4.3. El uso de direcciones temporales por parte de las distribuciones de Linux varía. [24]
Renumerar una red existente para un nuevo proveedor de conectividad con diferentes prefijos de enrutamiento es un esfuerzo importante con IPv4. [25] [26] [27] Sin embargo, con IPv6, cambiar el prefijo anunciado por algunos enrutadores puede, en principio, renumerar una red entera, ya que los identificadores de host (los 64 bits menos significativos de una dirección) pueden ser autoconfigurados independientemente por un host. [19]
El método de generación de direcciones SLAAC depende de la implementación. La IETF recomienda que las direcciones sean deterministas pero semánticamente opacas. [28]
El protocolo de seguridad de Internet (IPsec) se desarrolló originalmente para IPv6, pero se implementó ampliamente primero en IPv4, para el cual se rediseñó. IPsec era una parte obligatoria de todas las implementaciones del protocolo IPv6, [2] y se recomendaba el intercambio de claves de Internet (IKE), pero con RFC 6434 la inclusión de IPsec en las implementaciones de IPv6 se degradó a una recomendación porque se consideró poco práctico requerir la implementación completa de IPsec para todos los tipos de dispositivos que pueden usar IPv6. Sin embargo, a partir de RFC 4301, las implementaciones del protocolo IPv6 que implementan IPsec deben implementar IKEv2 y deben admitir un conjunto mínimo de algoritmos criptográficos . Este requisito ayudará a que las implementaciones de IPsec sean más interoperables entre dispositivos de diferentes proveedores. El encabezado de autenticación IPsec (AH) y el encabezado de carga útil de seguridad encapsulante (ESP) se implementan como encabezados de extensión IPv6. [29]
El encabezado de paquete en IPv6 es más simple que el encabezado de IPv4. Muchos campos raramente utilizados se han movido a extensiones de encabezado opcionales. El encabezado de paquete IPv6 ha simplificado el proceso de reenvío de paquetes por parte de los enrutadores . Aunque los encabezados de paquete IPv6 tienen al menos el doble del tamaño de los encabezados de paquete IPv4, el procesamiento de paquetes que solo contienen el encabezado IPv6 base por parte de los enrutadores puede, en algunos casos, ser más eficiente, porque se requiere menos procesamiento en los enrutadores debido a que los encabezados se alinean para coincidir con los tamaños de palabra comunes . [2] [14] Sin embargo, muchos dispositivos implementan soporte IPv6 en software (a diferencia del hardware), lo que resulta en un rendimiento de procesamiento de paquetes muy malo. [30] Además, para muchas implementaciones, el uso de encabezados de extensión hace que los paquetes sean procesados por la CPU de un enrutador, lo que lleva a un rendimiento deficiente o incluso problemas de seguridad. [31]
Además, un encabezado IPv6 no incluye una suma de comprobación. La suma de comprobación del encabezado IPv4 se calcula para el encabezado IPv4 y los enrutadores deben recalcularla cada vez que el tiempo de vida (llamado límite de salto en el protocolo IPv6) se reduce en uno. La ausencia de una suma de comprobación en el encabezado IPv6 promueve el principio de extremo a extremo del diseño de Internet, que preveía que la mayor parte del procesamiento en la red ocurre en los nodos hoja. Se supone que la protección de la integridad de los datos encapsulados en el paquete IPv6 está asegurada tanto por la capa de enlace como por la detección de errores en protocolos de capa superior, a saber, el Protocolo de control de transmisión (TCP) y el Protocolo de datagramas de usuario (UDP) en la capa de transporte . Por lo tanto, mientras que IPv4 permitía que los encabezados de datagramas UDP no tuvieran suma de comprobación (indicada por 0 en el campo del encabezado), IPv6 requiere una suma de comprobación en los encabezados UDP.
Los enrutadores IPv6 no realizan fragmentación de IP . Los hosts IPv6 deben realizar una de las siguientes acciones: realizar Path MTU Discovery , realizar fragmentación de extremo a extremo o enviar paquetes que no sean más grandes que la unidad de transmisión máxima (MTU) predeterminada, que es de 1280 octetos .
A diferencia del IPv4 móvil, el IPv6 móvil evita el enrutamiento triangular y, por lo tanto, es tan eficiente como el IPv6 nativo. Los enrutadores IPv6 también pueden permitir que subredes enteras se muevan a un nuevo punto de conexión de enrutador sin renumeración. [32]
El encabezado del paquete IPv6 tiene un tamaño mínimo de 40 octetos (320 bits). Las opciones se implementan como extensiones. Esto brinda la oportunidad de extender el protocolo en el futuro sin afectar la estructura principal del paquete. [2] Sin embargo, RFC 7872 señala que algunos operadores de red descartan paquetes IPv6 con encabezados de extensión cuando atraviesan sistemas autónomos de tránsito .
IPv4 limita los paquetes a 65.535 (2 16 −1) octetos de carga útil. Un nodo IPv6 puede manejar opcionalmente paquetes que superen este límite, denominados jumbogramas , que pueden tener un tamaño de hasta 4.294.967.295 (2 32 −1) octetos. El uso de jumbogramas puede mejorar el rendimiento en enlaces con MTU elevado. El uso de jumbogramas se indica mediante el encabezado de extensión Jumbo Payload Option. [33]
Un paquete IPv6 tiene dos partes: un encabezado y una carga útil .
El encabezado consta de una parte fija con la funcionalidad mínima requerida para todos los paquetes y puede ir seguido de extensiones opcionales para implementar características especiales.
El encabezado fijo ocupa los primeros 40 octetos (320 bits) del paquete IPv6. Contiene las direcciones de origen y destino, la clase de tráfico, el número de saltos y el tipo de extensión o carga útil opcional que sigue al encabezado. Este campo de encabezado siguiente le indica al receptor cómo interpretar los datos que siguen al encabezado. Si el paquete contiene opciones, este campo contiene el tipo de opción de la siguiente opción. El campo "Encabezado siguiente" de la última opción apunta al protocolo de capa superior que se transporta en la carga útil del paquete .
El uso actual del campo de clase de tráfico IPv6 lo divide entre un punto de código de servicios diferenciados de 6 bits [34] y un campo de notificación de congestión explícita de 2 bits . [35]
Los encabezados de extensión contienen opciones que se utilizan para el tratamiento especial de un paquete en la red, por ejemplo, para enrutamiento, fragmentación y seguridad mediante el marco IPsec .
Sin opciones especiales, la carga útil debe ser inferior a 64 kB . Con una opción de carga útil Jumbo (en un encabezado de extensión de opciones Hop-By-Hop ), la carga útil debe ser inferior a 4 GB.
A diferencia de IPv4, los enrutadores nunca fragmentan un paquete. Se espera que los hosts utilicen Path MTU Discovery para que sus paquetes sean lo suficientemente pequeños como para llegar al destino sin necesidad de fragmentarlos. Consulte Fragmentación de paquetes de IPv6 .
Las direcciones IPv6 tienen 128 bits. El diseño del espacio de direcciones IPv6 implementa una filosofía de diseño diferente a la de IPv4, en la que se utilizaba la división en subredes para mejorar la eficiencia de la utilización del pequeño espacio de direcciones. En IPv6, el espacio de direcciones se considera lo suficientemente grande para el futuro previsible, y una subred de área local siempre utiliza 64 bits para la parte del host de la dirección, designada como el identificador de interfaz, mientras que los 64 bits más significativos se utilizan como prefijo de enrutamiento. [36] : 9 Si bien ha existido el mito de que las subredes IPv6 son imposibles de escanear, el RFC 7707 señala que los patrones resultantes de algunas técnicas y algoritmos de configuración de direcciones IPv6 permiten el escaneo de direcciones en muchos escenarios del mundo real.
Los 128 bits de una dirección IPv6 se representan en 8 grupos de 16 bits cada uno. Cada grupo se escribe como cuatro dígitos hexadecimales (a veces llamados hextetos [37] [38] o más formalmente hexadectetos [39] e informalmente quibble o quad-nibble [39] ) y los grupos se separan por dos puntos (:). Un ejemplo de esta representación es 2001:0db8:0000:0000:0000:ff00:0042:8329 .
Para mayor comodidad y claridad, la representación de una dirección IPv6 se puede abreviar con las siguientes reglas:
Un ejemplo de aplicación de estas reglas:
La dirección de bucle invertido se define como 0000:0000:0000:0000:0000:0000:0000:0001 [41] y se abrevia a ::1 utilizando ambas reglas.
Como una dirección IPv6 puede tener más de una representación, el IETF ha emitido un estándar propuesto para representarlas en texto . [40]
Debido a que las direcciones IPv6 contienen dos puntos, y las URL usan dos puntos para separar el host del número de puerto, una dirección IPv6 utilizada como parte del host de una URL debe estar entre corchetes, [42] por ejemplo http://[2001:db8:4006:812::200e] o http://[2001:db8:4006:812::200e]:8080/path/page.html.
Todas las interfaces de los hosts IPv6 requieren una dirección local de enlace , que tiene el prefijo fe80:: / 10. Este prefijo va seguido de 54 bits que se pueden utilizar para la creación de subredes, aunque normalmente se establecen en ceros, y un identificador de interfaz de 64 bits. El host puede calcular y asignar el identificador de interfaz por sí mismo sin la presencia o cooperación de un componente de red externo como un servidor DHCP, en un proceso denominado configuración automática de la dirección local de enlace . [ cita requerida ]
Los 64 bits inferiores de la dirección local de enlace (el sufijo) se derivaban originalmente de la dirección MAC de la tarjeta de interfaz de red subyacente. Como este método de asignación de direcciones causaba cambios de dirección no deseados cuando se reemplazaban tarjetas de red defectuosas, y como también adolecía de una serie de problemas de seguridad y privacidad, RFC 8064 reemplazó el método original basado en MAC por el método basado en hash especificado en RFC 7217. [ cita requerida ]
IPv6 utiliza un nuevo mecanismo para mapear direcciones IP a direcciones de capa de enlace (por ejemplo, direcciones MAC ), porque no soporta el método de direccionamiento de broadcast , en el cual se basa la funcionalidad del Protocolo de Resolución de Direcciones (ARP) en IPv4. IPv6 implementa el Protocolo de Descubrimiento de Vecinos (NDP, ND) en la capa de enlace , el cual se basa en ICMPv6 y transmisión de multicast . [5] : 210 Los hosts IPv6 verifican la unicidad de sus direcciones IPv6 en una red de área local (LAN) enviando un mensaje de solicitud de vecino preguntando por la dirección de capa de enlace de la dirección IP. Si cualquier otro host en la LAN está usando esa dirección, responde. [43]
Un host que activa una nueva interfaz IPv6 primero genera una dirección local de enlace única utilizando uno de varios mecanismos diseñados para generar una dirección única. Si se detecta una dirección no única, el host puede intentarlo nuevamente con una dirección recién generada. Una vez que se establece una dirección local de enlace única, el host IPv6 determina si la LAN está conectada en este enlace a cualquier interfaz de enrutador que admita IPv6. Lo hace enviando un mensaje de solicitud de enrutador ICMPv6 al grupo de multidifusión de todos los enrutadores [44] con su dirección local de enlace como origen. Si no hay respuesta después de una cantidad predeterminada de intentos, el host concluye que no hay enrutadores conectados. Si recibe una respuesta, conocida como anuncio de enrutador, de un enrutador, la respuesta incluye la información de configuración de red para permitir el establecimiento de una dirección globalmente única con un prefijo de red de unidifusión apropiado. [45] También hay dos bits de bandera que le indican al host si debe usar DHCP para obtener más información y direcciones:
El procedimiento de asignación de direcciones globales es similar a la construcción de direcciones locales. El prefijo se obtiene a partir de anuncios de enrutadores en la red. Múltiples anuncios de prefijos hacen que se configuren múltiples direcciones. [43]
La configuración automática de direcciones sin estado (SLAAC) requiere un bloque de direcciones / 64 . [36] A los registros de Internet locales se les asignan al menos 32 bloques / , que dividen entre redes subordinadas. [46] La recomendación inicial de septiembre de 2001 establecía la asignación de una subred / 48 a los sitios de consumidores finales. [47] En marzo de 2011 se perfeccionó esta recomendación: [48] El IETF "recomienda dar a los sitios domésticos significativamente más de un solo / 64 , pero tampoco recomienda que a cada sitio doméstico se le dé un / 48 ". Se consideran específicamente bloques de / 56 . Queda por ver si los ISP respetarán esta recomendación. Por ejemplo, durante las pruebas iniciales, a los clientes de Comcast se les dio una sola red / 64 . [49]
En el Sistema de nombres de dominio (DNS), los nombres de host se asignan a direcciones IPv6 mediante registros de recursos AAAA ("quad-A"). Para la resolución inversa , el IETF reservó el dominio ip6.arpa , donde el espacio de nombres se divide jerárquicamente por la representación hexadecimal de 1 dígito de las unidades nibble (4 bits) de la dirección IPv6. Este esquema se define en RFC 3596.
Cuando un host de doble pila consulta a un servidor DNS para resolver un nombre de dominio completo (FQDN), el cliente DNS del host envía dos solicitudes DNS, una consultando registros A y la otra consultando registros AAAA. El sistema operativo del host puede configurarse con una preferencia por las reglas de selección de direcciones RFC 6724. [50]
En las primeras implementaciones de DNS para IPv6 se utilizó un tipo de registro alternativo, diseñado para facilitar la renumeración de la red, los registros A6 para la búsqueda avanzada y una serie de otras innovaciones, como las etiquetas de cadena de bits y los registros DNAME . Se define en RFC 2874 y sus referencias (con un análisis más detallado de los pros y contras de ambos esquemas en RFC 3364), pero se ha dejado en desuso y se ha convertido en un método experimental ( RFC 3363).
No se prevé que IPv6 sustituya a IPv4 instantáneamente. Ambos protocolos seguirán funcionando simultáneamente durante algún tiempo. Por lo tanto, se necesitan mecanismos de transición a IPv6 para permitir que los hosts IPv6 alcancen los servicios IPv4 y que los hosts y redes IPv6 aislados se comuniquen entre sí a través de la infraestructura IPv4. [51]
Según Silvia Hagen , una implementación de doble pila de IPv4 e IPv6 en los dispositivos es la forma más sencilla de migrar a IPv6. [52] Muchos otros mecanismos de transición utilizan la tunelización para encapsular el tráfico IPv6 dentro de las redes IPv4 y viceversa. Esta es una solución imperfecta, que reduce la unidad máxima de transmisión (MTU) de un enlace y, por lo tanto, complica Path MTU Discovery y puede aumentar la latencia . [53] [54]
Las implementaciones de IP de doble pila proporcionan pilas de protocolos IPv4 e IPv6 completas en el sistema operativo de una computadora o dispositivo de red sobre la implementación de capa física común , como Ethernet . Esto permite que los hosts de doble pila participen en redes IPv6 e IPv4 simultáneamente. [55]
Un dispositivo con implementación de doble pila en el sistema operativo tiene una dirección IPv4 e IPv6, y puede comunicarse con otros nodos en la LAN o Internet utilizando IPv4 o IPv6. Ambos protocolos IP utilizan el protocolo DNS para resolver nombres de dominio completamente calificados y direcciones IP, pero la doble pila requiere que el servidor DNS que realiza la resolución pueda resolver ambos tipos de direcciones. Un servidor DNS de doble pila de este tipo contiene direcciones IPv4 en los registros A y direcciones IPv6 en los registros AAAA. Según el destino que se va a resolver, un servidor de nombres DNS puede devolver una dirección IP IPv4 o IPv6, o ambas. Es necesario configurar un mecanismo de selección de dirección predeterminado, o protocolo preferido, en los hosts o en el servidor DNS. El IETF ha publicado Happy Eyeballs para ayudar a las aplicaciones de doble pila, de modo que puedan conectarse utilizando tanto IPv4 como IPv6, pero prefieran una conexión IPv6 si está disponible. Sin embargo, la doble pila también debe implementarse en todos los enrutadores entre el host y el servicio para el que el servidor DNS ha devuelto una dirección IPv6. Los clientes de doble pila deben configurarse para preferir IPv6 solo si la red puede reenviar paquetes IPv6 utilizando las versiones IPv6 de los protocolos de enrutamiento . Cuando se implementan protocolos de red de doble pila, la capa de aplicación se puede migrar a IPv6. [56]
Si bien los principales proveedores de sistemas operativos y dispositivos de red admiten la doble pila , el hardware y los servidores de red tradicionales no admiten IPv6.
Los proveedores de servicios de Internet (ISP) están proporcionando cada vez más a sus clientes comerciales y privados direcciones IPv6 unicast globales públicas. Sin embargo, si IPv4 todavía se utiliza en la red de área local (LAN) y el ISP solo puede proporcionar una dirección IPv6 pública, las direcciones IPv4 de la LAN se traducen a la dirección IPv6 pública utilizando NAT64 , un mecanismo de traducción de direcciones de red (NAT). Algunos ISP no pueden proporcionar a sus clientes direcciones IPv4 e IPv6 públicas, lo que les permite soportar redes de doble pila, porque algunos ISP han agotado su conjunto de direcciones IPv4 enrutables globalmente. Mientras tanto, los clientes de los ISP siguen intentando llegar a servidores web IPv4 y otros destinos. [57]
Un porcentaje significativo de los ISP en todas las zonas de registro regional de Internet (RIR) han obtenido espacio de direcciones IPv6. Esto incluye a muchos de los principales ISP y operadores de redes móviles del mundo , como Verizon Wireless , StarHub Cable , Chubu Telecommunications , Kabel Deutschland , Swisscom , T-Mobile , Internode y Telefónica . [58]
Mientras que algunos ISP todavía asignan a sus clientes solo direcciones IPv4, muchos ISP asignan a sus clientes solo IPv6 o IPv4 e IPv6 de doble pila. Los ISP informan que la proporción de tráfico IPv6 de los clientes a través de su red oscila entre el 20% y el 40%, pero a mediados de 2017 el tráfico IPv6 todavía representaba solo una fracción del tráfico total en varios puntos de intercambio de Internet (IXP) grandes. AMS-IX informó que era del 2% y SeattleIX informó del 7%. Una encuesta de 2017 descubrió que muchos clientes de DSL que eran atendidos por un ISP de doble pila no solicitaban a los servidores DNS que resolvieran nombres de dominio completamente calificados en direcciones IPv6. La encuesta también descubrió que la mayoría del tráfico de los recursos de servidores web preparados para IPv6 todavía se solicitaba y servía a través de IPv4, principalmente debido a los clientes de ISP que no usaban la función de doble pila proporcionada por su ISP y, en menor medida, debido a los clientes de ISP que solo admitían IPv4. [59]
La base técnica para la tunelización, o encapsulación de paquetes IPv6 en paquetes IPv4, se describe en el RFC 4213. Cuando la red troncal de Internet era solo IPv4, uno de los protocolos de tunelización utilizados con frecuencia era 6to4 . [60] La tunelización Teredo también se utilizó con frecuencia para integrar redes LAN IPv6 con la red troncal de Internet IPv4. Teredo se describe en el RFC 4380 y permite que las redes de área local IPv6 realicen un túnel sobre redes IPv4, encapsulando paquetes IPv6 dentro de UDP. El relé Teredo es un enrutador IPv6 que media entre un servidor Teredo y la red IPv6 nativa. Se esperaba que 6to4 y Teredo se implementaran ampliamente hasta que las redes de ISP cambiaran a IPv6 nativo, pero para 2014 Google Statistics mostró que el uso de ambos mecanismos había disminuido a casi 0. [61]
Las implementaciones híbridas de doble pila IPv6/IPv4 reconocen una clase especial de direcciones: las direcciones IPv6 mapeadas a IPv4. [62] : §2.2.3 [36] Estas direcciones normalmente se escriben con un prefijo de 96 bits en el formato estándar de IPv6, y los 32 bits restantes se escriben en la notación decimal con puntos habitual de IPv4.
Las direcciones de este grupo constan de un prefijo de 80 bits de ceros, los siguientes 16 bits son unos y los 32 bits restantes, los menos significativos, contienen la dirección IPv4. Por ejemplo, ::ffff:192.0.2.128 representa la dirección IPv4 192.0.2.128 . Un formato anterior, llamado "dirección IPv6 compatible con IPv4", era ::192.0.2.128 ; sin embargo, este método está en desuso. [36]
Debido a las diferencias internas significativas entre las pilas de protocolos IPv4 e IPv6, algunas de las funciones de nivel inferior disponibles para los programadores en la pila IPv6 no funcionan de la misma manera cuando se utilizan con direcciones mapeadas a IPv4. Algunas pilas IPv6 comunes no implementan la característica de dirección mapeada a IPv4, ya sea porque las pilas IPv6 e IPv4 son implementaciones separadas (por ejemplo, Microsoft Windows 2000, XP y Server 2003), o por cuestiones de seguridad ( OpenBSD ). [63] En estos sistemas operativos, un programa debe abrir un socket separado para cada protocolo IP que utiliza. En algunos sistemas, por ejemplo, el kernel de Linux , NetBSD y FreeBSD , esta característica está controlada por la opción de socket IPV6_V6ONLY. [64] : 22
El prefijo de dirección 64:ff9b::/96 es una clase de direcciones IPv6 integradas en IPv4 para su uso en métodos de transición NAT64 . [65] Por ejemplo, 64:ff9b::192.0.2.128 representa la dirección IPv4 192.0.2.128 .
El uso de IPv6 puede tener varias implicaciones en términos de seguridad. Algunas de ellas pueden estar relacionadas con los propios protocolos IPv6, mientras que otras pueden estar relacionadas con fallas de implementación. [66] [67]
La adición de nodos que tengan IPv6 habilitado de manera predeterminada por el fabricante del software puede dar como resultado la creación involuntaria de redes de sombra , lo que hace que el tráfico IPv6 fluya hacia redes que solo tienen implementada la gestión de seguridad IPv4. Esto también puede ocurrir con las actualizaciones del sistema operativo, cuando el sistema operativo más nuevo habilita IPv6 de manera predeterminada, mientras que el anterior no lo hacía. No actualizar la infraestructura de seguridad para adaptarse a IPv6 puede provocar que el tráfico IPv6 la omita. [68] Las redes de sombra se han producido en redes comerciales en las que las empresas están reemplazando sistemas Windows XP que no tienen una pila IPv6 habilitada de manera predeterminada, con sistemas Windows 7 , que sí la tienen. [69] Por lo tanto, algunos implementadores de la pila IPv6 han recomendado deshabilitar las direcciones mapeadas IPv4 y, en su lugar, utilizar una red de doble pila donde sea necesario admitir tanto IPv4 como IPv6. [70]
Las investigaciones han demostrado que el uso de la fragmentación puede aprovecharse para evadir los controles de seguridad de la red, de forma similar a IPv4. Como resultado, la RFC 7112 exige que el primer fragmento de un paquete IPv6 contenga toda la cadena de encabezados IPv6, de modo que se prohíben algunos casos de fragmentación muy patológicos. Además, como resultado de las investigaciones sobre la evasión de RA-Guard en la RFC 7113, la RFC 6980 ha desaprobado el uso de la fragmentación con Neighbor Discovery y ha desalentado el uso de la fragmentación con Secure Neighbor Discovery (SEND).
Debido al crecimiento global anticipado de Internet , el Grupo de Trabajo de Ingeniería de Internet (IETF) a principios de los años 1990 inició un esfuerzo para desarrollar un protocolo IP de próxima generación. [5] : 209 A principios de 1992, aparecieron varias propuestas para un sistema de direccionamiento de Internet ampliado y para fines de 1992 el IETF anunció una convocatoria de libros blancos. [71] En septiembre de 1993, el IETF creó un área temporal ad hoc de IP de próxima generación (IPng) para tratar específicamente estos temas. La nueva área estaba dirigida por Allison Mankin y Scott Bradner , y tenía una dirección con 15 ingenieros de diversos orígenes para establecer la dirección y la revisión preliminar de documentos: [7] [72] Los miembros del grupo de trabajo eran J. Allard (Microsoft), Steve Bellovin (AT&T), Jim Bound (Digital Equipment Corporation), Ross Callon (Wellfleet), Brian Carpenter (CERN), Dave Clark (MIT), John Curran (NEARNET), Steve Deering (Xerox), Dino Farinacci (Cisco), Paul Francis (NTT), Eric Fleischmann (Boeing), Mark Knopper (Ameritech), Greg Minshall (Novell), Rob Ullmann (Lotus) y Lixia Zhang (Xerox). [73]
El Grupo de Trabajo de Ingeniería de Internet adoptó el modelo IPng el 25 de julio de 1994, con la formación de varios grupos de trabajo sobre IPng. [7] En 1996, se publicó una serie de RFC que definían la versión 6 del Protocolo de Internet (IPv6), comenzando con la RFC 1883. (La versión 5 fue utilizada por el Protocolo de transmisión de Internet experimental ).
El primer RFC que estandarizó IPv6 fue el RFC 1883 en 1995, [74] que quedó obsoleto por el RFC 2460 en 1998. [5] : 209 En julio de 2017, este RFC fue reemplazado por el RFC 8200, que elevó IPv6 a "Estándar de Internet" (el nivel de madurez más alto para los protocolos IETF). [3]
La introducción en 1993 del enrutamiento entre dominios sin clases (CIDR) en el enrutamiento y la asignación de direcciones IP para Internet, y el uso extensivo de la traducción de direcciones de red (NAT), retrasaron el agotamiento de las direcciones IPv4 para permitir la implementación de IPv6, que comenzó a mediados de la década de 2000.
Las universidades estuvieron entre las primeras en adoptar IPv6. Virginia Tech implementó IPv6 en una ubicación de prueba en 2004 y luego expandió la implementación de IPv6 a toda la red del campus . Para 2016, el 82% del tráfico en su red usaba IPv6. Imperial College London comenzó la implementación experimental de IPv6 en 2003 y para 2016 el tráfico de IPv6 en sus redes promediaba entre 20% y 40%. Una parte significativa de este tráfico de IPv6 se generó a través de su colaboración en física de alta energía con CERN , que depende completamente de IPv6. [75]
El Sistema de nombres de dominio (DNS) ha admitido IPv6 desde 2008. Ese mismo año, IPv6 se utilizó por primera vez en un importante evento mundial durante los Juegos Olímpicos de Verano de Beijing 2008. [ 76] [77]
En 2011, todos los principales sistemas operativos en uso en computadoras personales y sistemas de servidores tenían implementaciones IPv6 de calidad de producción. Los sistemas de telefonía celular presentaron un gran campo de implementación para dispositivos de Protocolo de Internet a medida que el servicio de telefonía móvil hizo la transición de tecnologías 3G a 4G , en las que la voz se proporciona como un servicio de voz sobre IP (VoIP) que aprovecharía las mejoras de IPv6. En 2009, el operador celular estadounidense Verizon publicó especificaciones técnicas para dispositivos que operarían en sus redes de "próxima generación". [78] La especificación exigía el funcionamiento de IPv6 de acuerdo con las Especificaciones de la versión 8 del 3GPP (marzo de 2009) y desaprobaba IPv4 como una capacidad opcional. [78]
El despliegue de IPv6 en la red troncal de Internet continuó. En 2018, solo el 25,3% de los aproximadamente 54.000 sistemas autónomos anunciaron prefijos IPv4 e IPv6 en la base de datos de enrutamiento global del Protocolo de Puerta de Enlace Fronteriza (BGP). Otras 243 redes anunciaron solo un prefijo IPv6. Las redes de tránsito de la red troncal de Internet que ofrecen soporte IPv6 existían en todos los países del mundo, excepto en partes de África , Oriente Medio y China. [79] : 6 A mediados de 2018, algunos de los principales ISP de banda ancha europeos habían implementado IPv6 para la mayoría de sus clientes. Sky UK proporcionó IPv6 a más del 86% de sus clientes, Deutsche Telekom tuvo un 56% de implementación de IPv6, XS4ALL en los Países Bajos tuvo un 73% de implementación y en Bélgica los ISP de banda ancha VOO y Telenet tuvieron un 73% y un 63% de implementación de IPv6 respectivamente. [79] : 7 En Estados Unidos, el proveedor de servicios de Internet de banda ancha Xfinity tenía una implementación de IPv6 de aproximadamente el 66 %. En 2018, Xfinity informó de un estimado de 36,1 millones de usuarios de IPv6, mientras que AT&T informó de 22,3 millones de usuarios de IPv6. [79] : 7–8
Hay una disputa de intercambio de datos entre Hurricane Electric y Cogent Communications sobre IPv6, y los dos proveedores de red se niegan a hacerlo. [80]