17
Protocolo de estado de Protocolo de estado de enlaces: OSPF enlaces: OSPF Emilio Hernández Emilio Hernández Carlos Figueira Carlos Figueira

Protocolo de estado de enlaces: OSPF a los vecinos El protocolo HELLO se usa para determinar el estado de los enlaces con los vecinos Cada enrutador OSPF envía un paquete HELLO por

  • Upload
    hamien

  • View
    225

  • Download
    0

Embed Size (px)

Citation preview

Protocolo de estado de Protocolo de estado de enlaces: OSPFenlaces: OSPF

Emilio HernándezEmilio HernándezCarlos FigueiraCarlos Figueira

Recordar: Protocolos de estado de enlaces

8

A

B

C

D

E

F

G1 2

Una ruta: A ­ 1 ­ G ­ 2 ­ D

H I3

Enrutador 1A, B, C, G, H

Enrutador  3H, I

Enrutador 2D, E, F, G, I

Los nodos envían a toda la red la información de sus enlaces

Jerarquización: los SA tienen Jerarquización: los SA tienen enrutadores de borde enrutadores de borde 

Sistemas AutónomosEnrutador de borde

SA terminal (Stub)

Dentro de un SA usamos el protocolo que nos plazca...

Area 1Area 2

Area 3

R1

R2

R3

R4 R5

R6 R7

R8

N1

N2

N3

N4

N5

N6

N7

Enlace con otro Sistema Autónomo

Area 0

R = Router  N = Network

Dentro de un SA: áreas OSPF

...también hay jerarquización, pero primero hablaremos de lo que sucede dentro de un área (o de un SA con una sola área)...

Resumen de OSPFResumen de OSPF OSPF es un protocolo de estado de enlaces OSPF es un protocolo de estado de enlaces  Se descubre a los vecinos usando un protocolo Se descubre a los vecinos usando un protocolo 

denominado Hellodenominado Hello Se establecen las adyacencias y las bases de datos Se establecen las adyacencias y las bases de datos 

de estados de enlaces son sincronizadasde estados de enlaces son sincronizadas Se propagan Anuncios de Estado de Enlaces (LSA) a Se propagan Anuncios de Estado de Enlaces (LSA) a 

través de intercambios entre vecinostravés de intercambios entre vecinos Se realiza una sincronización global de enlaces y en Se realiza una sincronización global de enlaces y en 

cada nodo se construye el grafo de la redcada nodo se construye el grafo de la red Se calculan caminos mínimos ylas tablas de Se calculan caminos mínimos ylas tablas de 

enrutamientoenrutamiento

Protocolo HELLOProtocolo HELLO

Descubriendo a los vecinosDescubriendo a los vecinos

El protocolo HELLO se El protocolo HELLO se usa para determinar el usa para determinar el estado de los enlaces estado de los enlaces con los vecinoscon los vecinos

Cada enrutador OSPF Cada enrutador OSPF envía un paquete HELLO envía un paquete HELLO por sus enlaces,  por sus enlaces,  típicamente cada 10 típicamente cada 10 segundossegundos

Descubre a sus vecinos Descubre a sus vecinos cuando recibe una cuando recibe una respuesta de éstosrespuesta de éstos

Si un enrutador no recibe Si un enrutador no recibe respuesta de su mensaje respuesta de su mensaje HELLO, se considera una HELLO, se considera una falla del enlace falla del enlace 

OSPF necesita de OSPF necesita de enlaces bidireccionales, enlaces bidireccionales, debido al protocolo debido al protocolo HELLOHELLO

En resumen, este En resumen, este protocolo es una especie protocolo es una especie de “ping”de “ping”

Paquete HelloPaquete Hello

11stst Neighbor ID (4 byte) Neighbor ID (4 byte)Backup Designated Router (4 byte)Backup Designated Router (4 byte)

Designated Router (4 byte)Designated Router (4 byte)Router Dead Interval (4 byte)Router Dead Interval (4 byte)

Router PriorityRouter PriorityOptionsOptionsHello Interval (2 byte)Hello Interval (2 byte)Network Mask ( 4byte)Network Mask ( 4byte)OSPF Header (24 byte)OSPF Header (24 byte)

IP Header (20 bytes)IP Header (20 bytes)

Link State Link State Advertisements (LSAs)Advertisements (LSAs)

Después del HELLO…

11

Una vez se establece la información de Una vez se establece la información de adyacencia, se procede al intercambio adyacencia, se procede al intercambio 

La información de intercambio se empaqueta en La información de intercambio se empaqueta en LSAs (Anuncios de Estado de Enlaces)LSAs (Anuncios de Estado de Enlaces)

Los anuncios se envían una vez y sólo se Los anuncios se envían una vez y sólo se reenvían si hay cambios (se puede configurar reenvían si hay cambios (se puede configurar reenvíos forzados)reenvíos forzados)

LSAsLSAs

Cada enrutador OSPF envía uno o más LSAs, que Cada enrutador OSPF envía uno o más LSAs, que describen la información local sobre enrutamientodescriben la información local sobre enrutamiento

Estos LSAs se distribuyen a los demás, para formar una Estos LSAs se distribuyen a los demás, para formar una base de datos similar en cada enrutadorbase de datos similar en cada enrutador

