La Capa de Red: Algoritmos de Enrutamiento GG3
La Capa de Red: Algoritmos de Enrutamiento GG3
La Capa de Red: Algoritmos de Enrutamiento GG3
Algoritmos de enrutamiento
GG3
2
Tema 4: La Capa de Red
¨ 4. 1 Introducción ¨ 4.5 Algoritmos de
¨ 4.2 Circuitos Virtuales vs. enrutamiento
Datagramas ¤ Link state
¤ Distance Vector
¨ 4.3 Las “tripas” de un router
¤ Enrutamiento jerárquico
¨ 4.4 IP: Internet Protocol
¨ 4.6 Protocolos de
¤ Formato de datagrama
enrutamiento en Internet
¤ Direccionamiento IPv4
¤ RIP
¤ ICMP
¤ OSPF
¤ IPv6
¤ BGP
22 vv 33 ww 55
uu 22 33 11 z
(4,y)
11 11 22 (8,w)
x yy
(1,u) (2,x)
paso N’ D(v), p(v) D(w), p(w) D(x), p(x) D(y), p(y) D(z), p(z)
0 u 2,u 5,u 1,u ∞,- ∞,-
1 u,x 2,u 4,x 2,x ∞,-
2 u,x,y 2,u 3,y 4,y
3 u,x,y,v 3,y 4,y
4 u,x,y,v,w 4,y
5 u,x,y,v,w,z
Capa de Red - Algoritmos de Enrutamiento
Algoritmo de Dijsktra: ejemplo
6
5
3
v w 5
2
u 2 1 z
3
1 2
x 1
y
Capa de Red - Algoritmos de Enrutamiento
Algoritmo de Dijsktra: consecuencia
7
¨ El conjunto de rutas
mínimas de un nodo a ¨ Tabla de reenvío:
todos los demás nodos de
la red forma un árbol de Nodo
destino
Reenvío
por enlace
confluencia o expansión x u,x
(spanning/sink tree) y
v
u,x
u,v
w u,x
v w z u,x
u z
x y
¨ Posibles oscilaciones:
¤ Si se considera la carga como medida del coste por enlace…
1 A A A A
1+e 2+e 0 0 2+e 2+e 0
D 0 0 B D B D B D B
1+e 1 0 0 1+e 1
0 e 0 0 1 1+e 0 e
1
C 1 C 1 1 C 1 C 1
1 1
e e e e
inicio … nuevo cómputo … nuevo cómputo … nuevo cómputo
Capa de Red - Algoritmos de Enrutamiento
Algoritmo de Dijkstra: difusión del estado de los enlaces
9
Nodo origen x
Nº orden 1,2,….
Edad ttl
vecino1 c(x,vecino1)
vecino2 c(x,vecino1)
Vecinos
y coste
… …
vecinoi c(x,vecinoi)
Notifica a vecinos
coste a coste a
x x y z x y z
Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)}
x 0 2 7 x 0 2 3 = min{2+1 , 7+0} = 3
desde
desde
y ∞∞ ∞ y 2 0 1
z ∞∞ ∞ z 7 1 0
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
coste a = min{2+0 , 7+1} = 2
y x y z
x ∞ ∞ ∞
desde
y 2 0 1
z ∞∞ ∞
y
coste a 2 1
z x y z x z
7
x ∞∞ ∞
desde
y ∞∞ ∞
z 7 1 0
Tiempo
Capa de Red - Algoritmos de Enrutamiento
Algoritmo DV: ejemplo de cálculo
16
coste a coste a
x x y z x y z
Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)}
x 0 2 7 x 0 2 3 = min{2+1 , 7+0} = 3
desde
desde
y ∞∞ ∞ y 2 0 1
z ∞∞ ∞ z 7 1 0
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
coste a coste a = min{2+0 , 7+1} = 2
y x y z x y z
x ∞ ∞ ∞ x 0 2 7
from
desde
y 2 0 1 y 2 0 1
z ∞∞ ∞ z 7 1 0
y
coste a coste a 2 1
z x y z x y z x z
7
x ∞∞ ∞ x 0 2 7
desde
y ∞∞ ∞ y 2 0 1
z 7 1 0 z 3 1 0
Tiempo
Capa de Red - Algoritmos de Enrutamiento
Algoritmo DV: ejemplo de cálculo (ii)
17
desde
desde
desde
y ∞∞∞ y 2 0 1 y 2 0 1
z ∞∞∞ z 7 1 0 z 3 1 0
coste a coste a coste a
y x y z x y z x y z
x ∞ ∞ ∞ x 0 2 7 x 0 2 3
desde
desde
y 2 0 1
desde
y 2 0 1 y 2 0 1
z ∞∞ ∞ z 7 1 0 z 3 1 0
desde
desde
y ∞∞ ∞ y 2 0 1 y 2 0 1 7
z 7 1 0 z 3 1 0 z 3 1 0
coste a
x x y z y
4 1
x 0 4 5 x z
desde
y 4 0 1 50
z 5 1 0
coste a
y x y z
x 0 4 5
desde
y 4 0 1
z 5 1 0
coste a
z x y z
x 0 4 5
desde
y 4 0 1
z 5 1 0
Tiempo
t0
Capa de Red - Algoritmos de Enrutamiento
Algoritmo DV: propagación de “malas noticias”
20
coste a coste a 60
x x y z x x y z y
4 1
x 0 4 5 x 0 51 50 x z
desde
desde
y 4 0 1 y 4 0 1 50
z 5 1 0 z 7 1 0
y 4 0 1
desde
y 6 0 1
z 5 1 0 z 5 1 0
Dy(x) = min{c(y,x) + Dx(x), c(y,z) + Dz(x)}
coste a coste a = min{60+0 , 1+5} = 6
z x y z z x y z
x 0 4 5 x 0 4 5
desde
desde
y 4 0 1 y 4 0 1 Z no es informado todavía
z 5 1 0 z 5 1 0
Tiempo
to t1 Capa de Red - Algoritmos de Enrutamiento
Algoritmo DV: propagación de “malas noticias”
21
desde
desde
y 4 0 1 y 4 0 1 y 6 0 1 50
z 5 1 0 z 5 1 0 z 5 1 0 Los vectores Dx NO cambian más
y 4 0 1
desde
desde
y 6 0 1 y 6 0 1
z 5 1 0 z 5 1 0 z 5 1 0
coste a coste a coste a
z x y z z x y z z x y z
x 0 4 5 x 0 4 5 x 0 51 50
desde
desde
desde
y 4 0 1 y 4 0 1 y 6 0 1
z 5 1 0 z 5 1 0 z 7 1 0
Tiempo
to t1 t2 Capa de Red - Algoritmos de Enrutamiento
Algoritmo DV: propagación de “malas noticias”
22
desde
desde
y 4 0 1 y 4 0 1 y 6 0 1 50
z 5 1 0 z 7 1 0 z 7 1 0
y 4 0 1
desde
desde
desde
y 6 0 1 y 6 0 1 y 8 0 1
z 5 1 0 z 5 1 0 z 5 1 0 z 7 1 0
coste a coste a coste a coste a
z x y z z x y z z x y z z x y z
x 0 4 5 x 0 4 5 x 0 51 50 x 0 51 50
desde
desde
desde
desde
y 4 0 1 y 4 0 1 y 6 0 1 y 6 0 1
z 5 1 0 z 5 1 0 z 7 1 0 z 7 1 0
Tiempo
to t1 t2 t3
Capa de Red - Algoritmos de Enrutamiento
Algoritmo DV: propagación de “malas noticias”
23
¨ Las malas noticias son lentas (cuenta a infinito)
¤ Ejemplo 1: 44 iteraciones hasta que se terminan los cambios
60
y
4 1
x z
50
¨ Antes del cambio Dy(x) = 4, Dy(z) = 1, Dz(x) = 5, Dz(y) = 1
¨ t0: se produce el cambio c(y,x)=60 à Dy(x) = minxz{c(y,x)+ Dx(x), c(y,z)+ Dz(x)}=min{60+0, 1+5} = 6
¨ t1: Dy(x) llega al nodo z: Dz(x) = minxy{c(z,x)+ Dx(x), c(z,y)+ Dy(x)}=min{50+0, 1+6} = 7 (y cambia, via z)
¨ t2: Dz(x) llega al nodo y: Dy(x) = minxz{c(y,x)+ Dx(x), c(y,z)+ Dz(x)}=min{60+0, 1+7} = 8
¨ t3: Dy(x) llega al nodo z: Dz(x) = minxy{c(z,x)+ Dx(x), c(z,y)+ Dy(x)}=min{50+0, 1+8} = 9
¨ …
¨ t44: Dz(x) llega al nodo y: Dy(x) = minxz{c(y,x)+ Dx(x), c(y,z)+ Dz(x)}=min{60+0, 1+49} = 50
¨ t45: Dy(x) llega al nodo z: Dz(x) = minxy{c(z,x)+ Dx(x), c(z,y)+ Dy(x)}=min{50+0, 1+50} = 50 (camino a x por
zx)
¨ t46: Dz(x) llega al nodo y: Dy(x) = minxz{c(y,x)+ Dx(x), c(y,z)+ Dz(x)}=min{60+0, 1+50} = 51
¨ A partir de la iteración 44 los nodos y y z se dan cuenta de la nueva situación
Capa de Red - Algoritmos de Enrutamiento
Algoritmo DV: propagación de “malas noticias”
24
¨ Las malas noticias son lentas (cuenta a infinito) 60
y
¤ Ejemplo 1: 44 iteraciones hasta que se terminan los cambios 4 1
x z
50
A 1 B 1 C 1 1
¤ Ejemplo 2: D E
¨ Inicialmente A está desactivado. Cuando A se activa, B se entera de que A existe al recibir su vector
distancia y actualizar su tabla indicando que A dista 1
¨ El nodo C se entera de que A existe porque B le indica que tiene un enlace hacia A de coste 1. Entonces
C actualiza su tabla registrando una trayectoria hacia A de coste 2
¨ Si el nodo A se desconecta entonces B no recibe el VD de A. Sin embargo el nodo C le dice que tiene una
trayectoria hasta A de distancia 2. B no sabe que la trayectoria de C a A pasa por el mismo y por tanto
cree que puede llegar a A a través de C por lo que actualiza su tabla registrando la distancia 2 + 1 = 3
hasta A
¨ En el siguiente intercambio, el nodo C comprueba que sus vecinos B y D tienen una trayectoria hasta A
de distancia 3. C calcula su propia distancia hasta A en 3 + 1 = 4. En los siguientes intercambios, los
nodos elevan ilimitadamente su distancia a A (cuenta a infinito)
60
y
4 1
A 1 B 1 C 1 1
D E x z
50
PV = A PV= A, B PV= A, B, C
A B C D
D anuncia a B la red
10.1.1.0/24. Router D
se incluye en el camino
A rechaza el B rechaza el
anuncio ya que A anuncio ya que B se
D anuncia a A la red
se encuentra encuentra en el PV
10.1.1.0/24. Router D
en el PV
se incluye en el camino
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
¨ Ambos protocolos intra e
interdominio añaden información
a la tabla de reenvío de un router
Protocolo Protocolo interno:
Intra-dominio Inter-dominio
¤ Protocolo intradominio para
Tabla de
destinos del propio SA
Reenvío ¤ Protocolo interdominio para
destinos fuera del SA
x
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b AS1
1d
¨ Cuando existen varias opciones (pasarelas) para alcanzar
un destino x, ¿cómo se selecciona la mejor?
¨ La solución habitual es el método de la “patata caliente”:
¤ Se elige la pasarela más cercana (con ruta de menor coste
intradominio), para sacar el paquete de nuestro dominio lo antes
posible
Capa de Red - Algoritmos de Enrutamiento
Dominios, política e ISPs
35
¨Preparación de E1 (S1,S2,S3)