Mostrando las entradas con la etiqueta RIP. Mostrar todas las entradas
Mostrando las entradas con la etiqueta RIP. Mostrar todas las entradas

lunes, 19 de abril de 2010

Ejemplo de RIP (Packet Tracer)

En este ejemplo de Packet Tracer podemos ver una red corriendo RIP.
Hay que hacer un tracert desde una de las PC hacia otro host y cambiar la topología de la red apagando algunos routers o interfases, así veremos como la trayectoria hacia el destino es modificada.



más ejemplos

Routing Information Protocol (RIP)

RIP es un verdadero protocolo de vector-distancia; envía su tabla de ruteo completa por cada interfase activa cada 30 segundos, y sólo usa el número de saltos para determinar la mejor ruta hacia una red, con un conteo máximo de 15 saltos por default, declarando el destino inalcanzable al 16o. salto.

Trabaja bien en redes pequeñas, pero en redes grandes con enlaces WAN de anchos de banda pequeños es ineficiente.

RIP versión 1 usa sólo ruteo por clases (classful routing), es decir que todos los  dispositivos en la red deben usar la misma máscara de red; ésto se debe a que RIPv1 no envía las actualizaciones con las máscaras de red incluídas. RIP versión 2 tiene algo llamado prefijos de ruteo (prefix routing) y envía las máscaras de red en las actualizaciones de rutas. Éste si es classless routing.

RIP usa 4 contadores o timers para regular su desempeño:
  • Route update timer, es el contador que espera antes de enviar las actualizaciones de rutas, por default 30 segundos.
  • Route invalid timer, es el contador que lleva el tiempo que debe pasar antes de que un router determine que una ruta es inválida, 180 segundos por default. Se llegará a esta conclusión si no hay una actualización para esa ruta particular durante este periodo. Después de ese tiempo el router envía un anuncio a todos sus vecinos para que sepan que la ruta es inválida.
  • Holddown timer, es otro contadorde tiempo durante el cual se suprime la información de ruteo. Un router entra en un estado de holddown cuando una actualización nos indica que una ruta es inalcanzable. Este estado se mantiene hasta que una actualización nos avisa de una ruta con mejor métrica o hasta que expira el tiempo del holddown timer, que por default es de 180 segundos.
  • Route flush timer, fija el tiempo que pasa entre que se vuelve inválida una ruta y su retiro de la tabla de ruteo, por default son 240 segundos. Antes de quitarla de la tabla, el router les informa a los vecinos del retiro inminente de la ruta. El valor del contador Route invalid timer debe ser menor que el route flush timer para dar tiempo a que se anuncie entre los vecinos la actualización de la tabla de ruteo local.

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.

Protocolos de Ruteo, las bases

Como ya vimos, el ruteo dinámico nos provee información de las redes que están conectadas en cada router de nuestra red, y está basado en distintos parámetros, como la distancia administrativa, el ancho de banda, el número de saltos, etc.

La distancia administrativa (AD) es usada para calificar la confianza que tenemos en la información de ruteo, siendo 0 lo mejor y 255 una ruta que nunca sería utilizada, por eso es que una red directamente conectada aparece en la tabla de ruteo con una AD de 0.

Cuando el router recibe dos anuncios de la misma red por rutas diferentes, lo primero que se revisará es la AD, y si una de las rutas tiene una AD menor, esa será colocada en la tabla de ruteo. En caso de que la AD de ambas sea igual, entonces se determinará la mejor ruta por el número de saltos o el ancho de banda de los enlaces; y si en ambas rutas las métricas son iguales, entonces el router usará ambas rutas, balanceando la carga entre ambas.

Las rutas directamente conectadas son las que tienen mayor prioridad, después las rutas estáticas, y luego las aprendidas por medio de un protocolo de ruteo (tabla de distancias administrativas). Cuando una tabla de ruteo contiene información de las rutas hacia cada una de las redes existentes, entonces se dice que alcanzamos la convergencia de la red.

Hay 3 clases de protocolos de ruteo:
  • Vector-Distancia (distance-vector), encuentran la mejor ruta a una red en base a la distancia. Cada vez que un paquete pasa por un router (los llamados saltos) la métrica hacia esa red se incrementa. La ruta con menos saltos hacia esa red es la mejor. El vector nos indica la dirección hacia la red remota. RIP e IGRP son protocolos de Vector-Distancia y envían la tabla de ruteo completa a los vecinos directamente conectados. Es importante notar que no toman en cuenta el ancho de banda, por lo que una ruta con menos saltos, pero un ancho de banda muy pequeño podría ser preferida sobre otra más "óptima"
  • Estado del Enlace (link state), o también llamados Protocolos de la ruta más corta primero (Open Shortest Path First), crean 3 tablas separadas; una de los vecinos directamente conectados, una que determina la topología de la red completa, y una última que es utilizada como tabla de ruteo. Estos protocolos dan más información de la red que un protocolo de Vector-Distancia. OSPF es un protocolo basado en Estado del Enlace y hace que un router envíe información de sus propios enlaces a otros routers en la red.
  • Protocolos híbridos, que son una mezcla de los protocolos Vector-Distancia y Estado del Enlace, por ejemplo EIGRP.
