Configurar el Enrutamiento IPv6

Este es el último capítulo de la Parte VII (IPv6) del curso. En éste capítulo veremos cómo configurar el enrutamiento IPv6 en un router Cisco mientras desarrollamos los siguientes tres temas principales:

  • Rutas IPv6 conectadas y rutas locales, similar a IPv4, veremos cómo un router agrega routers conectados y locales en cada interfaz con dirección IPv6.
  • Cómo configurar rutas estáticas IPv6 por línea de comando, en este caso usando el comando ipv6 route en lugar del comando ip route usado en IPv4.
  • Por último veremos el protocolo NDP (Neighbor Discovery Protocol ó en español, Protocolo de Descubrimiento de Vecinos)

Nota: Todos los conceptos que veremos sobre IPv6 tienen sus bases en IPv4, por tanto si no estás completamente familiarizado con estos conceptos te invito a revisarlos en en este curso; Parte IV – Direccionamiento IPv4 y Parte V – Enrutamiento IPv4.

Rutas IPv6 Conectadas y Locales

El router Cisco agrega rutas IPv6 en su tabla de enrutamiento por la misma razón que lo hace IPv6. Específicamente, un router agrega rutas IPv6 basado en lo siguiente:

  • Rutas Conectadas y Locales – La configuración del direccionamiento IPv6 en las interfaces que están funcionando (rutas conectadas y locales)
  • Rutas Estáticas – La configuración directa de una ruta estática (rutas estáticas)
  • Rutas Dinámicas – La configuración de un protocolo de enrutamiento, como OSPFv3, en routers que comparten los mismos datos de enlaces (rutas dinámicas)

Reglas para las Rutas Conectadas y Estáticas

La siguiente lista resume las reglas sobre cómo los routers crean rutas basados en la configuración de las direcciones IPv6 unicast en la interface:

  1. Los routers crean rutas IPv6 basados en cada dirección IPv6 unicast en una interfaz, configurada con el comando ipv6 address, como puedes ver a continuación:
    1. El router crea una ruta para la subred (una ruta conectada).
    2. El router crea una ruta del host (ancho del prefijo /128) para la dirección IPv6 del router (una ruta local).
  2. Los routers no crean rutas basadas en las direcciones link-local asociadas con la interfaz.
  3. Los routers eliminan las rutas conectadas y locales en una interfaz si ésta falla y las rutas se agregan nuevamente cuando la interfaz vuelve a funcionar (up/up), estado working.

Ejemplo de Configuración de Direcciones IPv6 en un Router

ipv6 unicast-routing
 !
interface GigabitEthernet0/0
ipv6 address 2001:DB8:1111:1::1/64
 !
interface Serial0/0/0
ipv6 address 2001:db8:1111:4::1/64
 !
interface GigabitEthernet0/1/0
ipv6 address 2001:db8:1111:5::1/64

Rutas en un Router Antes de Agregar Rutas Estáticas o Protocolos de Enrutamiento

R1# show ipv6 route
IPv6 Routing Table - default - 7 entries
Codes:  C - Connected, L - Local, S - Static, U - Per-user Static route
        B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP
        H - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea
        IS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMO
        ND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - Redirect
        RL - RPL, O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1
        OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
        la - LISP alt, lr - LISP site-registrations, ld - LISP dyn-eid
        lA - LISP away, a - Application
C 2001:DB8:1111:1::/64 [0/0]
    via GigabitEthernet0/0, directly connected
L 2001:DB8:1111:1::1/128 [0/0]
    via GigabitEthernet0/0, receive
C 2001:DB8:1111:4::/64 [0/0]
    via Serial0/0/0, directly connected
L 2001:DB8:1111:4::1/128 [0/0]
    via GigabitEthernet0/0/0, receive
C 2001:DB8:1111:5::/64 [0/0]
    via GigabitEthernet0/1/0, directly connected
L 2001:DB8:1111:5::1/128 [0/0]
    via GigabitEthernet0/1/0, receive
