protocolos ruteo

69
1 Sumario ¿Dónde estamos? ¿Qué es routing? Algoritmos de ruteo Flooding Distance Vector Routing Link State Routing Bibliografía: Principal: Computer Networks. Peterson & Davie. 5º edición Complementaria: Computer Networks. Tanenbaum. 4º edición RFC 2453: RIP Version 2 (hasta sección 3.10.2)

Upload: hugo-daniel-giardini

Post on 16-Apr-2017

726 views

Category:

Education


1 download

TRANSCRIPT

1

Sumario

� ¿Dónde estamos?� ¿Qué es routing?� Algoritmos de ruteo

� Flooding� Distance Vector Routing� Link State Routing

� Bibliografía:� Principal: Computer Networks. Peterson & Davie. 5º

edición� Complementaria: Computer Networks. Tanenbaum.

4º edición� RFC 2453: RIP Version 2 (hasta sección 3.10.2)

2

¿Dónde estamos?

3

¿Qué es routing ?

� Una famosa cita del RFC 791:“A name indicates what we seek.An address indicates where it is.A route indicates how we get there .”

-- Jon Postel

4

Algoritmos de ruteo

� Es la parte del software del nivel de red responsable de decidir por cuál línea de salida debe transmitirse un paquete

� Si la subred usa internamente datagramas , esta decisión debe tomarse para cada paquete que llega, ya que la mejor ruta puede haber cambiado desde la última vez

� Si usa internamente circuitos virtuales , las decisiones de ruteo son realizadas sólo cuando se crea un nuevo circuito virtual . Luego, todos los paquetes de datos siguen la ruta previamente establecida

5

Routing

Forwarding versus Routing– Forwarding:

– Consiste en seleccionar un puerto de salidabasándose en la dirección destino y en la tabla de ruteo

– Routing: – Proceso por el cual se construye la tabla de

ruteo

6

Routing

• Tabla de forwarding vs tabla de ruteo• Tabla de forwarding

• Usada cuando un paquete está siendo forwardeado y debe contener suficiente información para realizar la función de forwarding

• Una fila en la tabla de forwarding contiene el mapeo de un número de red a una interface de salida y alguna información de MAC, tal como la dirección Ethernet del next hop

• Tabla de ruteo• Construida por el algoritmo de ruteo como paso previo a

construir la tabla de forwarding• Generalmente contiene un mapeo de números de red a

next hops

7

Routing

Ejemplo de tablas de (a) ruteo y (b) forwarding

8

Notación para los ejercicios de forwarding (o ruteo)

Next hop es el nombre de la interface del router por la cual puede entregar paquetes a una red destino directamente conectadaNext hop es la dirección IP del router al cual reenviar los paquetes a una red destino remota (esto es, no se encuentra directamente conectada al router)

9

Mostrando la tabla de ruteo IP

10

Mostrando la tabla de ruteo IP

11

Mostrando la tabla de ruteo IP

12

El comando show ip route

13

Routing

� Cuestión clave cada vez que tratamos de construir un mecanismo para Internet: “¿ Esta solución es escalable? ”

� La respuesta para los algoritmos y protocolos que estudiaremos es “no mucho ”. Fueron diseñados para redes de tamaño modesto -unos pocos cientos de nodos-

� Sin embargo, las soluciones que veremos sirven como bloques de construcción para una infraestructura de ruteo jerárquico que es la usada en Internet hoy en día

14

Routing

� Los protocolos que estudiaremos son conocidos colectivamente como intradomain routing protocols , or interior gateway protocols (IGPs)

� Dominio de ruteo: es una red en la cual todos los routers se encuentran bajo un mismo control administrativo (ej., una universidad, o la red de un ISP)

� Para el ruteo entre dominios se utilizan los protocolos conocidos comointerdomain routing protocols

15

Routing

• La red vista como un grafo

• El problema básico del ruteo es encontrar el camino de menor costo entre dos nodos• Donde el costo de un camino es igual a la

suma de los costos de todos los arcos que forman el camino

16