La decisión de que tipo de protocolo usar debe ser tomada en cada caso particular de acuerdo a las necesidades de cada red; pero conocer las ventajas y debilidades de cada protocolo nos ayudará a hacer una excelente decisión que cubra nuestras necesidades.

Ruteo

Un router se encarga de reenviar paquetes entre redes, eso se llama ruteo; sin embargo, por si solo conoce únicamente las redes directamente conectadas a él, no entiende de hosts, sólo de redes, y cuando un host conectado en una red que está en la interfase de un router tiene un paquete para una red desconocida, hace lo siguiente:

El host crea el paquete con la dirección IP de destino y de origen, pone la información que enviará y lo manda a su capa de enlace de datos, donde se coloca la dirección MAC de la tarjeta ethernet del host y la dirección MAC de nuestro Default Gateway, usualmente la interfase del router.

Esto ocurre porque las direcciones MAC son locales y no pueden salir de un dominio de broadcast, por eso, aunque la dirección de destino sea externa a nuestra red local, la MAC address utilizada para transportar ese frame es la del router. Cuando el router recibe el frame lo procesa y ve que la MAC address de destino es la de su interfase, por lo que quita la información capa 2 y procesa el contenido, un paquete IP, que tiene una dirección de destino que no es suya, y podría o no estar en una red que conoce el router.

El router procesa el paquete IP y revisa si conoce la red de destino en su tabla de ruteo, donde habrá una lista de rutas hacia las redes que conoce; Si el router conoce esa red como directamente conectada, crea un nuevo frame y cambia la MAC de origen por la de su interfase de salida, y pone la MAC de destino del host indicado; en caso de no conocerla directamente conectada, elabora el nuevo frame y lo manda a través de la intefase que está conectada en la dirección que la tabla de ruteo le indica, y hará un forward del paquete.

Podría ser el caso que no tenga una ruta espécifica para la red que busca, pero si hay una ruta de default o una red de default, el router entregará todo el tráfico cuya ruta es desconocida a esa ruta o red de default. En caso de no tener una ruta de default y de no concoer una ruta hacia el destino, el router crea un nuevo paquete IP, lo encapsula en un frame y lo reenvía de regreso por la interfase de donde llegó el paquete con la respuesta de "destino inalcanzable"

Ahora, es importante saber que hay dos tipos de protocolos, de ruteo y ruteables.
Generalmente usamos IP que es un protocolo ruteable, para encargarnos del direccionamiento entre las redes; y usamos BGP, OSFP, RIPv1 y RIPv2, IGRP, EIGRP, etc. como protocolos de ruteo.

Un protocolo de ruteo nos sirve para anunciar entre los distintos routers de la red las redes que cada quien conoce, y de esa manera construir rutas desde todos los puntos de la red hacia esas redes.

Hay 3 tipos de ruteo:
  • Ruteo Estático
  • Ruteo por Default
  • Ruteo Dinámico
En el ruteo estático, nosotros administramos las rutas y las escribimos directamente en cada router, lo que es tedioso y difícil de mantener cuando la red es de un tamaño considerable.

En el ruteo por default, podría o no haber rutas estáticas o dinámicas en mi tabla de ruteo, pero todo aquel destino desconocido será alcanzado a través de una ruta de salida por default; en el caso de RIP también se anuncian en la red las rutas por default.

En el ruteo dinámico, donde usamos los protocolos de ruteo, cada router anuncia las redes que conoce y les da una distancia administrativa y un costo, aunque no todos los protocolos asignan o usan las mismas variables.

En general, las distancias administrativas son tomadas por el router como en la tabla de nuestro post anterior, a menos que especifiquemos lo contrario; por ejemplo, podríamos configurar una ruta por default y darle una distancia adminsitrativa de 130, y luego configurar RIP, cuyas rutas tendrán un distancia administrativa de 120, siendo sus rutas utilizadas preferentemente sobre las rutas estáticas; sin embargo, si en determinado momento RIP no tiene una ruta hacia una red, nuestra ruta estática sería utilizada.
Ruteo

Podemos ver estos conceptos en las topologías de Packet Tracer que puedes descargar:
  • En el primer ejemplo tenemos la topología de 3 routers, cada uno con su LAN y con las interfases configuradas, pero sin ruteo, 
  • y en el segundo ejemplo tenemos la misma red, pero con rutas de default en los routers de los extremos y rutas estáticas en el central