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 salida
basá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 conectada
Next 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 como
interdomain 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 caminos
posibles 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 infinito)
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) flooding
completo
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
area
border
router
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 paquetes
encolados 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

Protocolos ruteo

  • 1.
    1 Sumario ¿Dónde estamos? ¿Qué esrouting? 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.
  • 3.
    3 ¿Qué es routing? Unafamosa 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.
    4 Algoritmos de ruteo Esla 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.
    5 Routing Forwarding versus Routing –Forwarding: – Consiste en seleccionar un puerto de salida basándose en la dirección destino y en la tabla de ruteo – Routing: – Proceso por el cual se construye la tabla de ruteo
  • 6.
    6 Routing • Tabla deforwarding 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.
    7 Routing Ejemplo de tablasde (a) ruteo y (b) forwarding
  • 8.
    8 Notación para losejercicios 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 conectada Next 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.
  • 10.
  • 11.
  • 12.
  • 13.
    13 Routing Cuestión clave cadavez 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.
    14 Routing Los protocolos queestudiaremos 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 como interdomain routing protocols
  • 15.
    15 Routing • La redvista 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.
    16 Flooding (inundación) Flooding Un nodoenví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.
    17 Flooding Genera un grannú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.
    18 Flooding Flooding no esprá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 caminos posibles en paralelo
  • 19.
    19 Routing • Para unared 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.
    20 Distance Vector También esconocido 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.
    21 Distance Vector Distancias inicialesalmacenadas en cada nodo (vista global)
  • 22.
    22 Distance Vector Tabla deruteo inicial del nodo A
  • 23.
    23 Distance Vector Cada Tsegundos 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.
    24 Distance Vector Tabla deruteo final del nodo A
  • 25.
    25 Distance Vector Distancias finalesalmacenadas en cada nodo (vista global)
  • 26.
    26 Distance Vector (a) Unasubred (b) Entradas de A, I, H, K, y la nueva tabla de ruteo para J
  • 27.
    27 Distance Vector Actualizaciones periódicas: Cadanodo 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.
    28 Distance Vector • Cuandoun 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.
    29 Distance Vector Algunas circunstanciaspueden 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.
    30 Distance Vector Dependiendo deltiming 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 infinito) X
  • 31.
    31 Problema count-to-infinity Podemos usaralgú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.
    32 Problema count-to-infinity Una versiónmá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.
    33 Problema count-to-infinity a) Aestá 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.
    34 Routing Information Protocol(RIP) `Ejemplo de una red corriendo RIP Formato de paquete RIPv2
  • 35.
    35 RIP Protocolo distance vector Losnodos 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.
    36 RIP Soporta múltiples familiasde 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.
    37 Link-State Routing Cada routermantiene 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.
    38 Detectando cambios topológicos Beaconing Periódicosmensajes “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.
    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.
    40 Link State Reliable Flooding Floodingde 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) flooding completo
  • 41.
    41 Link State Reliable flooding Asegurarque 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.
    42 Cuándo iniciar elflooding 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.
    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.
    44 Escalando Link-State Routing Overheaddel 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 area border router
  • 45.
    45 Resumiendo… La diferencia entrelos 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.
    46 Open Shortest PathFirst (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.
    47 Routing Areas Un dominiodividido en áreas Backbone area (Area 0) Area Border Router (ABR – R1, R2 y R3)
  • 48.
    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.
    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.
    50 La relación entreASes, backbones y áreas en OSPF
  • 51.
    51 Open Shortest PathFirst (OSPF) Formato cabecera OSPF OSPF Link State Advertisement (LSA)
  • 52.
    52 OSPF Todos los mensajesOSPF 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.
    53 OSPF Tipos de mensajes: Tipo1 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.
    54 OSPF LSA Tipo 1LSAs 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.
    55 Comparación de LSy 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.
    56 Métricas Hemos asumido quelos 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.
    57 Métricas La métrica deruteo 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 paquetes encolados 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.
    58 Métricas Una segunda versióndel 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.
    59 Métricas Generalmente se sostieneque 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.
    60 Conclusiones Routing es unalgoritmo 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.
    61 LS y DVRouting 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.
    62 BGP: Global Internet Unservice provider de Internet
  • 63.
    63 Interdomain Routing (BGP) Internetestá 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.
    64 Interdomain Routing (BGP) Unared con dos sistemas autónomos
  • 65.
    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.
    66 Conceptos básicos deBGP 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.
    67 Conceptos básicos deBGP (a) Un conjunto de routers BGP (b) Información enviada a F Ruta: F D
  • 68.
    68 Conceptos básicos deBGP 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.
    69 Algunas herramientas Public RouteServers 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