OSPF - Parte 1
Es tiempo de ver uno de los protocolos más poderosos de la capa 3: OSPF.
Como idea inicial cabe resaltar que este tema algo extenso y para evitar confundirse o marearse con mucha teoría, trataremos de explicarlo lo más simple posible :)
Let’s rock!
Introduccion
OSPF significa Open Shortest Path First, esta basado en el algoritmo de Dijkstra y su definición más actual para IPv4 se encuentra en el RFC 2328 (lo puedes encontrar aquí)
Al ser un protocolo bastante potente y de código abierto, es bastante común encontrarlo en los routers de distintos vendedores como Cisco, Juniper, Brocade, etc.
Antes de comenzar a configurar los equipos, primero hay que sentar bien las bases. Lo que haremos será juntar los elementos que hacen que OSPF funcione.
Reuniendo información
- Número de proceso: Al configurar OSPF debemos indicar en qué número de proceso se está ejecutando, este valor puede ser diferente entre routers.
- Area: Asi como vimos el sistema autónomo en EIGRP, OSPF tiene el numero de Area. Puedes usar cualquier número para esto, pero en primera instancia se requiere configurar el Area 0 el cuál identificará el conjunto de routers principales para la topología.
- Subred: Para que los routers puedan volverse vecinos, recuerda que ambas interfaces deben estar en la misma subred :)
- Router-id: Es una direccion IP que identifica al router
- Tipo de router: En OSPF identifcaremos dos tipos de routers: el DR y el BRD
Ahora diras: “Hey, espera! Quiero saber mas sobre ese DR y BRD!”
No te preocupes, hablaremos sobre ello, pero primero veremos que es el router-id :D
Router-id
Es una direccion IPv4 que se configura en los routers que están ejecutando OSPF. Este router-id puede ser configurado manualmente, sin embargo, existe un criterio de selección, veamos como es:
- Si ya se tiene configurado un router-id ese sera el elegido
- Si no hay un router-id configurado, se elegirá a la IP más alta de las interfaces loopback
- Si no existen loopbacks, se elegirá a la IP más alta configurada en las interfaces
Ahora veamos qué es DR y BDR.
Tipos de routers
OSPF es diferente de RIP y de EIGRP, en esos protocolos todos los routers enviaban la información hacia a todos, algo asi:

Como puedes ver, todos los routers que están ejecutando RIP y EIGRP se envían las actualizaciones de enrutamiento entre sí, esto en una red muy grande puede ser un poco abrumador pues nos estamos llenando de muchos paquetes duplicados.
OSPF es diferente, este protocolo designa un router que sea encargado de enviar la informacion, asi no inundaremos la red con paquetes innecesarios:

En este caso este router sera llamado DR (Designated Router).
Y el BDR? Pues en caso de que el DR no esté disponible entonces el BDR (Backup Designated Router) entrar en accion y se volvera el nuevo DR.
NOTA: El DR sera aquel que posea el router-id más alto.
Laboratorio
Y como yo se que a ti te gusta estar configurando en lugar de estar leyendo todo el floro, veamos un pequeño laboratorio para implementar OSPF básico :)

