Introduccion a IPv6

Para este post se asume que ya se está muy familiarizado con el direccionamiento y el funcionamiento de IPv4. IPv6 es una extensión del direccionamiento IP con varias funciones avanzadas:

  • Mayor espacio de direcciones.
  • Encabezado más simple para una mayor eficiencia del router.
  • No más transmisiones.
  • Configuración automática sin estado.
  • Soporte integrado para IP móvil.
  • Soporte integrado para seguridad IPsec.
  • Funciones de transición enriquecidas.
  • Renumeración sencilla de direcciones IP.
  • Soporte para múltiples direcciones por interfaz.
  • Los routers crean direcciones de enlace local para que las utilicen los protocolos de puerta de enlace interior (IGP).
  • Al igual que con IPv4, las direcciones se pueden obtener de un proveedor de servicios de Internet (ISP) o pueden ser independientes del proveedor.

La adopción principal de IPv6 está impulsada por la necesidad de más direcciones. Dado el crecimiento del uso de Internet y la aparición de grandes grupos de usuarios de Internet en todo el mundo, este es un requisito importante. Otra razón para utilizar IPv6 es el crecimiento del tamaño de la tabla de enrutamiento de Internet actual. Las direcciones IPv4 no están lo suficientemente resumidas para mantener el tamaño bajo, lo que aumenta la carga en los routers de Internet. Además, aunque el uso de la traducción de direcciones de red (NAT) ha pospuesto la necesidad de IPv6, rompe el modelo de red de extremo a extremo de TCP/IP.

IPv6 no está habilitado de forma predeterminada en los routers Cisco. Para habilitar el enrutamiento IPv6, el comando es ipv6 unicast-routing en el modo de configuración global.

Direccionamiento IPv6

Las direcciones IPv4 tienen 32 bits de longitud y están escritas en decimal con puntos, mientras que las direcciones IPv6 tienen 128 bits y están escritas en hexadecimal. Las direcciones IPv6 se escriben en grupos de cuatro números, separados por dos puntos. Cada número representa 4 bits y por tanto tiene un valor de 0–F. Las direcciones normalmente se dividen en una parte de red de 64 bits y una parte de host de 64 bits. Una dirección IPv6 podría parecerse a 2001:db80:aabb:1111:2222:3333:4444:ffff/64. No existe un equivalente a la máscara de subred decimal con puntos de IPv4: la longitud del prefijo (parte de red de la dirección) se escribe en notación CIDR. Tener direcciones de host que terminen en 0 o F es  válido.

Los primeros 48 bits de la parte de la red se consideran espacio de direcciones global. Estos bits constan de los siguientes elementos:

  • Los primeros tres bits (/3) de una dirección de unicast son siempre 001.
  • Los siguientes 13 bits (/16) identifican el agregador de nivel superior (TLA), el ISP ascendente o la autoridad de dirección.
  • Los 24 bits siguientes (/40) identifican el agregador de siguiente nivel, un ISP regional o una autoridad de dirección.

Los siguientes 16 bits están disponibles para crear subredes dentro de la empresa. La parte de la dirección de la interfaz del host son los últimos 64 bits. Debido a que IPv6 no utiliza broadcast y separa la parte de la dirección de la interfaz de la parte de la red, las direcciones de interfaz compuestas exclusivamente por ceros y unos son validos. La imagen  muestra los componentes de la dirección.

Simplificando una dirección IPv6

Hay dos formas de acortar la representación de una dirección IPv6. Tome la dirección de ejemplo 2001:0000:0001:0002:0000:0000:0000:ABCD.

  • Se pueden omitir los ceros iniciales ( los ceros más a la izquierda de cada hexacteto), lo que reduce la dirección anterior a 2001:0:1:2:0:0:0:ABCD.
  • Los ceros secuenciales (a partir de dos  hexactetos con puros ceros) se pueden mostrar como dos puntos dobles. Esto se permite sólo una vez por dirección. Esto simplifica aún más la dirección antes mencionada, a 2001:0:1:2::ABCD.

Asegúrese de poder distinguir entre direcciones IPv6 correctas e incorrectas. Por ejemplo, la dirección 2001::1:2::ABCD es incorrecta porque utiliza dos puntos dobles dos veces.

Direcciones especiales

IPv6 no admite Broadcast , pero las reemplaza con multicast. IPv6 también utiliza anycast, lo que implica utilizar la misma dirección en varios dispositivos. Anycast se utiliza para implementar redundancia y se ha adaptado a IPv4.

