¿QUÉ ES OSPF?
Open Shortest Path First (OSPF), camino más corto primero, es un protocolo de red para encaminamiento jerárquico de pasarela interior o Interior Gateway Protocol (IGP), que usa el algoritmo SmoothWall Dijkstra enlace-estado (Link State Advertisement, LSA) para calcular la ruta idónea entre dos nodos cualesquiera de un sistema autónomo.
Su medida de métrica se denomina cost, y tiene en cuenta diversos parámetros tales como el ancho de banda y la congestión de los enlaces. OSPF construye además una base de datos enlace-estado (Link-State Database, LSDB) idéntica en todos los routers de la zona.
OSPF puede operar con seguridad usando MD5 para autenticar sus puntos antes de realizar nuevas rutas y antes de aceptar avisos de enlace-estado.
OSPF es probablemente el protocolo IGP más utilizado en redes grandes; IS-IS, otro protocolo de encaminamiento dinámico de enlace-estado, es más común en grandes proveedores de servicios. Como sucesor natural de RIP, acepta VLSM y CIDR desde su inicio. A lo largo del tiempo, se han ido creando nuevas versiones, como OSPFv3 que soporta IPv6 o las extensiones multidifusión para OSPF (MOSPF), aunque no están demasiado extendidas. OSPF puede "etiquetar" rutas y propagar esas etiquetas por otras rutas.
Una red OSPF se puede descomponer en regiones (áreas) más pequeñas. Hay un área especial llamada área backbone que forma la parte central de la red a la que se encuentran conectadas el resto de áreas de la misma. Las rutas entre las diferentes áreas circulan siempre por el backbone, por lo tanto todas las áreas deben conectar con el backbone. Si no es posible hacer una conexión directa con el backbone, se puede hacer un enlace virtual entre redes.
Los routers (también conocidos como encaminadores) en el mismo dominio de multidifusión o en el extremo de un enlace punto-a-punto forman enlaces cuando se descubren los unos a los otros. En un segmento de red Ethernet los routers eligen a un router designado (Designated Router, DR) y un router designado secundario o de copia (Backup Designated Router, BDR) que actúan como hubs para reducir el tráfico entre los diferentes routers. OSPF puede usar tanto multidifusiones (multicast) como unidifusiones (unicast) para enviar paquetes de bienvenida y actualizaciones de enlace-estado. Las direcciones de multidifusión usadas son 224.0.0.5 y 224.0.0.6. Al contrario que RIP o BGP, OSPF no usa ni TCP ni UDP, sino que se encapsula directamente sobre el protocolo IP poniendo "89" en el campo protocolo.
OSPF organiza un sistema autónomo (AS) en áreas. Estas áreas son grupos lógicos de routers cuya información se puede resumir para el resto de la red. Un área es una unidad de encaminamiento, es decir, todos los routers de la misma área mantienen la misma información topológica en su base de datos de estado-enlace (Link State Database): de esta forma, los cambios en una parte de la red no tienen por qué afectar a toda ella, y buena parte del tráfico puede ser "parcelado" en su área.
Recordad que cualquier duda o problema que tengáis, podéis escribir un comentario en la parte inferior del tutorial.
1.- ELEMENTOS UTILIZADOS EN ESTE TUTORIAL
2.- ESQUEMA DE RED OSPF
El esquema de la red que queremos emular es el que se ve en la imagen siguiente. Podemos ver que tenemos 3 Routers (MADRID, BARCELONA y SEVILLA) y en cada una de las redes hay 2 equipos clientes y un switch. Cada router puede estar pro ejemplo, en ciudades diferentes. Cada una de las redes tiene un direccionamiento diferente y los routers están unidos a través de cable Serial. El resto de conexiones son ethernet. Lo que queremos conseguir es: si se cae la conexión entre MADRID y BARCELONA, que los paquetes que vayan de MADRID a SEVILLA y luego a BARCELONA. Gracias a este enrutamiento dinámico tenemos un HA (High Availability) a nivel de conexiones de red.
En la última parte del tutorial explicaré como emular la "prioridad de segmentos de red" en función del ancho de banda disponible. Hasta aquí todo claro, ¿verdad?:
Esquema de red
En al siguiente tabla se muestra el direccionamiento que he usado para cada uno de los equipos del esquema de red. Hay que prestar especial atención a las direcciones IPs asignadas en los routers, ya que llevan 3 direcciones IPs en sus interfaces de red (2 Serials y una ethernet):
Direccionamiento de Red
3.- EQUIPOS CLIENTES
Añadiremos los equipos clientes (6 equipos) y configuraremos su interfaz de red con la dirección IP y la máscara de red de la tabla del punto 2. Se deberá prestar atención a la puerta de enlace de cada zona, ya que es diferente. La puerta de enlace de cada zona (MADRID, BARCELONA y SEVILLA) se corresponde con la dirección ip del router de dicha zona.
4.- SWITCHES
Los switches no necesitan configuración y solamente servirán para interconectar los equipos clientes (PCs) con su router.
5.- ROUTERS
La configuración de los 3 routers (modelo 1841) la vamos a realizar exclusivamente en modo Terminal. Recuerda que por defecto las 2 interfaces de red Serials no vienen por defecto en el router, tienes que añadirlas desde la interfaz Web en la pestaña Physical->WIC-2T:
El concepto es sencillo, tenemos que añadir a cada router las 3 redes a las que está conectado. Deberemos usar las Wildcards en lugar de la máscara de Red. El wildcard es al contrario que la máscara de red. Para una máscara de red 255.255.255.0 le corresponde un wildcard de 0.0.0.255.
El enrutamiento OSPF necesita un Process ID. Este ID va desde 1 hasta 65535. En este ejemplo usaré el Process ID 1 en todos los routers.
También necesitamos un ID de área entre 0 y 4294967295. Usaremos el valor 1 en todas las redes que configuremos para OSPF.
A continuación os dejo la configuración en modo consola para los tres routers:
ROUTER1 (Madrid):
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#router ospf 1
Router(config-router)#network 192.168.0.0 0.0.0.255 area 1
Router(config-router)#network 10.10.10.0 0.0.0.3 area 1
Router(config-router)#network 10.10.10.16 0.0.0.3 area 1
ROUTER2 (Barcelona):
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#router ospf 1
Router(config-router)#network 192.168.1.0 0.0.0.255 area 1
Router(config-router)#network 10.10.10.0 0.0.0.3 area 1
Router(config-router)#network 10.10.10.8 0.0.0.3 area 1
ROUTER3 (Sevilla):
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#router ospf 1
Router(config-router)#network 192.168.2.0 0.0.0.255 area 1
Router(config-router)#network 10.10.10.8 0.0.0.3 area 1
Router(config-router)#network 10.10.10.16 0.0.0.3 area 1
Si queremos comprobar las rutas dinámicas de OSPF configuradas en los routers, debemos salir del modo de configuración y ejecutar el siguiente comando:
Router#show ip route ospf
ROUTER1 (Madrid):
Router#show ip route ospf
10.0.0.0/30 is subnetted, 3 subnets
O 10.10.10.8 [110/128] via 10.10.10.18, 00:53:14, Serial0/1/1
[110/128] via 10.10.10.2, 00:53:14, Serial0/1/0
O 192.168.1.0 [110/65] via 10.10.10.2, 00:53:14, Serial0/1/0
O 192.168.2.0 [110/65] via 10.10.10.18, 00:53:14, Serial0/1/1
ROUTER2 (Barcelona):
Router#show ip route ospf
10.0.0.0/30 is subnetted, 3 subnets
O 10.10.10.16 [110/128] via 10.10.10.10, 01:00:36, Serial0/1/1
[110/128] via 10.10.10.1, 01:00:36, Serial0/1/0
O 192.168.0.0 [110/65] via 10.10.10.1, 01:00:36, Serial0/1/0
O 192.168.2.0 [110/65] via 10.10.10.10, 01:00:36, Serial0/1/1
ROUTER3 (Sevilla):
Router#show ip route ospf
10.0.0.0/30 is subnetted, 3 subnets
O 10.10.10.16 [110/128] via 10.10.10.10, 01:00:36, Serial0/1/1
[110/128] via 10.10.10.1, 01:00:36, Serial0/1/0
O 192.168.0.0 [110/65] via 10.10.10.1, 01:00:36, Serial0/1/0
O 192.168.2.0 [110/65] via 10.10.10.10, 01:00:36, Serial0/1/1
6.- PROBAR EL ENRUTAMIENTO OSPF
Para comprobar que el routing está funcionando correctamente, entraremos en la Terminal de PC0 de MADRID ( por ejemplo) y haremos Ping al resto de equipos clientes en BARCELONA y SEVILLA. Posiblemente, el primer y segundo ping fallen. Esto es debido a que los routers tienen que aprender las rutas, pero luego todo irá a la perfección.
Aquí os dejo un ejemplo donde se puede ver que funciona perfectamente:
Prueba genérica de routing con PING
Ahora, si queremos probar que el routing dinámico funciona correctamente, podemos "tirar" el enlace (desactivado una de las interfaces de red) entre MADRID y BARCELONA y veremos como el Ping sigue funcionando a través de SEVILLA. Podemos hacer un tracertroute para ver por que equipos va el tráfico TCP/IP ó podemos hacerlo desde el modo de simulación.
En la siguiente imagen podemos ver el antes y el después de desactivar el enlace entre MADRID y BARCELONA. Como se puede ver, al tirar el enlaces, en el segundo traceroute el tráfico va por SEVILLA:
Antes y después de tirar el enlace
7.- PRUEBAS FINALES DE OSPF
Por defecto, OSPF viaja a través del camino más corto. Si hacemos un PING desde el PC0 de MADRID hasta PC2 de BARCELONA, el tráfico irá siempre desde el router de MADRID hasta el router de BARCELONA, nunca irá pro SEVILLA a no ser que el enlace entre MADRID y BARCELONA esté caído.
Pero OSPF tiene otra característica, cuanto más ancho de banda disponga un enlace, éste será prioritario aunque el camino sea mas largo.
Vamos a configurar el ancho de banda en cada tramo con la opción de "bandwidth" en cada una de las interfaces.
Aunque en las imágenes podemos ver 50/100/100, en realidad no funciona bien porque la unidad es el kilobits y packet tracer a veces no calcula bien la ruta, por tanto los valores usados reales han sido: 50 y 10000 en lugar de 50 y 100.
Asignando prioridad a los enlaces.
En el siguiente gif animado se puede ver como viaja el tráfico por el camino más corto, con todos los enlaces funcionando y sin asignar ancho de banda a las conexiones entre routers:
Ejemplo inicial
Si tiramos el enlace entre MADRID y BARCELONA, podemos ver como el tráfico viaja por SEVILLA hasta llegar a su destino en el PC2 de Barcelona:
Enlace Madrid Barcelona caído
Por último, si configuramos el ancho de banda de los enlaces, podemos ver como efectivamente el tráfico viaja por el camino más largo pero con el mayor ancho de banda disponible:
Tráfico con prioridad de ancho de banda
Para este último ejemplo, debemos ejecutar los siguientes comandos en los 3 routers:
ROUTER1 (Madrid):
Router>en
Router#config
Configuring from terminal, memory, or network [terminal]? terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface serial 0/1/0
Router(config-if)#bandwidth 50
Router(config-if)#interface serial 0/1/1
Router(config-if)#bandwidth 10000
Router(config-if)#
ROUTER2 (Barcelona):
Router>en
Router#config
Configuring from terminal, memory, or network [terminal]? terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface serial 0/1/0
Router(config-if)#bandwidth 50
Router(config-if)#interface serial 0/1/1
Router(config-if)#bandwidth 10000
Router(config-if)#
ROUTER3 (Sevilla):
Router>en
Router#config
Configuring from terminal, memory, or network [terminal]? terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface serial 0/1/0
Router(config-if)#bandwidth 10000
Router(config-if)#interface serial 0/1/1
Router(config-if)#bandwidth 10000
Router(config-if)#
¿Sencillo, verdad?
ENJOY!