Flooding (inundación)

� Flooding� Un nodo envía un paquete por todos sus enlaces� Luego el próximo nodo lo envía por todos sus enlaces� … excepto por aquél por dónde el paquete ha llegado

X A

C B D

(a)

X A

C B D

(b)

X A

C B D

(c)

X A

C B D

(d)

17

Flooding

� Genera un gran número de paquetes duplicados , de hecho, un número infinito

� Solución: Usar un contador de saltos contenido en el header de cada paquete, el cual es decrementado en cada salto. El paquete se descarta cuando el contador llega a cero

� Idealmente el contador de saltos debería ser inicializado a la longitud de la ruta desde el origen al destino. Si no se conoce esa longitud, se puede inicializar el contador usando el peor caso, o sea el diámetro de la subred

18

Flooding

� Flooding no es práctico en la mayoría de las aplicaciones, pero tiene algunos usos. Por ejemplo:� Aplicaciones militares. La robustez enorme de

flooding es altamente deseable� Bases de datos distribuidas. A veces es necesario

actualizar todas las bases de datos en forma concurrente, en ese caso usar flooding puede ser útil

� Cómo métrica contra la cual otros algoritmos de ruteo pueden ser comparados. Flooding siempre elige el camino m ás corto porque elige todos los caminosposibles en paralelo

19

Routing

• Para una red simple, podríamos calcular todos los caminos más cortos y cargar la información en algún almacenamiento no vólatil en cada nodo

• Tal aproximación estática tiene varios inconvenientes:• No trata con fallas de nodo o de enlaces• No considera el agregado de nodos nuevos• Implica que los costos de los arcos no pueden cambiar

• ¿Cuál es la solución?• Necesitamos un protocolo dinámico y distribuido• Dos clases principales de protocolos:

• Distance Vector• Link State

20

Distance Vector

� También es conocido como el algoritmo Bellman-Ford� Cada nodo construye un arreglo unidimensional (un

vector ) que contiene las “distancias ” (costos) a todos los otros nodos y distribuye ese vector a sus vecinos inmediatos

� Supone que cada nodo conoce el costo del enlace a cada uno de sus vecinos directamente conectados

21

Distance Vector

Distancias iniciales almacenadas en cada nodo (vista global)

22

Distance Vector

Tabla de ruteo inicial del nodo A

23

Distance Vector

� Cada T segundos cada router envía su tabla a sus vecinos . Cada router entonces actualiza su tabla basándose en la nueva información

� Problemas: � Respuesta rápida a buenas noticias y lenta

a malas noticias� Utiliza demasiados mensajes de actualización

24

Distance Vector

Tabla de ruteo final del nodo A

25

Distance Vector

Distancias finales almacenadas en cada nodo (vista global)

26

Distance Vector

(a) Una subred (b) Entradas de A, I, H, K, y la nueva tabla de ruteo para J

27

Distance Vector

� Actualizaciones periódicas: � Cada nodo automáticamente envía un mensaje de

actualización en forma periódica, aunque nada haya cambiado

� Permite que el resto de los nodos sepan que estátodavía corriendo

� La frecuencia varía de protocolo a protocolo, típicamente es del orden de varios segundos a varios minutos

� Triggered updates:� Un nodo envía un mensaje de actualización cuando

detecta una falla de enlace o recibe una actualización de uno de sus vecinos que causa que cambie una de las rutas de su tabla de ruteo

28

Distance Vector

• Cuando un nodo detecta una falla de enlace…� F detecta que el enlace a G ha fallado

� F fija la distancia a G a infinito y envía la actualización a A

� A fija la distancia a G a infinito puesto que usa F para alcanzar a G� A recibe la actualización periódica desde C con un camino de 2

saltos a G� A fija la distancia a G a 3 y envía la actualización a F

� F decide que puede alcanzar a G en 4 saltos via A� Convergencia

X

29

Distance Vector

� Algunas circunstancias pueden evitar que la red se estabilice:� Supongamos que el enlace de A a E se cae