Cada sistema IPv6 debe reconocer las siguientes direcciones:

  • Sus direcciones de unicast.
  • Dirección local (Link local) de enlace (comienza con FE80/10).
  • Loopback (::1/128).
  • Multicast de todos los nodos (FF00::1).
  • Multicast Site-Local (FF02::2).
  • Multicast de nodos solicitados (FF02::1:FF00/104).
  • Ruta por default (::/0).
  • Los routers deben admitir anycast de router de subred (todos ceros EUI-64).
  • Los routers deben admitir Multicast local para todos los routers (FF01::2), enlace local (FF02::2) y sitio local (FF05:2).
  • Los routers deben admitir grupos de Multicast de protocolos de enrutamiento.

Además, algunos sistemas también utilizan las siguientes direcciones:

  • Dirección compatible con IPv4 (::/96 | 32 bits, dirección IPv4)
  • Segunda dirección de unicast compartida con otro sistema (anycast)
  • Grupos de multicast adicionales

Direccionamiento de host IPv6

IPv6 utiliza un tipo especial de dirección llamada dirección de enlace local (Link local). En IPv6, esto se compone del prefijo de red FE80:: y la dirección MAC del host o interfaz. Esta dirección es válida sólo en el segmento de la red local. Para asegurarse de que la dirección no esté en uso, un host envía un mensaje de solicitud de vecino a esa dirección para asegurarse de que ningún otro dispositivo responda.

Incluso si asigna una dirección global enrutable a la interfaz, todavía tiene su dirección de enlace local. Los protocolos de enrutamiento IGP utilizan la dirección de enlace local para formar relaciones de vecinos. La dirección de enlace local también es la dirección del siguiente salto que los IGP instalan en la tabla de enrutamiento. Puede ver un ejemplo de una dirección de enlace local más adelante en el Ejemplo.

Un host IPv6 puede obtener una dirección IP enrutable mediante asignación manual; designar físicamente la parte de red de la dirección solo mediante la configuración automática de direcciones sin estado (SLAAC) o mediante DHCPv6.

Para hacer ping a cualquier dirección IPv6, incluidas las direcciones de enlace local, utilice el comando ping [ipv6] dirección-destino [interfaz-salida de origen]. Tenga en cuenta que la interfaz de origen es necesaria al hacer ping a una dirección de enlace local.

Protocolo de descubrimiento de vecinos

El protocolo de descubrimiento de vecinos utiliza ICMPv6 y ayuda en el direccionamiento IPv6 de varias maneras:

  • Descubrimiento de direcciones duplicadas (DAD): el host utiliza la solicitud de vecino (NS) para enviar un mensaje a su propia dirección. Si no hay respuesta significa que la dirección es única. Esto se utiliza cuando un host crea su dirección de enlace local.
  • Descubrimiento de vecinos: de manera similar a ARP, el host descubre la dirección local de enlace de los vecinos mediante un mensaje NS. Este es el tipo ICMP 135. Los vecinos responden con un mensaje ICMP tipo 136.
  • Descubrimiento de routers: los routers IPv6 envían periódicamente anuncios de router (RA) que enumeran el prefijo de red. Cuando un host se conecta, envía inmediatamente un mensaje de solicitud de router (RS) solicitando información de prefijo en lugar de esperar la RA. Esto se envía a la dirección de multidifusión de todos los routers.

Asignación manual de dirección IP

Para asignar manualmente una dirección IPv6 a una interfaz de router, use el comando ipv6 address [dirección-ipv6/longitud-prefijo]. El ejemplo muestra dos interfaces de un router configuradas con direcciones IPv6. En la primera dirección, tenga en cuenta que los ceros iniciales se omiten en dos de los hexaoctetos. En la segunda dirección, tenga en cuenta el uso de dos puntos dobles (::).

Router(config)# ipv6 unicast-routing
!
Router(config)# interface gigabitethernet0/0
Router(config-if)# ipv6 address 2001:db8:aabb:1:2222:3333:4444:f fff/64
!
Router(config)# interface gigabitethernet0/1
Router(config-if)# ipv6 address 2001:db8:aabb:2::1 /64

Asignación de red manual

Aunque asignar estáticamente direcciones IP a las interfaces del router es una mejor práctica, los routers pueden crear su propia dirección IPv6 cuando conocen el prefijo de red. Suponiendo que el sistema final tiene una dirección MAC de 48 bits, el router o host invierte el bit global/local (el séptimo bit) e inserta 0xFFEE en el medio de la dirección MAC. El número de 64 bits resultante se denomina dirección EUI-64. El prefijo y la dirección EUI-64 se concatenan para formar la dirección IPv6 del host. El comando es dirección ipv6 prefijo-ipv6::/longitud-prefijo eui-64.

