Qué es el IPv6?
IPv6 (Internet Protocol Version
6) o IPng (Next Generation Internet Protocol) es la nueva versión del
protocolo IP (Internet Protocol). Ha sido diseñado por el IETF (Internet
Engineering Task Force) para reemplazar en forma gradual a la versión actual,
el IPv4.
En esta versión se mantuvieron
las funciones del IPv4 que son utilizadas, las que no son utilizadas o se usan
con poca frecuencia, se quitaron o se hicieron opcionales, agregándose nuevas
características.
¿Porqué surge?
El motivo básico para crear un
nuevo protocolo fue la falta de direcciones. IPv4 tiene un espacio de
direcciones de 32 bits, en cambio IPv6 ofrece un espacio de 128 bits. El
reducido espacio de direcciones de IPv4, junto al hecho de falta de coordinación
para su asignación durante la década de los 80, sin ningún tipo de
optimización, dejando incluso espacios de direcciones discontinuos, generan en
la actualidad, dificultades no previstas en aquel momento.
Otros de los problemas de IPv4 es
la gran dimensión de las tablas de ruteo en el backbone de Internet, que lo
hace ineficaz y perjudica los tiempos de respuesta.
Debido a la multitud de nuevas
aplicaciones en las que IPv4 es utilizado, ha sido necesario agregar nuevas
funcionalidades al protocolo básico, aspectos que no fueron contemplados en el
análisis inicial de IPv4, lo que genera complicaciones en su escalabilidad para
nuevos requerimientos y en el uso simultáneo de dos o más de dichas
funcionalidades. Entre las mas conocidas se pueden mencionar medidas para
permitir la Calidad de Servicio (QoS), Seguridad (IPsec) y movilidad.
Características principales
- Mayor espacio de direcciones. El tamaño de las direcciones IP cambia de 32 bits a 128 bits, para soportar: mas niveles de jerarquías de direccionamiento y mas nodos direccionables.
- Simplificación del formato del Header. Algunos campos del header IPv4 se quitan o se hacen opcionales
- Paquetes IP eficientes y extensibles, sin que haya fragmentación en los routers, alineados a 64 bits y con una cabecera de longitud fija, mas simple, que agiliza su procesado por parte del router.
- Posibilidad de paquetes con carga útil (datos) de mas de 65.355 bytes.
- Seguridad en el núcleo del protocolo (IPsec). El soporte de IPsec es un requerimiento del protocolo IPv6.
- Capacidad de etiquetas de flujo. Puede ser usada por un nodo origen para etiquetar paquetes pertenecientes a un flujo (flow) de tráfico particular, que requieren manejo especial por los routers IPv6, tal como calidad de servicio no por defecto o servicios de tiempo real. Por ejemplo video conferencia.
- Autoconfiguración: la autoconfiguración de direcciones es mas simple. Especialmente en direcciones Aggregatable Global Unicast, los 64 bits superiores son seteados por un mensaje desde el router (Router Advertisement) y los 64 bits mas bajos son seteados con la dirección MAC (en formato EUI-64). En este caso, el largo del prefijo de la subred es 64, por lo que no hay que preocuparse mas por la máscara de red. Además el largo del prefijo no depende en el número de los hosts por lo tanto la asignación es mas simple.
- Renumeración y "multihoming": facilitando el cambio de proveedor de servicios.
- Características de movilidad, la posibilidad de que un nodo mantenga la misma dirección IP, a pesar de su movilidad.
- Ruteo más eficiente en el backbone de la red, debido a la jerarquía de direccionamiento basada en aggregation.
- Calidad de servicio (QoS) y clase de servicio (CoS).
- Capacidades de autenticación y privacidad
¿Qué tan grande es el espacio de direcciones?
Habrían 2 ^ 128 direcciones IP
diferentes, significa que si la población mundial fuera de 10 billones habría
3.4 * 10 ^ 27 direcciones por persona. O visto de otra forma habría un promedio
de 2.2 * 10 ^ 20 direcciones por centímetro cuadrado. Siendo así muy pequeña la
posibilidad de que se agoten las nuevas direcciones.
Direccionamiento
Las direcciones son de 128 bits e
identifican interfaces individuales o conjuntos de interfaces. Al igual que en
IPv4 en los nodos se asignan a interfaces.
Se clasifican en tres tipos:
- Unicast identifican a una sola
interfaz. Un paquete enviado a una dirección unicast es entregado
sólo a la interfaz identificada con dicha dirección.
[RFC 2373] [RFC 2374]
- Anycast identifican a un conjunto de interfaces. Un paquete enviado a una dirección anycast, será entregado a alguna de las interfaces identificadas con la dirección del conjunto al cual pertenece esa dirección anycast. [RFC 2526]
- Multicast identifican un grupo de interfaces. Cuando un paquete es enviado a una dirección multicast es entregado a todos las interfaces del grupo identificadas con esa dirección.
En el IPv6 no existen direcciones
broadcast, su funcionalidad ha sido mejorada por las direcciones
multicast. [RFC 2375]
Representación de las direcciones
Existen tres formas de
representar las direcciones IPv6 como strings de texto.
- x:x:x:x:x:x:x:x donde cada x es el valor hexadecimal de 16 bits, de cada uno de los 8 campos que definen la dirección. No es necesario escribir los ceros a la izquierda de cada campo, pero al menos debe existir un número en cada campo.
Ejemplos:
FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
1080:0:0:0:8:800:200C:417A
1080:0:0:0:8:800:200C:417A
- Como será común utilizar esquemas de direccionamiento con largas cadenas de bits en cero, existe la posibilidad de usar sintacticamente :: para representarlos.El uso de :: indica uno o mas grupos de 16 bits de ceros. Dicho simbolo podrá aparecer una sola vez en cada dirección.
Por ejemplo:
1080:0:0:0:8:800:200C:417A unicast address
FF01:0:0:0:0:0:0:101 multicast address
0:0:0:0:0:0:0:1 loopback address
0:0:0:0:0:0:0:0 unspecified addresses
FF01:0:0:0:0:0:0:101 multicast address
0:0:0:0:0:0:0:1 loopback address
0:0:0:0:0:0:0:0 unspecified addresses
Podrán ser representadas como:
1080::8:800:200C:417A
unicast address
FF01::101 multicast address
::1 loopback address
:: unspecified addresses
FF01::101 multicast address
::1 loopback address
:: unspecified addresses
- Para escenarios con nodos IPv4 e IPv6 es posible utilizar la siguiente sintaxis:
x:x:x:x:x:x:d.d.d.d, donde x representan valores hexadecimales de las seis partes más significativas (de 16 bits cada una) que componen la dirección y las d, son valores decimales de los 4 partes menos significativas (de 8 bits cada una), de la representación estándar del formato de direcciones IPv4.
Ejemplos:
0:0:0:0:0:0:13.1.68.3
0:0:0:0:0:FFFF:129.144.52.38
o en la forma comprimida
::13.1.68.3
::FFFF:129.144.52.38
Los prefijos de identificadores
de subredes, routers y rangos de direcciones IPv6 son expresados de la misma
forma que en la notación CIDR utilizada en IPv4.
Un prefijo de dirección IPv6 se representa con la siguiente notación:
Un prefijo de dirección IPv6 se representa con la siguiente notación:
direccion-ipv6/longitud-prefijo,
donde
direccion-ipv6: es
una dirección IPv6 en cualquiera de las notaciones mencionadas anteriormente.
longitud-prefijo:
es un valor decimal que especifica cuantos de los bits más significativos,
representan el prefijo de la dirección.
Direcciones Global Unicast
Formato de las direcciones global unicast
Prefijo de ruteo global:
es un prefijo asignado a un sitio, generalmente está estructurado
jerárquicamente por los RIRs e ISPs.
Identificador de Subred: es el identificador de una subred dentro de un sitio. Está diseñado para que los administradores de los sitios lo estructuren jerárquicamente
Identificador de Interfaz: es el identificador de una interfaz. En todas las direcciones unicast, excepto las que comienzan con el valor binario 000, el identificador de interfaz debe ser de 64 bits y estar construído en el formato Modified EUI-64.
Identificador de Subred: es el identificador de una subred dentro de un sitio. Está diseñado para que los administradores de los sitios lo estructuren jerárquicamente
Identificador de Interfaz: es el identificador de una interfaz. En todas las direcciones unicast, excepto las que comienzan con el valor binario 000, el identificador de interfaz debe ser de 64 bits y estar construído en el formato Modified EUI-64.
El formato para este caso es el siguiente:
El siguiente es un ejemplo del
formato de direcciones global unicast bajo el prefijo 2000::/3 administrado por
el IANA
DNS
El almacenamiento actual de
direcciones de Internet en el Domain Name System (DNS) de IPv4 no se puede
extender fácilmente para que soporte direcciones IPv6 de 128 bits, ya que las
aplicaciones asumen que a las consultas de direcciones se retornan solamente
direcciones IPv4 de 32 bits.
Para poder almacenar las direcciones IPv6 se definieron las siguientes extensiones (ver RFC 3596)
Para poder almacenar las direcciones IPv6 se definieron las siguientes extensiones (ver RFC 3596)
- un nuevo tipo de registro, el registro AAAA. Se usa para almacenar direcciones IPv6, porque las extensiones están diseñadas para ser compatibles con implementaciones de DNS existentes;
- un nuevo dominio para soportar búsquedas basadas en direcciones IPv6. Este dominio es IP6.ARPA;
- Redefinición de las consultas existentes, que localizan direcciones IPv4, para que puedan también procesar direcciones IPv6.
Los cambios son diseñados para
ser compatibles con el software existente. Se mantiene el soporte de
direcciones IPv4.
Mecanismos de transición básicos
Los mecanismos de transición son
un conjunto de mecanismos y de protocolos implementados en hosts y routers,
junto con algunas guías operativas de direccionamiento designadas para hacer la
transición de Internet al IPv6 con la menor interrupción posible.
Existen dos mecanismos básicos :
Existen dos mecanismos básicos :
- Dual Stack: provee soporte completo para IPv4 e IPv6 en host y routers.
- Tunneling: encapsula paquetes IPv6 dentro de headers IPv4 siendo transportados a través de infraestructura de ruteo IPv4.
Dichos mecanismos están diseñados
para ser usados por hosts y routers IPv6 que necesitan interoperar con hosts
IPv4 y utilizar infraestructuras de ruteo IPv4. Se espera que muchos nodos
necesitarán compatibilidad por mucho tiempo y quizás indefinidamente. No
obstante, IPv6 también puede ser usado en ambientes donde no se requiere
interoperabilidad con IPv4. Nodos diseñados para esos ambientes no necesitan
usar ni implementar estos mecanismos.
Dual Stack
La forma mas directa para los nodos
IPv6 de ser compatibles con nodos IPv4-only es proveyendo una implementación
completa de IPv4. Los nodos IPv6 que proveen una implementación completa de
IPv4 (además de su implementación de IPv6) son llamados nodos “IPv6/IPv4”.
Estos nodos tienen la habilidad de enviar y recibir paquetes IPv6 e IPv4,
pudiendo así interoperar directamente con nodos IPv4 usando paquetes IPv4, y
también operar con nodos IPv6 usando paquetes IPv6.
Tunneling
Los nodos o redes IPv6 que se
encuentran separadas por infraestructuras IPv4 pueden construir un enlace
virtual, configurando un túnel. Paquetes IPv6 que van hacia un dominio IPv6
serán encapsulados dentro de paquetes IPv4. Los extremos del túnel son dos
direcciones IPv4 y dos IPv6. Se pueden utilizar dos tipos de túneles:
configurados y automáticos. Los túneles configurados son creados mediante
configuración manual. Un ejemplo de redes conteniendo túneles configurados es
el 6bone. Los túneles automáticos no necesitan configuración manual. Los
extremos se determinan automáticamente determinados usando direcciones IPv6
IPv4-compatible.