L FF00::/8 [0/0]
    via Null0, receive

Ejemplos de Rutas Locales IPv6

R1# show ipv6 route local
! Legend omitted for brevity

L 2001:DB8:1111:1::1/128 [0/0]
    via GigabitEthernet0/0, receive
L 2001:DB8:1111:4::1/128 [0/0]
    via Serial0/0/0, receive
L 2001:DB8:1111:5::1/128 [0/0]
    via GigabitEthernet0/1/0, receive
L FF00::/8 [0/0]
    via Null0, receive

Rutas IPv6 Estáticas

Distintos Comandos IPv6 Route para crear rutas estáticas
Ejemplo de Red para crear rutas estáticas con el comando IPv6 Route

Rutas Estáticas Usando la Interfaz de Salida

Ejemplo de Rutas IPv6 Estáticas en un Router:

! Static route on router R1
R1(config)# ipv6 route 2001:db8:1111:2::/64 S0/0/0

! Static route on router R2
R2(config)# ipv6 route 2001:db8:1111:1::/64 S0/0/1

Como puedes observar, se incluye la interfaz física de salida junto al comando ipv6 route.

Verificar Rutas Estáticas:

R1# show ipv6 route static
! Legend omitted for brevity
S   2001:DB8:1111:2::/64 [1/0]
      via Serial0/0/0, directly connected
R1# show ipv6 route 2001:db8:1111:2::22
Routing entry for 2001:DB8:1111:2::/64
  Known via "static", distance 1, metric 0
  Route count is 1/1, share count 0
  Routing paths:
    directly connected via Serial0/0/0
      Last updated 00:01:29 ago

Rutas Estáticas Usando la Dirección IPv6 del Next-Hop ó Próximo Salto

Usando una IPv6 Unicast o Link-Local como Dirección de Next-Hop para Rutas Estáticas
Usando una IPv6 Unicast o Link-Local como Dirección de Next-Hop para Rutas Estáticas

Ejemplo de Rutas Estáticas Usando Direcciones Global Unicast

! The first command is on router R1, listing R2's global unicast address
R1(config)# ipv6 route 2001:db8:1111:2::/64 2001:DB8:1111:4::2
! The next command is on router R2, listing R1's global unicast address
R2(config)# ipv6 route 2001:db8:1111:1::/64 2001:db8:1111:4::1

Verificación de Rutas Estáticas que van hacia la Dirección de Next-Hop Global Unicast:

R1# show ipv6 route static
! Legend omitted for brevity
S   2001:DB8:1111:2::/64 [1/0]
      via 2001:DB8:1111:4::2

R1# show ipv6 route 2001:db8:1111:2::22/64
Routing entry for 2001:DB8:1111:2::/64
  Known via "static", distance 1, metric 0
  Backup from "ospf 1 [110]"
  Route count is 1/1, share count 0
  Routing paths:
    2001:DB8:1111:4::2
      Last updated 00:07:43 ago

Ejemplos de Rutas Estáticas con una Dirección Link-Local como Next-Hop

Las rutas estáticas que hacen referencia a la dirección link-local de un vecino funcionan un poco como los dos estilos anteriores de rutas estáticas. Primero, el comando de route ipv6 se refiere a una dirección del next-hop, es decir, una dirección de link-local. Sin embargo, el comando también debe hacer referencia a la interfaz de salida local del enrutador. ¿Por qué ambos? El comando route ipv6 no puede simplemente referirse a una dirección next-hop link-local por sí mismo porque la dirección link-local no le dice al router qué interfaz de salida usar.

Curiosamente, cuando el comando route ipv6 se refiere al next-hop de una dirección de global unicast, el router puede deducir la interfaz saliente ya que puede mirar su tabla de enrutamiento IPv6. Como resultado, con una dirección global unicast como next-hop, se puede deducir la interfaz de salida correcta.

Con una dirección next-hop link-local, un router no puede funcionar con esta misma lógica, por lo que la interfaz de salida también debe configurarse.

