• No se han encontrado resultados

Funcionamiento de OSPF en un entorno broadcast multiaccess

7.4 OPEN SHORTEST PATH FIRST (OSPF)

7.4.2 Funcionamiento de OSPF en un entorno broadcast multiaccess

En este entorno puede haber varios routers conectados (más de dos) y todos reciben las tramas broadcast, como Ethernet.

Los routers siempre tienen que crear una relación de vecinos para mantener comunicación OSPF. Esto se hace mediante el protocolo Hello. Todos los routers mandan periódicamente un paquete Hello a la dirección multicast 224.0.0.5 (todos los routers que hablan OSPF). En este paquete se incluye:

 Router ID: Identifica al router dentro de un sistema autónomo. Se usa la dirección más alta de un interface activo en el router.

 Intervalos Hello y Dead: Es la frecuencia con la que se mandan paquetes de hello (por defecto 10 segundos) y el tiempo que se espera a recibir la respuesta (por defecto 4 veces el tiempo hello). Deben ser iguales en los routers

 Neighbors: Lista de los Router ID de los vecinos con los que ya se ha establecido relación. Si el propio router se ve en la lista, sabe que ya existe relación de vecino con él.

 Area-ID: Para hablarse, dos routers deben pertenecer a la misma área, que se indica aquí.  Router Priority: Indica la prioridad del router para ser elegido DR o BDR

 DR y BDR IP: Indica las direcciones de los routers DB y BDR (si se conocen)

 Password: Para asegurar que se habla OSPF con un router autenticado. Debe ser la misma en ambos equipos.

 Stub area flag: Los dos routers deben tener la misma. Indica que se trata de un área stub. Los routers DR (Designated Router) y BDR (Backup Designated Router) se establecen para que en un segmento con varios routers no tengan que establecer relación de vecino todos con todos. El funcionamiento es que todos ellos establecen relación con el DR y con el BDR. El BDR no hace nada mientras el DR está activo. El DR se encarga de distribuir a todos los demás routers los cambios que cualquiera de ellos indique en sus enlaces. La relación entre cualquier router y el DR o el BDR se llama adyacencia

 Para elegir al DR y al BDR, se fijan en el valor de Router Priority del paquete Hello. El router con mayor prioridad es el DR y el siguiente es el BDR. Si son iguales (por defecto es 1 y hay que configurarla) se elige el Router ID más alto como DR y el siguiente como BDR. Un router en el que se haya configurado prioridad cero no puede ser ni DR ni BDR.

 Una vez que se ha elegido al DR y al BDR, estos no cambian nunca, aunque lo hagan las prioridades o las direcciones IP. Cuando el DR falla, el BDR pasa a ser DR, y se elige a un nuevo BDR. Si se cae el BDR, se elige a un nuevo BDR.

 Esto es por cada segmento, por lo que un router puede ser DR en un segmento y no serlo en otra interface.

Cuando un router OSPF se conecta en una red, comienza el proceso de intercambio, usando el protocolo Hello. Cuando la red se levanta al mismo tiempo, el proceso es el siguiente:

 Estado Init: Los routers mandan paquetes hello por todos los interfaces a la dirección 224.0.0.5 (todos los routers OSPF). Los routers que reciben estos paquetes le añaden al nuevo en la lista de vecinos, y le mandan un paquete en formato unicast, donde ya se encuentra incluido en al lista de vecinos. Aún no se ha establecido una comunicación bidireccional.

 Estado Two-Way: Se establece una comunicación bidireccional (unicast), al recibir el router un paquete hello que le incluye en su lista de vecinos. Todos los routers tienen en su lista de vecinos a todos los demás. Se establece quien es el DR y el BDR. A partir de este momento, mandan un paquete hello cada 10 segundos. Los routers que no llegan a ser adyacentes (por ejemplo en un entorno broadcast) se quedan en este estado.

 Estado Exstart: Los routers establecen una relación maestro/esclavo (el que tenga mayor Router ID es el maestro). Determinan el número de secuencia inicial para la DBD (Database descrption).

 Estado Exchange: Los router se cambian sus DBD, donde se incluye toda la información de estados de enlace de sus vecinos (la tabla de LSA). Estas DBD son confirmadas con LSAck.  Estado Loading: Cuando lo han recibido, si en la DBD hay LSA que no conocía, manda un

LSR (Link-state request), solicitando más información para el LSA. EL otro devuelve un LSU (Link State Update) para ese LSA, que vuelve a ser confirmado con un LSAck. Este proceso se repite hasta que ambos conocen por completo la tabla de LSA del otro.

 Estado Full: Una vez que las tablas de LSA son iguales, el proceso ha finalizado.

Una vez que la tabla de estados de enlace está completada, el router inicia el algoritmo SPF o Dijkstra, que, a partir de la tabla de estados de enlace genera la tabla de routing. Mientras que está calculando, se utiliza la tabla que ya existiera, y se actualiza toda de golpe una vez que ha finalizado su cálculo. Para la métrica, se basa en el coste de cada interface. El coste es inversamente proporcional a la velocidad del interface (coste = 100.000.000/ancho de banda). Si está directamente conectado, coste=0. Si encuentra caminos del mismo coste al mismo destino, realiza balanceo de carga hasta por seis caminos diferentes.

Algunas veces una línea serie comienza a hacer flapping, y el algoritmo consumiría mucho CPU en calcular las tablas de rutas. Por ello, cuando se recibe un LSA, el router espera un tiempo (spf- delay, 5 segundos por defecto) en ejecutar el algoritmo. Además, éste no puede ser ejecutado dos veces seguidas si no pasa otro periodo de tiempo (spf-holdtime, 10 segundos por defectos). El comando para modificar estos tiempos es timers spf [spf-delay] [spf-holdtime].

Para mantener la topología de la red en todos los routers, utilizan un proceso llamado flooding:  Cuando un router detecta un cambio en uno de sus enlaces, manda un LSU, que incluye el LSA

a la dirección 224.0.0.6 (todos los DR y BDR). El mismo paquete de LSU puede contener varios LSA.

 El DR confirma la recepción del mismo y se lo manda a la dirección multicast 224.0.0.5, para que todos los demás lo reciban. Cada router, confirma al DR la recepción del paquete, y actualiza su tabla de rutas.

 Además de informar de cambios, cada 30 minutos se intercambian la tabla LSA entera entre routers adyacentes. Si en una hora no se ha actualizado un LSA, éste es eliminado.

Cada LSA tiene su propio aging timer, que por defecto es de 30 minutos. Cuando finaliza, el router propietario de este LSA envía un LSU a toda la red, para indicar que aún está activo. Cuando otro router lo recibe:

 Si no existía, la añade a su tabla, manda un LSAck al DR, reenvía la información a otros routers y calcula su tabla de routing.

 Si ya existía, pero la trama recibida es más antigua que la información que tenía, manda un LSU al origen con la nueva información.