Enrutamiento dinámico Introducción • Las tablas de rutas se rellenan de forma automática, gracias a un protocolo de enrutamiento. Suele aplicarse en routers. • Un protocolo de enrutamiento define el conjunto de reglas utilizadas por un router cuando se comunica con otro router para resolver este problema: – – – – ¿Cómo se envían las actualizaciones?. ¿Qué información se incluye en la actualización?. ¿Cada cuánto se envía?. ¿Quiénes son los receptores de las actualizaciones?. – ¿Qué algoritmo de enrutamiento se utiliza para determinar la mejor ruta?. Sistemas autónomos RFC1930: Un grupo de prefijos de red de uno o varios ISP en el que existe una política de rutado única y claramente definida. • Dentro de cada AS se utilizan protocolos de routing interiores o IGP. • Entre cada AS se usarán protocolos de routig exteriores o EGP. • IGP: RIP, OSPF... • EGP: BGP Cada AS “publicará” los prefijos de las redes a través de un EGP. Esa información será utilizada por otros AS para garantizar la conectividad con esos prefijos de red. Componentes de un algoritmo de enrutamiento • Un proceso enviar y recibir información sobre redes alcanzables a/de otros routers • Un proceso para calcular rutas óptimas: – Dada una red a la que se le asigna un coste a cada enlace, encontrar el camino más corto entre dos redes con el mínimo coste. • Un proceso para reaccionar y avisar de cambios en la topología. Cálculo del camino más corto • Vector distancia (Bellman-Ford): – – – Cada router conoce la distancia (=coste) de sus vecinos directamente conectados Un router envía una lista de actualizaciones de enrutamiento a sus vecinos que contendrá las redes alcanzables por él y su distancia. Si todos los routers actualizan las redes alcanzables/distancias con la información recibida de sus vecinos, entonces, la red convergerá. • Estado del Enlace (Dijkstra) – – – – Cada router conoce la distancia a sus vecinos directamente conectados. La información de distancia, conocida como estado del enlace (LS, Link State) es enviada por broadcast a todos los routers en la red. Todos los routers construyen la topología de la red. Cada router calcula el camino más corto a todas las redes alcanzables de manera independiente. Vector distancia • Cada router conoce: – Su identificador – Sus interfaces – La distancia hasta el siguiente router de cada interfaz • Cada router construye su TE, que le indica por que interfaz enviar los paquetes para cada destino. • Para ello intercambia con sus vecinos, actualizaciones de enrutamiento, conocidas como vectores distancia, que indican la distancia a cada destino Vector distancia Distribución vector distancia Características vector distancia • Actualizaciones Periódicas: Cada cierto tiempo se envía una actualización de enrutamiento. Un valor típico es de 90 segundo. • Actualizaciones por cambios: Si hay un cambio en la métrica de un enlace, un router enviará sin esperar más. • Actualizaciones de toda la TE: La mayoría de los protocolos que usan vector distancia envían toda la tabla de enrutamiento a sus vecinos en sus actualizaciones. • Temporizadores para invalidar rutas: Las entradas en la tabla de enrutamiento se invalidan si no son refrescadas. Un valor típico de invalidación de una entrada es no haber sido actualizada entre 3-16 veces periodo de actualización. Problema de la Cuenta a infinito Cuenta a infinito • La razón de este problema es que cada nodo sólo tiene la visión del “Próximo salto”. • En el ejemplo, C no sabe que aprendió cómo alcanzar A a través de B y B no sabe que él informó a C de cómo alcanzar a A. • ¿Cómo se puede resolver? – Nunca enviar una actualización de una ruta a un vecino si éste es el próximo salto (Split Horizon). – En el ejemplo: C no enviará información de como alcanzar a A en sus actualizaciones y B dejará de informar como alcanzar a A después de que expire el temporizador de invalidación de ruta. RIP (Routing Information Protocol) • RIPv1 definido en la RFC 1058 (versión 1, 1988). • Sufre los problemas típicos del vector distancia (cuenta a infinito), aunque hay formas de solucionarlo. • Solo útil en redes pequeñas (5-10 routers) • Métrica basada en número de saltos únicamente. • Máximo 15 saltos. Infinito 16. • La información se intercambia cada 30 segundos. • No permite usar múltiples rutas simultáneamente. • Disponible en máquinas UNIX (routed) Mensajes RIP • Los mensajes RIP se encapsulan en datagramas UDP en el puerto 520. – Dirección destino broadcast dirigido. – Sólo procesa actualización si el origen pertenece a la red de la interfaz. • En un mensaje RIP pueden enviarse hasta 25 entradas del vector de distancias. – Para transportar vectores grandes se utilizan varios mensajes. – Una entrada de la tabla de enrutamiento se vuelve inválida si pasan 180 segundos (hold-down timer) sin que sea actualizada, no obstante se puede configurar. • No introduce la máscara de red en sus mensajes por lo que no soporta direccionamiento sin clase. • No soporta autenticación ni cifrado. RIP Formato Mensajes RIPv2 (versión 2) • • • RIPv2 (1998, RFC 2453) Los mensajes incluyen: – Dirección. – Máscara de subred, permite CIDR. – Siguiente salto. – Métrica – Las actualizaciones se envían por multicast a la dirección 224.0.0.9. Además incluye un método de autenticación, para aumentar la seguridad de la red. Funcionamiento general: – Inicialización: Enviar una petición a través de todas las interfaces. – Al recibir una petición de un vecino: envían su TE en una respuesta. – Al recibir una respuesta: Actualiza su tabla de enrutamiento. – Se realizan actualizaciones cada 30s. – Actualizaciones por cambios: Siempre – En conclusión, RIPv1 no debe usarse hoy día. RIPv2 se puede usar cuando la escalabilidad no sea importante y sí el tener algo ligero. RIPng (versión 3) • RIPng (Next Generation), RFC-2080: – Incorpora soporte IPv6. – No es compatible con RIPv1, solo con RIPv2. – Poco extendido todavía... Configuración RIP (v1 y v2) • Para activarlo en un router basta con usar: • R1(config)# route rip • A continuación la versión a usar: • • R1(config-route)# version 1 Y después introducir varios comandos “network”: ● • R1(config-route)# network 192.168.1.0 • R1(config-route)# network 192.168.2.0 Eso activa RIP en las interfaces de red de R1 configuradas en esas 2 redes y además serán las 2 redes que anunciemos inicialmente a nuestros vecinos. Interfaces pasivos • Podemos declarar un interfaz pasivo, de forma que no se envíen mensaje RIP por esa interfaz, por ejemplo para evitar tráfico innecesario en esas redes. • Ejemplo: ● R1(config)# route rip ● R1(config-route)# passive-interface Fa0/0 Verificación RIP • En la tabla de enrutamiento salen las entradas aprendidas (con una R delante): • R1# show ip route o • • R1# show ip route rip Podemos usar: • R1# debug ip rip para activar la depuración por consola: R1 escribirá un mensaje en consola cada vez que envíe o reciba una actualización. ● R1# undebug all para desactivar todos los mensajes de depuración activos.