OSPF - Parte 1

Share
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:

Topology-01.png

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:

Topology-02.png

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 :)

OSPF-01.png

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                    up

Ahora 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)#end

NOTA: 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/0

Hell 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/1

Como 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!