� En la próxima ronda de actualizaciones, A anuncia una distancia de infinito a E, pero B y C anuncian una distancia de 2 a E

X

30

Distance Vector

� Dependiendo del timing exacto de los eventos, lo siguiente puede ocurrir:

� El nodo B, después de escuchar que E puede ser alcanzado en 2 saltos desde C, concluye que puede alcanzar a E en 3 saltos y anuncia esto a A

� El nodo A concluye que puede alcanzar a E en 4 saltos y anuncia esto a C

� El nodo C concluye que puede alcanzar a E en 5 saltos; y asísucesivamente

� Este ciclo se detiene sólo cuando las distancias alcanzan algún número que es lo suficientemente largo para ser considerado infinito

� Count-to-infinity problem (problema del conteo a in finito)

X

31

Problema count-to -infinity

� Podemos usar algún número relativamente pequeño como una aproximación de infinito . Por ejemplo, el número máximo de saltos para atravesar una cierta red nunca será mayor a 16

� Una técnica para mejorar el tiempo para estabilizar el ruteo se llama split horizon� Cuando un nodo envía una actualización de enrutamiento a sus

vecinos, no envía aquellas rutas que aprendió de cada vecino de nuevo a ese vecino

� Por ejemplo, si B tiene la ruta (E, 2, A) en su tabla, entonces sabe que ha aprendido esa ruta de A, y así cada vez que B envia una actualización de ruteo a A, no incluye la ruta (E, 2) en dicha actualización

X

32

Problema count-to -infinity

� Una versión más estricta de split horizon, llamada split horizon with poison reverse :� B envía la ruta de regreso a A, pero pone información negativa en la

ruta para asegurar que A no usará B para llegar a E� Por ejemplo, B envía la ruta (E, ∞) to A

X

33

Problema count-to -infinity

� a) A está inicialmente apagado y el resto de los routers lo saben (distancia ∞). Luego, se enciende el nodo A; � convergencia

� b) Todas los enlaces y routers están inicialmente activos. Luego A se apaga, o bien se corta el enlace entre A y B; � conteo-a-infinito

34

Routing Information Protocol (RIP)

