Tema 3. Protocolos de enrutamiento - rodas5.us.es · Tema 3. Protocolos de enrutamiento Ingeniería...

26
Tema 3. Protocolos de enrutamiento Ingeniería de protocolos Curso 2012/13 Este material está basado en las transparencias de la Prof. Ana V. Medina Rodríguez (Tema 3, Ingeniería de Protocolos, Curso 2006/07)

Transcript of Tema 3. Protocolos de enrutamiento - rodas5.us.es · Tema 3. Protocolos de enrutamiento Ingeniería...

Tema 3. Protocolos de enrutamiento

Ingeniería de protocolos

Curso 2012/13

Este material está basado en las transparencias de la Prof. Ana V. Medina Rodríguez (Tema 3,

Ingeniería de Protocolos, Curso 2006/07)

Índice

• Introducción

• Enrutamiento estático

• Enrutamiento dinámico

• …

Introducción

• Para que un datagrama IP se entregue con éxito se debe cumplir: – El prefijo de una dirección destino debe corresponder

a una sola red a nivel de enlace de datos (aunque lo contrario no tiene por qué ser cierto).

– Los routers y hosts que tienen un prefijo de red común deben ser capaces de intercambiar datagramas usando directamente un protocolo de nivel de enlace de datos (sin ayuda de un router).

– Cada red a nivel de enlace de datos debe estar conectada al menos con otra red mediante un router.

Introducción Tablas de rutas

• Un nodo (router o host) tiene que tener una tabla de enrutamiento. Genéricamente tiene, al menos, la siguiente información: – Dirección de destino: ¿Qué?

– Próximo salto: ¿A quién?

– Interfaz: ¿Por dónde?

Se puede fusionar en una línea

Destino Próximo Salto

Interface

10.2.0.0/24 - eth0

10.3.0.0/16 10.2.1.1 eth0

10.4.0.0/24 - serial0

10.7.0.0/24 10.4.0.1 serial0

Una única columna

Directamente conectada

El próximo salto tiene que estar directamente alcanzable

Introducción Tablas de rutas

Redes directamente conectadas

Destino

¿Cómo se usa? 127.0.0.2: Línea 5 (*). 10.100.15.254: Línea 2 (*). 10.100.16.2: Línea 1.

Introducción Red completa

Introducción Procesos internos

• Existen dos procesos distintos en el proceso de enrutamiento: – Reenvío: Decisión sobre el reenvío (selección del interfaz de destino y

reenviar el datagrama).

– Enrutamiento: Forma de rellenar las tablas.

• La prioridad es el reenvío.

• Enrutamiento: Estático/dinámico.

Introducción Pasos en el reenvío

1. Validar cabecera (¿qué compruebo?). 2. Procesar opciones (poco habitual). 3. Analizar destino (¿para qué? ¿qué hago?). 4. Buscar dst en tabla de rutas (¿Cómo era?). 5. Decrementar TTL (¿para qué?). 6. Fragmentar (¿por qué? ¿siempre?). 7. Calcular checksum (¿en qué casos?). 8. Reenviar al próximo salto (¿siempre?). 9. Enviar ICMP (¿siempre?).

Introducción Ejemplo tabla de rutas

Si para un destino hay varias coincidencias: Tiene preferencia la máscara con más 1s. • 0.0.0.0/0: Ruta por defecto (coincide siempre). • 127.0.0.1: Interfaz de loopback (no es un interfaz físico). • 150.214.141.0/24: Tiene un router distinto al “por defecto”. • 192.168.1.10/32: Se trata de una ruta a host, sirve para referirse a una ruta para una sola dirección. • 10.100.0.0/20: Se trata de la red directamente conectada. • La puerta de enlace (sea la que sea) tiene que ser alcanzable.

Introducción ¿Cómo se actualiza?

• Al añadir un interfaz: Cuando especifico la IP y máscara de una NIC (p.ej.). • Si añado una ruta por defecto: Al especificar una puerta de enlace predeterminada (¿No es extraño?) o mediante “route” con una sintaxis que varía de s.o. en s.o. • Si añado un ruta estática: Mediante “route” (es un superconjunto del anterior caso). • Mediante un protocolo de routing determinado (dinámico). • Mediante un mensaje ICMP (caso a caso), un poco peligroso.

Introducción Agregación de rutas

Destino Próximo salto

150.214.141.0/24 -

0.0.0.0/0 150.214.141.1

193.147.1.0/24 150.214.141.2

193.147.2.0/24 150.214.141.2

193.147.10.0/24 150.214.141.10

193.147.11.0/24 150.214.141.20

193.147.14.0/24 150.214.141.50

193.147.15.0/24 150.214.141.50

¿193.147.1.0/23? ¿193.147.0.0/22?

¿193.147.10.0/23?

¿193.147.14.0/23?

Enrutamiento estático

• Todas las entradas de la tabla de rutas se habrán introducido manualmente. – Las redes directamente conectadas aparecen “solas”. – Para otras redes hay que indicar el próximo salto que

estará, necesariamente, “directamente conectado”.

• La información de ida no proporciona información sobre cómo volver, ni asegura que se pueda volver.

• Convergencia: Ocurre si todos los routers y estaciones de la red tienen información precisa y consistente con la realidad.

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?.

Enrutamiento dinámico 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, o no, por otros AS para garantizar la conectividad con esos prefijos de red.

Enrutamiento dinámico 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.

Enrutamiento dinámico 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.

Enrutamiento dinámico 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

Enrutamiento dinámico Vector distancia

Enrutamiento dinámico Ejemplo vector distancia

Enrutamiento dinámico 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.

Enrutamiento dinámico Cuenta a infinito

Enrutamiento dinámico 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.

Enrutamiento dinámico Routing Information Protocol

• Definido en la RFC 1058 (hoy incluida RFC 2453).

• 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)

Enrutamiento dinámico Routing Internet Protocol

• 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 CIDR ni VLSM.

Enrutamiento dinámico Routing Internet Protocol

Enrutamiento dinámico Aspectos finales

• RIPv2: RFC 2453. Los mensajes incluyen:

– Dirección.

– Máscara de subred, permite CIDR.

– Siguiente salto.

– Métrica

– Las actualizaciones se envían en multicast a la dirección 224.0.0.9.

• 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