En las redes de computadoras , el anuncio de ruta de horizonte dividido es un método para prevenir los bucles de enrutamiento en los protocolos de enrutamiento por vector de distancia al prohibir que un enrutador anuncie una ruta en la interfaz de la que se aprendió.
El concepto fue sugerido en 1974 por Torsten Cegrell , y originalmente implementado en la red sueca inspirada en Arpanet TIDAS. [1] [2] [3]
Ejemplo
En este ejemplo, la red nodo A de las rutas de los paquetes a nodo B con el fin de alcanzar el nodo C . Los enlaces entre los nodos son distintos enlaces punto a punto.
Según la regla de horizonte dividido, el nodo A no anuncia su recorrido por C (a saber, A a B a C ) de nuevo a B . En la superficie, esto parece redundante, ya que B nunca se ruta a través del nodo A , porque los costos de ruta más que la ruta directa desde B a C . Sin embargo, si la relación entre B y C se cae, y B había recibido una ruta desde A a C , B podría terminar con esa ruta a través de A . A enviaría el paquete de regreso a B , creando un bucle. Este es el problema de la cuenta hasta el infinito . Con la regla del horizonte dividido en su lugar, este escenario de bucle en particular no puede suceder, lo que mejora el tiempo de convergencia en entornos complejos y altamente redundantes.
El enrutamiento de horizonte dividido con veneno inverso [4] es una variante de la publicidad de ruta de horizonte dividido en la que un enrutador anuncia activamente rutas como inalcanzables a través de la interfaz sobre la que se aprendieron estableciendo la métrica de ruta en infinito (16 para RIP ). El efecto de tal anuncio es eliminar inmediatamente la mayoría de las rutas en bucle antes de que puedan propagarse a través de la red.
La principal desventaja de Poison reverse es que puede aumentar significativamente el tamaño de los anuncios de enrutamiento en ciertas topologías de red bastante comunes, pero permite mejorar la eficiencia general de la red en caso de fallas. El horizonte dividido establece que si un enrutador vecino envía una ruta a un enrutador, el enrutador receptor no propagará esta ruta de regreso al enrutador publicitario en la misma interfaz.
Con el envenenamiento de ruta, cuando un enrutador detecta que una de sus rutas conectadas ha fallado, el enrutador envenenará la ruta asignándole una métrica infinita y publicándola a los vecinos. Cuando un enrutador anuncia una ruta envenenada a sus vecinos, sus vecinos rompen la regla del horizonte dividido y devuelven al creador la misma ruta envenenada, llamada inversa venenosa. Para que el enrutador tenga tiempo suficiente para propagar la ruta envenenada y para garantizar que no se produzcan bucles de enrutamiento mientras se produce la propagación, los enrutadores implementan un mecanismo de retención.
Veneno al revés
Poison Reverse es un algoritmo implementado que se usa a menudo dentro del enrutamiento por vector de distancia . El uso del veneno inverso es para resolver el problema del conteo hasta el infinito (se puede encontrar más información sobre el problema del conteo hasta el infinito en el enrutamiento por vector de distancia). En la práctica, el reverso del veneno se puede considerar como el reverso del horizonte dividido. Con el veneno inverso, los anuncios de ruta que serían suprimidos por el horizonte dividido se anuncian en cambio con una distancia de infinito.
La idea básica del envenenamiento inverso es asegurarse de que una ruta no regrese al mismo nodo si un costo ha cambiado dentro de la red. Un ejemplo de esto sería: El nodo Z enruta a través del nodo Y al destino X. Si el costo entre Z e Y aumenta, ocurrirá el problema de conteo hasta el infinito y aquí implementamos el uso de veneno inverso. Siempre que Z se enrute a través del nodo Y para llegar a X, Z transmitirá un costo infinito al destino X, al nodo que Z enruta a través de (Y).
- los números entre nodos es el costo de los enlaces.
Siguiendo esta topología y asumimos esta tabla de vector de distancia de Z:
Destino | Z | Y | X |
Z | 0 | 1 | 3 |
Y | 1 | 0 | 2 |
X | 3 | 2 | 0 |
Como Z se enruta a través de Y para llegar a X y por eso tiene el costo de 3. El veneno inverso se activa cuando transmitimos nuestro vector de distancia a nuestros vecinos: Las tablas de distancia que transmitimos son:
Para Y: [0, 1, ∞]
A X: [0, 1, 3]
Como vemos en el vector de distancia que se transmite al nodo Y, el destino final X tiene un valor infinito. Esto resuelve el problema de la cuenta hasta el infinito, ya que si el enlace entre Y y Z no rebota entre sí y, en su lugar, intenta directamente otra ruta.
Poison reverse no siempre funciona. Por ejemplo:
Si el enlace entre C y D fallara, el nodo C aún puede intentar pasar por A para llegar al destino. Esto hará que B se enrute por A y de ahí tengamos un bucle que no podemos resolver con veneno inverso. [5]
Sin embargo, esto se puede completar con la implementación de un protocolo de vector de distancia llamado RIP .
Implementaciones
El método de horizonte dividido es eficaz y sencillo de implementar y, por lo tanto, lo utilizan la mayoría de los protocolos de vector de distancia. Es utilizado principalmente por:
Ver también
- DNS de horizonte dividido , un concepto similar en DNS que realiza la publicación selectiva de información
- Envenenamiento por ruta
Referencias
- ^ Un procedimiento de enrutamiento para la red de conmutación de mensajes TIDAS , transacciones IEEE sobre comunicación 1975
- ^ Carta de Torsten Cegrell al profesor Leonard Kleinroch , 19 de agosto de 1974
- ^ Torsten Cegrell - el sueco que "arregló" Internet , Internetmuseum.se, fecha de acceso 2017-11-09
- ^ Protocolos de enrutamiento IP de Uyless D. Black
- ^ https://people.mpi-sws.org/~gummadi/teaching/sp07/datanets/homework/homework2solution.pdf
James F. Kurose, Keith W. Ross (2017). Redes de computadoras: un enfoque de arriba hacia abajo, séptima edición . Harlow, Inglaterra: Pearson. pag. 418.Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
enlaces externos
- "Split Horizon" y "Split Horizon with Poison Reverse" en convergencia en RIP Internetworks , de Microsoft TechNet.