`Ejemplo de una red corriendo RIP Formato de paquete RIPv2

35

RIP

� Protocolo distance vector� Los nodos envían los vectores de distancia cada 30

segundos� … o, cuando una actualización de otro router causa

que cambie su tabla de ruteo (triggered update )

� Costo de los enlaces en RIP� Todos los enlaces tienen costo 1� Distancias válidas del 1 a 15� … con 16 representando infinito� “infinito” pequeño � pequeño “counting-to-infinity

problem”

� RIP está limitado a redes bastante pequeñas

36

RIP

� Soporta múltiples familias de direcciones, no solamente IP (campo Family)

� RIP versión 2 (RIPv2) introduce las máscaras de subred ; RIP versión 1 trabajaba con las viejas direcciones classful de IP

� RFC 2453

37

Link -State Routing

� Cada router mantiene un registro de las incidencias de sus enlaces� Si el enlace está activo o inactivo� El costo del enlace

� Cada router difunde el estado del enlace� Para dar a cada router un visión completa del grafo

� Cada router corre el algoritmo de Dijkstra� Para calcular los caminos más cortos� … y construir la tabla de forwarding

� Ejemplos� Open Shortest Path First (OSPF)� Intermediate System – Intermediate System (IS-IS)

38

Detectando cambios topológicos

� Beaconing� Periódicos mensajes “hello” en ambas

direcciones� Se detecta una falla después de algunos

“hellos” perdidos

� Compromisos de performance� Velocidad de detección� Overhead del bandwidth del enlace y CPU

“hello”

39

Link State Routing

Estrategia: Enviar a todos los nodos (no solamente a sus vecinos) infomación acerca de sus enlaces directamente conectados

� Link State Packet (LSP)� id del nodo que crea el LSP� costo del enlace de cada vecino directamente conectado� número de secuencia (SEQNO)� time-to-live (TTL) para el paquete

� Reliable Flooding� almacenar LSP más reciente de cada nodo� forwardear LSP a todos los nodos excepto al que lo envió� generar nuevo LSP periódicamente; incrementar SEQNO� comenzar con SEQNO en 0 cuando reboot� decrementar TTL de cada LSP almacenado; descartar cuando

TTL=0

40

Link State

Reliable Flooding

Flooding de paquetes link-state (a) LSP llega al nodo X; (b) X floods LSP a A y C; (c) A y C flood LSP a B (pero no a X); (d) floodingcompleto

41

Link State

� Reliable flooding� Asegurar que todos los nodos reciben la

información del estado de los enlaces� … y que usen la última versión

� Desafíos� Pérdida de paquetes� Llegadas fuera de orden

� Soluciones� Acknowledgments y retransmisiones� Números de secuencia� Time-to-live para cada paquete

42

Cuándo iniciar el flooding

� Cambios topológicos� Falla de enlace o nodo� Recuperación de enlace o nodo

� Cambio de configuración� Cambio del costo del enlace

� Periódicamente� Refrescar la información del estado del enlace

� Típicamente 30 minutos� Corrige posible corrupción de los datos

43

Shortest Path Routing

• Cada router corre el algoritmo de Dijkstra� Para calcular los caminos más cortos� … y construir la tabla de forwarding

• En la práctica, cada router computa su tabla de ruteo usando los LSPs que ha recolectado usando una implementación del algoritmo de Dijkstra llamada “forward search algorithm”

44

Escalando Link -State Routing

� Overhead del ruteo link-state� Flooding de paquetes de estado del enlaces por la red� Ejecución del algoritmo de Dijkstra

� Se introduce jerarquía a través de “areas”

Area 3

Area 0

Area 1 Area 2

Area 4

areaborderrouter

45

Resumiendo …

� La diferencia entre los algoritmos distance-vector y link-state puede ser resumida como sigue:

� En distance-vector , cada nodo habla sólo con sus vecinos directamente conectados , pero les dice todo lo que ha aprendido (i.e., la distancia a todos los nodos)

� En link-state , cada nodo habla con todos los otros nodos , pero les dice sólo lo que sabe a ciencia cierta (i.e., solamente el estado de sus enlaces directamente conectados)

46

Open Shortest Path First (OSPF)

� “Open”, se refiere al hecho de que es un estándar abierto, no propietario, creado bajo los auspicios de la Internet Engineering Task Force (IETF)

� Adiciona un número de características al algoritmo básico de link-state:� Autenticación de los mensajes de ruteo� Jeraquía adicional (creando áreas)� Balance de carga

47

Routing Areas

Un dominio dividido en áreas

Backbone area (Area 0)

Area Border Router (ABR – R1, R2 y R3)

48

OSPF Areas

� Usando flooding , cada router informa a todos los otros routers en su área acerca de sus vecinos y costos. Esta información permite a cada router construir el grafo para su áreas(s) y computar el camino más corto

� El área backbone hace esto también . Además, los routers de backbone aceptan información de los routers de borde de área para computar la mejor ruta desde cada router de backbone a cada otro router

� Esta información se propaga de regreso a los routers de borde, los que la anuncian al interior de sus áreas

� Usando esta información, un router que quiere enviar un paquete interarea puede seleccionar el mejor router de salida hacia el backbone

49

Routing Areas� Por ejemplo, R1 recibe LSAs de los routers del área 1 y puede determinar el costo de alcanzar todas las redes en el area 1 � Cuando R1 envía LSAs al área 0, anuncia los costos de alcanzar las redes como si todas esas redes estuvieran directamente conectadas a R1� Esto habilita a los routers del área 0 a aprender el costo de alcanzar las redes en el área 1� El ABR entonces sumariza esta información y la anuncia dentro de las áreas no backbone. Así todos los routers aprenden como alcanzar todas las redes en el dominio

50

La relación entre ASes, backbones y áreas en OSPF

51

Open Shortest Path First (OSPF)

Formato cabecera OSPF OSPF Link State Advertisement(LSA)

52

OSPF

� Todos los mensajes OSPF comienzan con la misma cabecera:

� Version : actualmente seteado a 2� Type : puede tomar los valores de 1 hasta 5� SourceAddr : identifica el emisor del mensaje� AreaId : identificador del área donde está localizado el

nodo� Checksum : mismo algoritmo que usa la cabecera IP� Authentication type :

� 0, si no se usa autenticación� 1, implica que se usa un password simple� 2, indica que se usa una autenticación criptográfica

53

OSPF

� Tipos de mensajes: � Tipo 1 es el mensaje “hello”, el cual envía un router a sus peers

para notificarles que el está vivo (alive) y conectado� Los tipos restantes son usados para requerir, enviar y

reconocer la recepción de los mensajes de estado del enlace

� Link-State Advertisement (LSA). Un mensaje puede contener varios LSAs

54

OSPF LSA

� Tipo 1 LSAs anuncian el costo de los enlaces entre routers.� Tipo 2 LSAs son usados para anunciar las redes a las cuales el router está

conectado. Los otros tipos son usados para soportar jerarquía adicional.� LS Age : equivalente al time to live (TTL).� Type : LSA tipo 1 en este caso. � Link state ID : identificador del router que creó este LSA. En general se

utiliza alguna dirección IP del router (recordar que un router puede tener diferentes direcciones IP en cada una de sus interfaces).

� Advertising router : en tipo 1 es idéntico al anterior.� LS sequence number : para detectar LSAs viejos o duplicados.� LS checksum : para verificar que los datos no se han corrompido.� Length : longitud en bytes del LSA.� Link ID, Link Data : identifican el enlace.� Metric : el costo del enlace. � Type : tipo del enlace, por ej. enlace punto-a-punto.� TOS: permite a OSPF elegir diferentes rutas para los paquetes IP basado

en el valor de su campo TOS.

55

Comparación de LS y DV Routing

Complejidad de los mensajes

� LS: Con n nodos, E enlaces,O(nE) mesajes enviados

� DV: Intercambio entre vecinos solamente

Velocidad de convergencia

� LS: Relativamente rápida� DV: Los tiempos de

convergencia varian� Puede haber ciclos de

ruteo� Problema del conteo-a-

infinito

Robustez: ¿Qué sucede si un router funciona mal?

LS:� Un nodo puede anunciar

un costo de enlace incorrecto

� Cada nodo calcula solamente su propia tabla

DV:� Un nodo DV puede

anunciar un costo de camino incorrecto

� La tabla de cada nodo es usada por otros (se propaga el error )

56

Métricas

� Hemos asumido que los costos de los enlaces , o métricas, son conocidos cuando se ejecuta el algoritmo de ruteo

� ¿Cómo podemos calcular los costos de los enlaces de manera efectiva?

� Una manera simple y razonable es asignar costo 1 a todos los enlaces (ej. RIP)

� Desventajas: no considera…� Latencia del enlace� Ancho de banda del enlace� Carga actual del enlace

57

Métricas

� La métrica de ruteo original de ARPANET usaba el número de paquetes que estaban esperando en la cola de cada enlace para ser transmitidos

� Por ejemplo, a un enlace con 10 paquetesencolados esperando para ser transmitidos se le asigna un costo m ás alto que a un enlace con 5 paquetes encolados

� Desventajas: no considera…� Ancho de banda del enlace

� Latencia del enlace

58

Métricas

� Una segunda versión del algoritmo de ruteo de ARPANET,tomó en consideración tanto el ancho de banda como la latencia del enlace y usó el delay , en lugar de la longitud de la cola, como medida de la carga

� Algunos problemas:� Con alta carga , los enlaces congestionados

comienzan a anunciar un costo muy alto. Todo el tráfico se mueve a otro enlace dejándolo idle de manera que empieza a anunciar un costo bajo y atrae nuevamente el tráfico, etc.

� El rango de valores posibles de los enlaces era demasiado grande y disperso

59

Métricas

� Generalmente se sostiene que el cambio din ámico de métricas es demasiado inestable y las redes de hoy en día carecen de la gran disparidad de velocidades de enlace y latencias que prevalecieron en ARPANET

� En la mayoría de las implementaciones de red del mundo real las métricas cambian muy raramente y, en general, bajo control del administrador de red

� Las métricas estáticas son la norma� Una aproximación bastante común es usar una

constante multiplicada por (1/ancho_de_banda_del_enlace)

60

Conclusiones

� Routing es un algoritmo distribuido� Reacciona ante cambios en la topología� Computa los caminos en una red

� Distance-vector routing� Calcula los costos de los caminos basándose en los costos de

los caminos de los vecinos� Algoritmo Bellman-Ford & Routing Information Protocol

� Link state routing� Inunda los costos de los enlaces en la red� Calcula los caminos más cortos como la suma del costo de los

enlaces

� Proceso de convergencia� Ante cambios de una topología a otra� Períodos transitorios de inconsistencia entre los routers

61

LS y DV Routing

� LS y DV routing� Basados en métricas, usando los costos de los

enlaces� Los routers comparten una visión común de cuán

buena es una ruta� Son comúnmente usados dentro de una

organización� RIP y OSPF son generalmente usados como

protocolos intradominios� Pero Internet es una “red de redes”

� ¿Cómo “pegar ” todas esas redes juntas?� Cuando las redes pueden no tener objetivos comunes� … y pueden no querer compartir información

62

BGP: Global Internet

Un service provider de Internet

63

Interdomain Routing (BGP)

� Internet está organizada como un conjunto de sistemas autónomos (AS) cada uno de los cuales se encuentra bajo control de una única entidad administrativa

� Autonomous System (AS)� Corresponde a un dominio administrativo� Ejemplos: universidad, compañia, backbone network

� La red interna de una corporación puede ser un único AS, como lo puede ser la red de un único proveedor de servicios de Internet (ISP)

64

Interdomain Routing (BGP)

Una red con dos sistemas autónomos

65

Propagación de rutas

� Idea: Mejorar la escalabilidad

� Divide el problema de ruteo en dos partes:� Rutear dentro de un único sistema autónomo� Rutear entre sistemas autónomos

� Otro nombre para los sistemas autónomos en Internet es dominios de ruteo� Dos niveles para la jerarquía de propagación de rutas

� Protocolo de ruteo inter-dominio (estándar de Internet)� Protocolo de ruteo intra-dominio (cada AS selecciona el propio)

66

Conceptos b ásicos de BGP

� Los pares de routers BGP se comunican entre síestableciendo conexiones TCP

� BGP es fundamentalmente un protocolo distance vector , pero algo diferente de otros tales como RIP

� En lugar de manterner sólo el costo a cada destino, cada router BGP guarda información del camino utilizado

� Del mismo modo, en lugar de informar periódicamente a cada vecino su costo estimado para cada destino posible, cada router BGP anuncia a sus vecinos la ruta exacta que estáutilizando.

67

Conceptos b ásicos de BGP

(a) Un conjunto de routers BGP (b) Información enviada a F

Ruta: F � D

68

Conceptos b ásicos de BGP� BGP resuelve fácilmente el problema de conteo-a-infinito que

ocurre en otros algoritmos de ruteo distance vector. � Por ejemplo, supongamos que la línea FG se cae. F recibe entonces

rutas de sus tres vecinos restantes (B, E, I)� Esas rutas son BCD, IFGCD y EFGCD� F puede ver inmediatamente que las dos últimas rutas son inútiles,

ya que pasan a través de sí mismo.� F elige entoces FBCD como su nueva ruta a D

X

69

Algunas herramientas

� Public Route Servers and Looking Glass sites:

� http://www.netdigix.com/servers.html� Videotron route server (AS5769)

� ARIN https://www.arin.net� http://whois.arin.net/ui/advanced.jsp

� LACNIC http://www.lacnic.net� http://lacnic.net/cgi-bin/lacnic/whois?lg=SP