Ejemplo de Configuración de Rutas Estáticas IPv6 Usando Direcciones de Vecinos de Link-Local:

! The first command is on router R1, listing R2's link-local address
R1(config)# ipv6 route 2001:db8:1111:2::/64 S0/0/0 FE80::FF:FE00:2
! The next command is on router R2, listing R1's link-local address
R2(config)# ipv6 route 2001:db8:1111:1::/64 S0/0/1 FE80::FF:FE00:1

Verificación de Rutas EStáticas hacia una Dirección de Next-Hop Link-Local:

R1# show ipv6 route static
! Legend omitted for brevity

S   2001:DB8:1111:2::/64 [1/0]
        via FE80::FF:FE00:2, Serial0/0/0

R1# show ipv6 route 2001:db8:1111:2::22
Routing entry for 2001:DB8:1111:2::/64
  Known via "static", distance 1, metric 0
  Backup from "ospf 1 [110]"
  Route count is 1/1, share count 0
  Routing paths:
  FE80::FF:FE00:2, Serial0/0/0
  Last updated 00:08:10 ago

Rutas Estáticas Por Defecto (Default Route)

Al igual que en IPv4, la ruta por defecto le dice al router qué hacer con un paquete cuando no coincide con alguna otra ruta. Por tanto, se envía a la ruta por defecto.

Configuración:

!Forward out B1's S0/0/1 local interface…
B1(config)# ipv6 route ::/0 S0/0/1

En IPv6 se usa la dirección ::/0 como ruta por defecto, lo mismo sería en IPv4; 0.0.0.0.

B1# show ipv6 route static
IPv6 Routing Table - default - 10 entries
Codes:  C - Connected, L - Local, S - Static, U - Per-user Static route
        B - BGP, R - RIP, I1 - ISIS L1, I2 - ISIS L2
        IA - ISIS interarea, IS - ISIS summary, D - EIGRP, EX - EIGRP external
        ND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - Redirect
        O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
        ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
S ::/0 [1/0]
    via Serial0/0/1, directly connected

Rutas de Host IPv6 Estáticas

Esto sería una ruta con una única dirección IP de host. Lo que sería en IPv4 una máscara /32 que identifica una única IP. En IPv6 sería una máscara /128.

Ejemplo de configuración :

! The first command lists host B's address, prefix length /128,
! with R2's link-local address as next-hop, with an outgoing interface.
R1(config)# ipv6 route 2001:db8:1111:2::22/128 S0/0/0 FE80::FF:FE00:2
R1(config)#
! The next command also lists host B's address, prefix length /128,
! but with R2's global unicast address as next-hop, and no outgoing interface.
R1(config)# ipv6 route 2001:db8:1111:2::22/128 2001:DB8:1111:4::2

Solucionar Problemas de Rutas IPv6 Estáticas

Las rutas estáticas IPv6 tienen los mismos problemas que tienen las rutas IPv4 como ya vimos en el Capítulo 16.3 – Enrutamiento Estático (Rutas Estáticas). Sin embargo las rutas estáticas en IPv6 tienen algunas pequeñas diferencias.

Separemos la solución de problemas de rutas estáticas IPv6 en dos perspectivas: los casos en donde la ruta está en la tabla de enrutamiento, pero es incorrecta, y los casos en donde la ruta no se encuentra en la tabla de enrutamiento.

Solucionar Problemas de Rutas Estáticas Incorrectas que Aparecen en la Tabla de Enrutamiento IPv6