Los LSA típicamente se reenvían utilizando un Los LSA típicamente se reenvían utilizando un mecanismo de inundaciónmecanismo de inundación

Todos los LSAs de OSPF comienzan con un Todos los LSAs de OSPF comienzan con un encabezado común de 20 bytesencabezado común de 20 bytes

Inundación confiable (ejemplo)Inundación confiable (ejemplo)

10.1.1.1 10.1.1.610.1.1.4

10.1.1.510.1.1.3

10.1.1.2

u u

u

10.1.1.1 10.1.1.610.1.1.4

10.1.1.510.1.1.3

10.1.1.2

uu

uu

u

10.1.1.1 10.1.1.610.1.1.4

10.1.1.510.1.1.3

10.1.1.2

u

uu10.1.1.1 10.1.1.610.1.1.4

10.1.1.510.1.1.3

10.1.1.2

ack ackack

ack

ack

Time T1 Time T2

Time T3Time T4

Comunicación entre routers de OSPFComunicación entre routers de OSPF

OSPF se implementa OSPF se implementa directamente sobre IPdirectamente sobre IP

No usa TCP o UDPNo usa TCP o UDP Si el encabezado IP Si el encabezado IP 

indica que el protocolo es indica que el protocolo es el 89, entonces se trata el 89, entonces se trata de un paquete OSPFde un paquete OSPF

El enrutador identifica el El enrutador identifica el paquete como de OSPF paquete como de OSPF y extrae la información y extrae la información del campo de datosdel campo de datos

Se usa como dirección Se usa como dirección de destino el IP del de destino el IP del vecino o la dirección de vecino o la dirección de multicast de OSPFmulticast de OSPF

Los paquetes OSPF Los paquetes OSPF tienen una estructura tienen una estructura basada en un basada en un encabezado comúnencabezado común

Sincronización de la base de datosSincronización de la base de datos

Es MUY importante que todos Es MUY importante que todos los enrutadores tengan la los enrutadores tengan la misma informaciónmisma información

Hay dos formas generales de Hay dos formas generales de sincronizaciónsincronización

  

1.1. Sincronización inicial: Sincronización inicial: ocurre cuando dos ocurre cuando dos vecinos comienzan a vecinos comienzan a verseverse

3.3. Resincronización Resincronización continua: ocurre cuando continua: ocurre cuando se introducen nuevos se introducen nuevos LSA y se distribuyen LSA y se distribuyen entre los enrutadoresentre los enrutadores

Cálculo de rutasCálculo de rutas

Después de la sincronización Después de la sincronización se tiene la información  para se tiene la información  para calcular rutascalcular rutas

Cada enrutador construye un Cada enrutador construye un grafo con las adyacenciasgrafo con las adyacencias

Cada arista del grafo tiene un Cada arista del grafo tiene un costo, con las siguientes costo, con las siguientes restriccionesrestricciones

1)1)Rango de costo [0,65535]Rango de costo [0,65535]2)2)Los enlaces preferidos deben Los enlaces preferidos deben 

tener el menor costotener el menor costo3)3)La suma de costos debe tener La suma de costos debe tener 

sentidosentido

Cada enrutador debe Cada enrutador debe encontrar los caminos encontrar los caminos mínimos utilizando un mínimos utilizando un algoritmo sobre el grafoalgoritmo sobre el grafo

Típicamente se usa el Típicamente se usa el algoritmo de Dijkstra llamado algoritmo de Dijkstra llamado Shortest Path First (SPF) Shortest Path First (SPF) 

Algoritmo de DijkstraAlgoritmo de Dijkstra1)1)P={c}, CP={c}, Cc c = 0, y C= 0, y Cjj=c=cjcjc para  para j j ≠≠cc

2)2)Encontrar k Encontrar k ∉∉P tal que CP tal que Ck k 

es el mínimo de todos los j es el mínimo de todos los j 

∉∉PP

3)3)P = P U {k}, Si P contiene P = P U {k}, Si P contiene 

todos los nodos, entonces, todos los nodos, entonces, 

FINFIN

4)4)Para todo jPara todo j∉∉P actualizarP actualizar

CCj j = min(C= min(Cjj, C, Ckk+c+cjkjk))

Ir al paso 1Ir al paso 1

a f

e

d

c

b

3

3

33 33

1

1

1

1

10

105

5

6

6

Supongamos que el enrutador ‘c’  calcula  su SPF

Algoritmo de Dijstra (ejemplo)Algoritmo de Dijstra (ejemplo)

a f

e

d

c

b

3

3

33 33

1

1

1

1

10

105

5

6

6

VacíaVacíaff66

f(10,e,b)f(10,e,b)aa55

a(5,a); f(10,e,b)a(5,a); f(10,e,b)dd44

a(5,a); d(4,e,b); f(11,e)a(5,a); d(4,e,b); f(11,e)bb33

a(5,a); b(3,b); d(4,e); fa(5,a); b(3,b); d(4,e); f(11,e)(11,e)

ee22

a(5,a); b(3,b); e(1,e)a(5,a); b(3,b); e(1,e)cc11

Lista de posibles destinos  Lista de posibles destinos  (costo, salto)(costo, salto)

Dest. Dest. Añad.Añad.

IteraciónIteración