OSPF (Open Shortest Path First) es un protocolo de enrutamiento para redes IP, desarrollado por el IGP (Interior Gateway Protocol) working group del IETF (Internet Engineering Task Force). Este grupo fue creado en 1988 para diseñar un IGP basado en el algoritmo del camino mas corto. OSPF fue creado porque el protocolo RIP es incapaz de servir a un elevado numero de redes heterogeneas.
Este protocolo, es resultado
del esfuerzo de Bolt, Beranek i Newman, creadores del algoritmo SPF
(Shortest Path First) que en 1978 crearon para ARPANET.
Tiene
dos caracteristicas principales: La primera es que el protocolo es
abierto, lo que significa que sus especificaciones son de dominio
publico. La segunda es que OSPF se sustenta sobre el algoritmo SPF
conocido como el algoritmo de Dijkstra (es el nombre de su creador) que
es un muy buen metodo para encontrar el camino mas corto.
OSPF propone el uso de
rutas más cortas y accesibles mediante la construcción de un mapa de la
red mediante bases de datos con información sobre sistemas locales y
vecinos. De esta manera es capaz de calcular que distancia hay para
cada posible ruta y luego escoge que ruta es la mas corta para acceder
a su destino. Para calcular que ruta es la mas rapida tambien se tiene
en cuenta por donde pasa y el estado de los enlaces, cosa que por
ejemplo, en el caso de RIP se calcula sólo la distancia y no el trafico
del enlace. Por esta causa OSPF es un protocolo de encaminamiento
diseñado para redes con crecimiento constante y capaz de manejar una
tabla de encaminamiento distribuida y de rapida propagación.
Entre las caracteristicas más resaltantes de OSPF estan:
- Rápida detección de cambios en la topología y restablecimiento muy rápido de rutas sin bucles.
- Poca sobrecarga, usa actualizaciones que informan de los cambios de rutas.
- División de tráfico por varias rutas equivalentes.
- Encaminamiento según el tipo de servicio.
- Uso de multienvio en las redes de área local.
- Mascaras de subred y superred.
- Autentificación.
Areas en OSPF
Un área es un conjunto de redes y host contiguos, con sus respectivos routers e interfaces. Un sistema autónomo que use OSPF está construido por una o más áreas. Cada área tiene asignado un número. El área 0 está conectada al Backbone que enlaza con el resto de áreas y agrupa al resto de sistemas autónomos.
El enrutamiento dentro de un área se basa en un mapa completo del estado de los enlaces del área ya que los routers solo necesitan conocer información del area a la que pertenecen. Eso permite (y es una de las ventajas de OSPF) un fácil crecimiento de la red.
Todos los routers que estan
implementados con OSPF de una misma área, mantienen una base de datos
de las rutas a traves de los nodos (routers) de esa área. La base de
datos se usa para construir el mapa de esa área y contiene el estado de
todas las rutas, interfaces útiles de los routers, las redes conectadas
y sus routers adyacentes. Siempre que ocurre un cambio, la información
se propaga por toda el área. De esta forma en un periodo de tiempo muy
corto, todos los routers tienen la información acutalizada y estan en
un estado óptimo para cualquier petición. Asi, si se produce un
problema, por ejemplo que un router tiene demasiada faena o se
estropea, el router vecino informará a todos los demas routers que ese
camino se encuentra inaccesible. La cosa seguira asi hasta que el
router con el problema se recupere. En estos casos es donde se ve la
importancia de una de las características del método: La velocidad en
la que se propaga la base de datos. Si el tiempo en que se propaga la
información fuese mas lento, haria que se perdiera un monton de
información ya que hasta que no le llegase el cambio en el estado,
daria tiempo a enviar un monton de mensaje que quedarian atrapados en
ese router.
Cuando un
router se conecta a la red, obtiene una copia de la base de datos
actual, tras esto, solo se comunicaran los cambios. Esto hace más
óptimo a OSPF, ya que no tiene que enviar toda la base de datos entera.
Fronteras y limites de OSPF
El backbone contiene todos los routers que pertenecen a múltiples áreas, así como las redes y los routers que no estan asignados a ninguna área. Uno de estos casos especiales es el router frontera (RF) que pertenece a una o más áreas y al backbone. Si el sistema autónomo está conectado el mundo exterior, los RF pueden aprender rutas a redes que son externas al sistema autónomo. Los RF tiene información completa de las áreas a las que esta conectado ya sea la del Backbone o las de otros sistemas autonomos. Los RF indican a otros routers del backbone lo lejos que están de las redes dentro de su propia área. De esta forma todos los RF pueden calcular las distancias a destinos fuera de sus propias áreas y transmitir esta información dentro de sus propias áreas. Los resúmenes incluyen un identificador de red, subred o superred, una máscara de red y la distancia desde el router a la red externa. Para diferenciar entre la información de la red própia de la de la red externa hay dos tipos de formato: El formato 1 es el que describe el estado de los enlaces de la propia area y el formato 2 que son para describir el estado de areas que estan a larga distancia y se calculan con un mayor orden de magnitud.
Mensajes de Saludo
Cada router incluido en el
protocolo OSPF tiene un identificador único que lo utiliza en los
mensajes que envia. Normalmente corresponde con la parte menor de la
direccion IP del router. Los routers, enviar de forma periodica,
mensajes de saludo (Hello) para que el resto de los routers sepan que
todavia siguen activos. Una de las rezones por la que funcionan los
mensajes de saludo es que un mensaje contiene la lista de todos los
identificadores de los saludos cuyos vecinos escucharan el emisor, así
los routers conocen si se les está escuchando en la red.
En
una red multiacceso, los mensajes de saludo también se usan para
identificar a un router designado. El router designado cumple dos
funciones:
. Es
responsable de la actualización fiable de sus vecinos adyacentes con la
información más reciente de la topología de la red y
. Crea avisos de enlaces de red con la lista de todos los routers conectados a la red multiacceso.
El router designado A actúa como experto local y mantiene actualizada la topología local completa. Después comunica a los routers adyacentes la información. B, C y D mantienen sus propias bases de datos sincronizadas hablando con A. No tienen que hablar con los otros, así se reduce drásticamente el tráfico de información. Dos encaminadores que sincronizan sus bases de datos uno con otro se llaman adyacentes. B y C son vecinos, pero no son adyacentes el uno del otro debido a que consultan con A. La perdida de un encaminador designado podría ser muy perjudicial. Por eso, siempre se elige un encaminador designado de respaldo y siempre está listo para reemplazarle inmediatamente.
Inicialización de una Base de Datos de encaminamiento
Utilizando el dibujo
anterior vamos a explicar como funciona la inicializacion de la base de
datos de un router que se acaba de conectar. Supongamos que el router B
acaba de arrancar .Lo primero que hace B es escuchar los mensajes de
saludo, descubrir quienes son sus vecinos y descubrir que el router A
es el router designado. A partir de aqui, se establece un dialogo
constante entre A y B. Los mensajes que se intercambian son mensajes de
descripción de bases de datos. Estos mensajes contienen una lista de lo
que tiene cada uno en su base de datos. Cada elemento tiene un número
de secuencia que se usa para establecer qué router tiene la información
más reciente sobre dicho elemento. El número de secuencia de una
entrada se incrementa siempre que se produce una actualizaciónde, asi
se puede saber si la información que tiene un router hace falta que se
actualice o si esa información es recien actualizada y hay que
actualizar la información del router designado. Una vez finalizada el
intercambio de información, ambos conoceran:
. Qué elementos no están todavía en su base de datos local.
. Qué elementos presentes son antiguos y necesitan que se actualicen.
Se usan mensajes de petición de estado del enlace (Link State Request) para solicitar todas las entradas que necesiten una actualización. Los mensajes de actualización del estado del enlace (Links State Update) son las respuestas a las peticiones. Tras un intercambio de información, con confirmaciones del estado del enlace, también se usan para informar de los cambios en la topología del área. La actualización de la topología se expande por el área de manera que todas las bases de datos se mantengan sincronizadas.
Tipos de mensajes OSPF
Para finalizar comentaré los tipos de mensajes del protocolo OSPF que se han descrito:
. Saludo: Se usa para
identificar a los vecinos, es decir, routers adyacentes en un área para
elegir un router designado para una red multienvio, para encontrar un
router designado existente y para enviar señales de "Estoy aquí".
.
Descripción de la base de datos Durante la inicialización: Se usa para
intercambiar información de manera que un router puede descubrir los
datos que le faltan en la base de datos.
.
Petición del estado del enlace: Se usa para pedir datos que un router
se ha dado cuenta que le faltan en su base de datos o que están
obsoletos.
.
Actualización del estado del enlace: Se usa como respuesta a los
mensajes de Petición del estado del enlace y también para informar
dinámicamente de los cambios en la topología de la red.
.
ACK de estado del enlace Se usa para confirmar la recepción de una
Actualización del estado del enlace. El emisor retransmitirá hasta que
se confirme.