Cuando veas una pregunta en el exámen que tiene rutas estáticas y las ves en la salida del comando show ipv6 route, recuerda que las rutas podrían tener parámetros incorrectos. Verifica los siguientes tipos de errores:

  • Paso 1. Prefijo/Longitud: Tiene el comando ipv6 route el ID de subred (prefijo) y máscara (longitud del prefijo) correctos?
  • Paso 2. Si se está usando una dirección IPv6 como next-hop que es una dirección link-local:
    • A. Es la dirección link-local una dirección del router vecino? (Esta debería ser una dirección del otro router del un enlace compartido.)
      B. El comando ipv6 route hace referencia a la interfaz de salida correcta en el router local?
  • Paso 3. Si estás usando una dirección IPv6 como next-hop que es una dirección global unicast o una dirección unique local, es ésta la dirección unicast del router vecino correcta?
  • Paso 4. Si se referencia a una interfaz de salida, el comando ipv6 route referencia a la interfaz del router local (este es el mismo router donde la ruta estática es configurada)?

Ejemplos de Configuración con el Comando ipv6 route con sintaxis correcta en R1, pero mal ejecutados en su idea:

Red con IPv6 para usar de base en ejemplos mal implementados de configuración
ipv6 route 2001:DB8:9:33::/64 2001:DB8:9:2::2 ! Paso 1: El prefijo está mal
ipv6 route 2001:DB8:9:3::/64 G0/2 FE80::AAA9  ! Paso 2A: El vecino del enlace local está mal
ipv6 route 2001:DB8:9:3::/64 FE80::2          ! Paso 2B: Falta la interfaz de salida
ipv6 route 2001:DB8:9:3::/64 2001:DB8:9:2::1  ! Paso 3: Dirección del vecino está mal
ipv6 route 2001:DB8:9:3::/64 G0/1 FE80::2     ! Paso 4: Interfaz en R1 está mal

Todos los ejemplos anteriores son incorrectos, tienen una sintaxis correcta y podrían agregarse a la de enrutamiento IPv6 de R1. Sin embargo todos los comandos tienen fallas. Trabajando en el ejemplo anterior y en orden:

  • Paso 1. El prefijo (2001:DB8:9:33::) tiene un carácter mal en el cuarto cuarteto (33 en lugar de 3).
    • Paso 2A. La imágen muestra que la dirección link-local de la interfaz G0/1 en R2 es FE80::2, pero el comando usa FE80::AAA9.
    • Paso 2B. El comando usa la dirección link-local correcta de R2 en el enlace compartido (FE80::2 según la imágen), pero omite la interfaz de salida de R1 que es la interfaz G0/2. (Mira el siguiente ejemplo para más detalle.)
  • Paso 3. La imagen muestra la subred del centro como 2001:DB8:9:2::/64, con R1 usando la dirección ::1 y R2 usando ::2. Para el caso del cuarto comando del ejemplo, el comando en R1 debería usar la dirección 2001:DB8:9:2::2 de R2, pero R1 usa su propia dirección 2001:DB8:9:2::1 en su lugar.
  • Paso 4. Dado que es un comando en R1, la interfaz de salida debe ser la suya. La interfaz en este caso debería ser G0/2 ya que se quiere llegar a la red 2001:DB8:9:3::/64, esta es la interfaz que vemos a la derecha del router, si se quisiera llegar a la subred de la izquierda entonces si estaria correcto usar la interfaz G0/1.

Solucionar Problemas de Rutas Estáticas Incorrectas que NO Aparecen en la Tabla de Enrutamiento IPv6

En el ejemplo anterior vimos casos donde el comando estaba mal ingresado, en este ejemplo partiremos de base que todos los comandos están correctos y de todas maneras las rutas estáticas no aparecen en la tabla de enrutamiento.

La lógica que usa Cisco antes de agregar una ruta es la siguiente:

  • Para los comandos ipv6 route que listan una interfaz de salida, ésta interfaz debe estar en el estado up/up (working).
  • Para los comandos ipv6 route que listan una global unicast o unique local como dirección IP de next-hop (es decir, no una dirección link-local), el router local debe tener una ruta para alcanzar a esa dirección de next-hop.
  • Si otra ruta IPv6 existe para el mismo prefijo/longitud-del-prefijo, la ruta estática debe tener una mejor (menor) distancia administrativa.

Deja un comentario