Usaremos las siguientes IPs en los routers:
R1#show ip int bri | ex unassigned
Interface IP-Address OK? Method Status Protocol
Ethernet2/0 13.0.0.1 YES manual up up
Ethernet2/1 14.0.0.1 YES manual up up
Loopback0 1.1.1.1 YES manual up upR2#show ip int bri | ex unassigned
Interface IP-Address OK? Method Status Protocol
Ethernet2/0 24.0.0.2 YES manual up up
Ethernet2/1 23.0.0.2 YES manual up up
Loopback0 2.2.2.2 YES manual up upR3#show ip int bri | ex unassigned
Interface IP-Address OK? Method Status Protocol
Ethernet2/0 13.0.0.3 YES manual up up
Ethernet2/1 23.0.0.3 YES manual up up
Loopback0 3.3.3.3 YES manual up upR4#show ip int bri | ex unassigned
Interface IP-Address OK? Method Status Protocol
Ethernet2/0 24.0.0.4 YES manual up up
Ethernet2/1 14.0.0.4 YES manual up up
Loopback0 4.4.4.4 YES manual up upAhora configuremos OSPF:
R1(config)#router ospf 1
R1(config-router)#network 13.0.0.1 0.0.0.0 area 0
R1(config-router)#network 14.0.0.1 0.0.0.0 area 0
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0
R1(config-router)#end
R2(config)#router ospf 1
R2(config-router)#network 24.0.0.2 0.0.0.0 area 0
R2(config-router)#network 23.0.0.2 0.0.0.0 area 0
R2(config-router)#network 2.2.2.2 0.0.0.0 area 0
R2(config-router)#end
R3(config)#router ospf 1
R3(config-router)#network 13.0.0.3 0.0.0.0 area 0
R3(config-router)#network 23.0.0.3 0.0.0.0 area 0
R3(config-router)#network 3.3.3.3 0.0.0.0 area 0
R3(config-router)#end
R4(config)#router ospf 1
R4(config-router)#network 24.0.0.4 0.0.0.0 area 0
R4(config-router)#network 14.0.0.4 0.0.0.0 area 0
R4(config-router)#network 4.4.4.4 0.0.0.0 area 0
R4(config-router)#endNOTA: Si has seguido las entradas de EIGRP - Part 1 te darás cuenta que la configuración es muy similar a EIGRP, solo que este caso debemos especificar el Area en el que se encuentra (recordemos que el área principal o default es 0) y no es necesario deshabilitar auto-summary pues OSPF no la utiliza de todos modos :)
Cool huh? Y asi también como EIGRP, el comando network nos indica en que interfaces estara ejecutando OSPF :D
Veamos ahora si tenemos vecinos OSPF en cada router:
R1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
4.4.4.4 1 FULL/BDR 00:00:38 14.0.0.4 Ethernet2/1
3.3.3.3 1 FULL/BDR 00:00:31 13.0.0.3 Ethernet2/0R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
3.3.3.3 1 FULL/BDR 00:00:39 23.0.0.3 Ethernet2/1
4.4.4.4 1 FULL/BDR 00:00:33 24.0.0.4 Ethernet2/0R3#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 1 FULL/DR 00:00:33 23.0.0.2 Ethernet2/1
1.1.1.1 1 FULL/DR 00:00:32 13.0.0.1 Ethernet2/0R4#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 FULL/DR 00:00:38 14.0.0.1 Ethernet2/1
2.2.2.2 1 FULL/DR 00:00:36 24.0.0.2 Ethernet2/0Hell yeah!! Tenemos nuestros vecinos configurados \m/
Veamos la tabla de enrutamiento en R1, como tarea para tu casa queda ver como se ven las tablas de R2, R3 y R4:
R1#show ip route ospf
Gateway of last resort is not set
2.0.0.0/32 is subnetted, 1 subnets
O 2.2.2.2 [110/21] via 14.0.0.4, 00:15:59, Ethernet2/1
[110/21] via 13.0.0.3, 00:17:06, Ethernet2/0
3.0.0.0/32 is subnetted, 1 subnets
O 3.3.3.3 [110/11] via 13.0.0.3, 00:17:06, Ethernet2/0
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [110/11] via 14.0.0.4, 00:15:59, Ethernet2/1
23.0.0.0/29 is subnetted, 1 subnets
O 23.0.0.0 [110/20] via 13.0.0.3, 00:17:06, Ethernet2/0
24.0.0.0/29 is subnetted, 1 subnets
O 24.0.0.0 [110/20] via 14.0.0.4, 00:15:59, Ethernet2/1Como podemos observar, las subredes aprendidas tienen el prefijo “O”, lo cuál significa que aprendió la subred por OSPF
Y como vemos si es un DR o BDR? Si eres observador ya lo habrás notado...y sino, ponte gotas en los ojos y regresa a ver los vecinos OSPF, te llevarás una sorpresa :D
Conclusion
Con esto finalizamos la primera parte de este increíble protocolo. De más está decir que esta solo es una pequeña introducción básica, luego veremos cosas más avanzadas :D
Y no te olvides de comentar si tienes alguna duda, inquietud, insulto o demás, todo es bienvenido para aprender.
May the force be with you!