lunes, 19 de abril de 2010

Protocolos de Vector-Distancia

Como ya vimos, un protocolo como RIP basado en los saltos anuncia sus vecinos toda su tabla de ruteo, y no conoce de los anchos de banda o estado real de los enlaces en la red, así que, el siguiente escenario nos podría presentar un problema:
RIP

supongamos que hay una red más allá de nuestro router E a la que llamaremos T, a la cual lógicamente todos nuestros routers llegan por E; pero ese enlace falla y T es inalcanzable.

Como en RIP todos envían sus tablas de ruteo; A y B anunciarán que conocen la red remota T a través de C, y C anunciará que la conoce a través de D, mientras que D anunciará que la conoce por E, pero E anunciará que no está disponible. En ese momento D combinará su tabla con el anuncio, pero esperaremos al siguiente anuncio de rutas para que C sepa que no hay una ruta hacia T; y en el momento en que C reciba esa información, A hará el anuncio de que conoce una ruta hacia T a través de C, que le ha anunciado que no es alcanzable, pero que podría utilizar B para alcanzarla, por lo que ahora, todos conocerán a T a través de A que hizo un anuncio de ruta válida.

Esta situación es un loop de ruteo, caímos en una iteración infinita de resolución de una ruta. Para evitar ésto, RIP tiene un máximo de saltos, en este caso 15 saltos, después de lo cual declara el destino inalcanzable, es decir, declararemos que T está down luego de pasar por 15 routers en el proceso de búsqueda. Además, este conteo máximo de saltos nos ayuda a determinar cuanto nos toma declarar una ruta inválida o cuestionable.

Otra posible solución es el algoritmo Split-Horizon (horizonte dividido) , que reduce la información incorrecta y la carga de tráfico por información de ruteo al aplicar una regla simple: la información de ruteo no puede regresar por la dirección en que fue recibida. Es decir, el protocolo diferenciará por que interfase aprendió una ruta, y no anunciará la misma ruta por esa interfase, así evitaremos que el router A le envíe rutas a B que aprendió de B.

Otra manera de evitar las actualizaciones de rutas inconsistentes y evitar loops de ruteo es envenenar las rutas (Route Poisoning). Por ejemplo, cuando T se va down, el router E comienza a anunciar que la ruta hacia T es de 16 saltos (inalcanzable). Así evitamos que D y los demás subsecuentemente, anuncien una ruta inválida, y se asegura mediante el anuncio de una ruta Poison Reverse que D enviará a E, así sabremos que todos los routers del segmento conocen la ruta inalcanzable.

Un holddown es un tiempo de espera antes de enviar un anuncio regular de ruteo para una ruta que ha estado cambiando de estado (flapping); por ejemplo un enlace serial que pierde conectividad y regresa. Si no hay una manera de estabilizar dicho enlace la red no podrá converger y podría venirse abajo completa. Con el holddown nos aseguramos de que los cambios de estado no sean muy rápidos, dando tiempo para que la ruta afectada regrese o que la red se estabilice antes de volver a usar la ruta afectada. También es una manera de restringir a los routers por un espacio de tiempo los cambios que podrían afectar a rutas que se caban de retirar. Así evitamos que rutas no operativas se restablezcan en las tablas de otros routers.

No hay comentarios. :

Publicar un comentario