Problema de Cuenta a Infinito en Redes: Soluciones y Mejores Prácticas

Problema de Cuenta a Infinito en Protocolos de Enrutamiento Vector de Distancias

Las Malas Noticias Viajan Lentamente

Supongamos que el router R1 falla:

  • Aproximadamente 3 minutos después, R2 marca la ruta como inválida.
  • Si antes de que R2 envíe el vector a R3, este se lo envía a él, R2 pensará que se puede llegar a la red A a través de R3.
  • Pero cuando R2 informa a R3 del nuevo camino, este verá un aumento en el coste.
  • Y así ad infinitum.

Este es el proceso de cuenta a infinito. En este contexto, se considera infinito a un valor de 16.

Veamos un ejemplo con los routers R1, R2 y R3, donde la red A está conectada a R1:

Situación inicial:

  • R2: Dst: Red A, cost: 2
  • R3: Dst: Red A, cost: 3

R1 falla:

  • R2: Dst: Red A, cost: ∞
  • R3: Dst: Red A, cost: 3

R3 envía su vector a R2:

  • R2: Dst: Red A, cost: 3 (piensa que puede llegar a través de R3)
  • R3: Dst: Red A, cost: 3

R2 envía su vector a R3:

  • R2: Dst: Red A, cost: 3
  • R3: Dst: Red A, cost: 4 (aumenta el coste porque la ruta pasa por R2)

R3 envía su vector a R2:

  • R2: Dst: Red A, cost: 5
  • R3: Dst: Red A, cost: 4

R2 envía su vector a R3:

  • R2: Dst: Red A, cost: 5
  • R3: Dst: Red A, cost: 6

Y así sucesivamente, hasta llegar a 16 (infinito).

Solución: Split Horizon

Split horizon es una técnica que evita bucles de enrutamiento. Consiste en no incluir en el vector de distancias que se envía por una interfaz los destinos a los que se llega por esa misma interfaz.

  • Los mensajes son más pequeños.
  • Evita el bucle del ejemplo anterior.

Ejemplo:

  • Caduca el temporizador (180s) en R2 y marca la ruta a la red A como inválida (coste ∞).
  • Caduca el temporizador (30s) en R2 y envía su vector a R3.
  • Como R2 llega a la red A a través de R3, no incluye la red A en el vector que envía a R3.

Split Horizon with Poisoned Reverse

Esta técnica es una mejora de split horizon. Consiste en anunciar los destinos a los que se llega por una interfaz con métrica ∞ (infinito) en el vector que se envía por esa interfaz.

  • No hay que esperar al temporizador de expiración de la ruta.
  • Los mensajes vuelven a ser grandes.

Convergencia Lenta

Las malas noticias viajan lentamente, lo que provoca una convergencia lenta.

  • Actualización de información: En el peor de los casos, se necesitan N x 30 segundos para llegar al otro extremo de la red.
  • Pérdida de ruta: En el peor de los casos, se necesitan N x 180 segundos hasta el otro extremo.

Para mejorar estos tiempos, se pueden usar triggered updates: enviar el vector de distancias en cuanto se produzca un cambio en el mismo.

Ejemplo de Cuenta a Infinito con Split Horizon with Poisoned Reverse

Consideremos la siguiente topología, donde las flechas indican las rutas hacia la red A:

R1 -- R2 -- R3 -- R4

| |

A E

| |

B D

|

C

Se utiliza split horizon with poisoned reverse.

Pasos:

  1. Falla el interfaz de R1 en la red A.
  2. R1 anuncia coste ∞ a R2 y R4.
  3. Puede que antes de que R1 avise a R3, este envíe su actualización periódica.
  4. R4 introduce una entrada hacia la red A por R3.
  5. R4 anunciará esa ruta a R1.
  6. R1 creerá que se llega a la red A por R4 con coste 5.
  7. R1 lo anunciará a R2.
  8. R2 creerá que se llega a la red A por R1.
  9. Y así sucesivamente, hasta que R2 llegue a R3, produciéndose una cuenta a infinito.

Solución: Hold Down

El hold down es un temporizador que se activa al marcar una ruta como inválida. Durante el tiempo de hold down, no se aceptan nuevas rutas a ese destino.

Ejemplo:

  • R4 entra en hold down.
  • R4 ignora la ruta anunciada por R3.

¿Cuánto tiempo debe durar el hold down?

  • Depende del tamaño de la red.
  • Se suele sobredimensionar (por ejemplo, 120 segundos).
  • Si hay una ruta alternativa, se tardará más tiempo en descubrirla.

Conclusión

La combinación de split horizon, poisoned reverse, triggered updates y hold down ayuda a mitigar el problema de la cuenta a infinito, pero aumenta la complejidad del protocolo de enrutamiento.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.