OSPF (Open Shortest Path First) es un protocolo de ruteo desarrollado por la IETF (Internet Engineering Task Force) hacia los finales de la década de los 80’s, como una respuesta a las cada vez más notables limitaciones de los protocolos vector‐distancia. La IETF formó en 1988 un grupo para el desarrollo de un protocolo de ruteo para redes IP grandes y heterogéneas. Este intento de mejorar la escalabilidad de las redes tuvo como resultado la versión de un protocolo de ruteo interior de estado de enlace de la IETF, el protocolo OSPF.
La primera especificación de OSPF fue publicada en el RFC 1131 en octubre de 1989, que prontamente se hizo obsoleta. Fue entonces liberada una nueva especificación sustancialmente diferente en el RFC 1247, que fue llamada OSPF versión 2, y con subsecuentes modificaciones en los RFC 1583, 2178 y 2328, siendo este último documento el correspondiente a la versión 2 actual.
OSPF es un protocolo que con el paso de los años ha sido ampliamente desplegado a través de la Internet. Así también las tecnologías de redes han evolucionado, por lo que OSPF ha tenido que ser extendido para soportar nuevas opciones. Adicionalmente se han ido creando nuevas versiones, como lo es la actualización OSPFv3 que soporta el enrutamiento de IPv6, especificada en el RFC 5340 (RFC 5340 – OSPF for IPv6), así como extensiones de este protocolo entre las que se encuentran la extensión Multicast OSPF (MOSPF), aunque ya en desuso, fue creada para el soporte de ruteo multidifusión (RFC 1584 ‐ Multicast Extensions to OSPF), que permite a los routers compartir información de membresías de grupos; y la extensión OSPF‐TE (RFC 3630 – Traffic Engineering (TE) Extensions to OSPF Version 2) que extiende la idea de preferencia de rutas para ingeniería de tráfico, agregando propiedades dinámicas al algoritmo del cálculo de rutas como son el ancho de banda reservable máximo, el ancho de banda no reservado y el ancho de banda disponible. OSPF‐TE es comúnmente usado dentro de las redes MPLS y GMPLS, como un medio para determinar la topología sobre la que las rutas MPLS pueden ser establecidas, y entonces usa su propio ajuste de ruta y protocolos de reenvío una vez que tiene el mapa completo de ruteo IP.
Con excelentes capacidades de desempeño, flexibilidad en el soporte de direccionamiento IP y escalabilidad, la tecnología de OSPF involucra un relativo grado de complejidad, lo que es considerado como una de sus principales desventajas. Esto debido a que implica para los administradores el manejo de una gran cantidad de información y conceptos, una apropiada planeación, y mayor dificultad en configuración y resolución de problemas. Asociado a este protocolo existen una extensa literatura – se pueden encontrar volúmenes completos –, así como gran cantidad de sitios en la web con información relacionada. Este capítulo por lo tanto, trata solo de incluir los conceptos principales de OSPF, esperando ser material que permita describir en forma básica los componentes y operación de este protocolo de enrutamiento.
Características de OSPF
OSPF tiene dos características principales:
Es un protocolo abierto, es decir, que sus especificaciones son del dominio público, descritas en un documento RFC (Request For Comment). OSPF se ha convertido en un IGP estándar en la industria de las telecomunicaciones, y debido a que es soportado por la mayoría de los routers permite que este protocolo funcione en ambientes multifabricante, ofreciendo así interoperabilidad entre equipos de muy diversas características. Incluso este protocolo no propietario se encuentra disponible en software libre como lo es Quagga o Zebra, que consisten en suites de ruteo para sistemas Linux.
Está basado en el algoritmo SPF, una fórmula matemática creada en 1956 por el científico holandés Edsger W. Dijkstra. Este algoritmo no fue desarrollado específicamente para propósitos de telecomunicaciones, y aunque no fue considerado por su autor como algo
notable en su momento, hoy en día tiene aplicación en la construcción de caminos, en el ruteo de telecomunicaciones y en la industria aérea.
Dentro de otras características que podemos mencionar de éste protocolo están:
Es un protocolo jerárquico. A diferencia de protocolos con “topologías” planas como RIP, OSPF maneja la posibilidad de estructurar la red en segmentos lógicos, lo que representa un concepto clave en su funcionamiento e implementación.
Convergencia rápida. En caso de producirse algún cambió en la red, rápidamente son desencadenadas actualizaciones en respuesta a estos eventos. Con esta característica, OSPF no es susceptible a “loops” de ruteo.
Classless. Una característica importante para la optimización del espacio de direccionamiento IPv4, permitiendo la designación de segmentos de direcciones con dimensiones acordes a los requerimientos de las redes locales y de los enlaces con un soporte bien integrado de VLSM, así como la optimización tablas de ruteo y agregación de múltiples rutas a través de CIDR. Escalable. Está diseñado para la distribución de información de ruteo en sistemas autónomos
de grandes dimensiones y heterogéneos. OSPF no tiene prácticamente limitantes en el tamaño a las redes a las que puede proporcionar el soporte de ruteo, debido a la estructura jerárquica de este protocolo.
Seguridad. Soporta autenticación en texto plano o con el algoritmo MD5 en las actualizaciones de ruteo.
Sin embargo, como un protocolo expresamente diseñado para los entornos de Internet, solamente soporta el protocolo IP, y no otros protocolos ruteables como IPX o AppleTalk.
Términos Empleados en OSPF
Así como ocurre en muchos otros protocolos, OSPF tiene una terminología con significados específicos, que se presenta a continuación con el fin de familiarizarse con los conceptos en esta tecnología, además de que dicha terminología es constantemente utilizada en las secciones posteriores este documento.
Router. Un conmutador de paquetes del Protocolo de Internet en la capa 3 del Modelo OSI.
Enlace (Link). Una interfaz de un router asignada a una determinada red. Un enlace en OSPF es entonces sinónimo de una interfaz, que constituye la conexión entre el router y una red que este dispositivo integra.
Estado de Enlace (Link State). Es la descripción de una interfaz, como es la dirección IP y máscara de subred, costo de la interfaz, tipo de red que conecta, etc.
AS ‐ Sistema Autónomo (Autonomous System). Un grupo de routers que intercambian información de enrutamiento mediante un protocolo común.
Router ID. El “Identificador de Router” es un número de 32 bits asignado a cada router que está ejecutando el protocolo OSPF, el cual lo identifica de forma única dentro de un Sistema Autónomo. Red. Como es descrito en el RFC 2328, una red en OSPF es una red/subred/superred IP. Es posible que una red física tenga asignados múltiples números de red/subred.
Máscara de Red. De acuerdo a lo especificado en el RFC 2328, la máscara de red es un número de 32 bits que indica el rango de direcciones IP que residen en una sola red/subred/superred.
Routers Vecinos (Neighbor). Dos routers que tienten interfaces conectadas a una red común y que están asignadas a la misma área.
Adyacencia. Una relación formada entre routers vecinos seleccionados, con el propósito de intercambiar información de enrutamiento. Se puede decir que dos routers son adyacentes cuando han alcanzado un intercambio de bases de datos de enrutamiento de forma exitosa. No todos los routers vecinos se hacen adyacentes.
LSA – Anuncio de Estado de Enlace (Link State Advertisement). Unidad de datos que describe el estado local de un router o red. En el caso de un router, incluye el estado de las interfaces del router
y adyacencias.
Stub. Un extremo de red que típicamente tiene conexión a otras redes a través de unas sola vía. Una red stub es sólo origen y destino de tráfico, y no un espacio de tránsito de paquetes e información de ruteo entre otros segmentos y redes.
OSPF es un protocolo de estado de enlace. Un enlace es en este sentido una interfaz de un router, conectada a un enlace o segmento de red. El estado del enlace (LS – Link‐State) es la descripción de una interfaz y su relación con sus routers vecinos.