El  ejemplo muestra este comando y la dirección de link local y global unicast. Tenga en cuenta la dirección MAC de la interfaz y cómo se relaciona con las direcciones IPv6.

Router(config)# interface ethernet0/0
Router(config-if)# ipv6 address 2001:db8:1234:aabb::/64 eui-64
!
Router# show int e0/0
Ethernet0/0 is up, line protocol is up
Hardware is AMDP2, address is 001d.a188.33c1 (bia 001d.a188.33c1)
<output omitted>
!
Router# show ipv6 int e0/0
Ethernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::21D:A1FF:FE88:33C1 No Virtual link-local address(es):
Global unicast address(es):
2001:DB8:1234:AABB:21D:A1FF:FE88:33C1,subnet is 2001:DB8:1234:AABB::/64[EUI]
Joined group address(es):
FF02::1 FF02::2
FF02::1:FF00:1A00
<output omitted>

Configuración automática de direcciones sin estado

Un gran beneficio de IPv6 es la capacidad de un host de adquirir automáticamente una dirección IP sin DHCP, lo que se denomina configuración automática de direcciones sin estado o SLAAC. Para habilitar la configuración automática sin estado, utilice el comando de interfaz ipv6 address autoconfig. Adquirir una dirección implica los siguientes pasos:

  • Paso 1. El host crea una dirección link local.
  • Paso 2. Envía un mensaje NS a su dirección de link local fuera de la interfaz.
  • Paso 3. Si no hay respuesta, DAD declara la dirección única.
  • Paso 4. Si el host no recibe un RA, envía un RS.
  • Paso 5. Un router en la subred envía un RA, enumerando su prefijo de interfaz.
  • Paso 6. El host usa ese prefijo y la dirección MAC de la interfaz para crear su dirección IPv6.

Utilice el comando show ipv6 interface para verificar su configuración. El ejemplo  muestra este comando y la dirección IPv6 resultante.

Router(config)# int e0/0
Router(config-if)# ipv6 address autoconfig
!
Router# show ipv6 int e0/0
Ethernet0/0 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::21D:A1FF:FE6C:D238 No Virtual link-local address(es):
Global unicast address(es):
2001:DB8::21D:A1FF:FE6C:D238
, subnet is 2001:DB8::/64 [EUI/CAL/ PRE]
valid lifetime 2591828 preferred lifetime 604628
<output omitted>

Asegurar el PND

NDP es una parte esencial de IPv6, ya que habilita SLAAC y permite aprender las direcciones MAC y redirigir los hosts a mejores rutas. Pero debido a que comienza a funcionar cuando el enrutamiento de unidifusión IPv6 está habilitado, puede exponer al enrutador a problemas como ataques de intermediario y bloqueo del tráfico.

Si no hay necesidad de mensajes de publicidad del enrutador en un enlace, deshabilítelos con el comando ipv6 nd suppress-ra.

Otra opción es utilizar Secure Neighbor Discovery (SeND). SeND es una extensión de NDP que proporciona seguridad adicional, como

  • Prueba de propiedad de la dirección para evitar el secuestro de direcciones
  • Integridad de mensajes y protección de reproducción
  • Autorización del enrutador solo para prefijos específicos

SeND requiere un par de claves públicas y privadas para todos los nodos IPv6. Su implementación puede volverse compleja y su uso puede requerir un uso intensivo de la CPU.

Integrando IPv4 e IPv6

Existen varias estrategias para migrar de IPv4 a IPv6. Se debe considerar cada estrategia cuando las organizaciones deciden pasar a IPv6 porque cada una tiene puntos positivos para ayudar a una migración sin problemas. También se debe decir que no tiene que haber una decisión global sobre la estrategia: su organización podría optar por ejecutar Dual Stack en los Estados Unidos, realizar una conversión completa a IPv6 en Japón y utilizar túneles en Europa. Los mecanismos de transición incluyen:

  • Dual Stack: ejecución de IPv6 e IPv4 simultáneamente en la misma interfaz.
  • Tunneling: los enrutadores que abarcan los mundos IPv4 e IPv6 encapsulan el tráfico IPv6 dentro de paquetes IPv4.
  • Traducciones: uso de una extensión de NAT, NAT64, para traducir entre direcciones IPv4 e IPv6.

Crea una web o blog en WordPress.com

Subir ↑