Adyacencias en OSPF: Parte 1

Spread the love

Ya he estado escribiendo sistemáticamente sobre OSPF, que como sabemos es uno de los protocolos interiores (IGP) más importantes. Las entradas anteriores hablaron sobre el principio de funcionamiento y las LSAs, en ésta ocasión vamos a ser un poco más concretos: hablemos de los tipos de paquetes o mensajes que hablan los enrutadores que tienen activo OSPF y cómo establecen una adyacencia. Disfrútenlo.

Introducción

Estudiar OSPF se puede dividir en dos temas importantes: su principio de funcionamiento, es decir, cómo se conoce y analizan las topologías, temas que ya he descrito en la Introducción a OSPF y en la segunda entrada sobre LSAs. El otro bloque de estudio es el protocolo como tal, es decir, las adyacencias y los paquetes involucrados en ellas. Ese va a ser nuestro tema ahora.

El protocolo y los tipos de paquetes

Cuando hablamos de un protocolo de red, hablamos de una serie de paquetes y una secuencia de los mismos, es decir, como un minilenguaje que comunica cierta información. En éste sentido, los protocolos de enrutamiento son realmente simples, casi todos tienen 4 tipos de paquetes y a través de ellos se comunican la información de rutas, que llamaremos información del plano de control. Yo he notado que los principales protocolos IGP se componen de 4 tipos de paquetes consistentes en:

  1. Hello
  2. Resumen de información
  3. Información detallada
  4. Acuse de recibo

Cuando lean sobre otros protocolos se van a acordar de eso: todos son iguales (excepto RIP pero ese casi ni cuenta 🙂 ). Entonces, en OSPF, éstos paquetes se llaman:

  1. Hello
  2. DBD: Database description
  3. LSR: Link-state Request
  4. LSU: Link-state Update
  5. LSA: Link-state Acknowledge

Éstos 5 tipos de paquetes cumplen los roles descritos en el párrafo anterior. El paquete de Hello consiste en un pequeño paquete que tiene dos propósitos: 1) Determinar la disponibilidad del router, es decir, saber si todavía está activo o ya no (usualmente conocemos este proceso como Heartbeat) y 2) Ofrecer la información del proceso OSPF respectivo para que el vecino determine si se puede establecer una relación de vecindad o no. Si dos routers hablan OSPF por las interfaces que los comunican, éstas interfaces deben pertenecer al mismo área, tener la misma máscara y tener los mismos timers de operación (hello y dead interval). Si alguno de los parámetros anteriores no coinciden, los routers no se hacen vecinos y por ende no hay adyacencia entre ellos (no intercambian información de enrutamiento/topología). En su momento, un enlace podría ser punto a punto o broadcast, es decir, multiacceso. En un enlace p2p los routers deciden una relación master/slave de manera trivial, pero en un enlace multiacceso, OSPF debe elegir a uno de los partícipes para ser el representante de la red y los demás routers lo usan para enviarle la información de enrutamiento, la cual es reenviada por éste al resto de routers. Ese proceso de elección de un representante, llamado DR o Designated Router, se hace con base en la información de los paquetes de Hello. En otras palabras, la comunicación básica de OSPF comienza con paquetes Hello.

Si la relación de adyacencia se ha establecido, es momento de empezar a intercambiar información de rutas y topología. Como lo he mencionado en las entradas anteriores, tal información está contenida en LSAs, generalmente unas cuantas por router, sin embargo, establecida la adyacencia, el router sólo envía un resumen de sus LSA (propias y ajenas), éste resumen va en uno o más paquetes DBD (Database Description). Cada LSA tiene un ID y un tipo de lsa que la identifica, el paquete DBD envía una relación de LSAs con ésta información, el router receptor compara las LSAs recibidas con las que él mismo tiene en su Database y si falta alguna solicita la información detallada de la misma.

La solicitud de información detallada y el envío de la misma se hace en paquetes LSR/LSU respectivamente, de ésta manera los routers se «sincronizan» y con el tiempo, todos los routers en el mismo área deberían tener la misma base de datos topológica. Finalmente, el proceso termina cuando no se envían más LSR/LSU y el router receptor envía un LSA, es decir, un Link-state Acknowledge. Todo el proceso busca que los routers, pertenecientes al mismo área tengan la misma base de datos topológica.

Adyacencias vs Vecinos: tipos de enlace (o red)

En ospf se habla de tipo de red (el comando es network-type) pero el término me parece confuso, yo prefiero hablar de tipo de enlace. El protocolo define que existen 5 tipos diferentes de enlace:

  1. Broadcast
  2. Point-to-point
  3. NBMA (Non-broadcast multiaccess)
  4. point-to-multipoint
  5. Virtual-link

Estos tipos de enlace van a determinar los timers que se envían en los paquetes Hello y si es necesario elegir un DR o no. El proceso de elección del DR se tarda un poco en terminar, por ende, actualmente se tiene como buena práctica cambiar el «tipo de red» a punto a punto siempre que sea posible (es decir casi siempre), de esta manera se evita el proceso de elección y se acelera la convergencia. Según lo anterior, los tipos de enlace que vamos a ver más comunmente son Broadcast y punto a punto. NBMA es un tipo de red que ya es prácticamente inexistente dado que eran las tecnologías de transporte antiguas como ATM, Frame-relay o sus antecesoras. La idea en éstas tecnologías era que aunque los participantes podían estar en el mismo segmento de red, un broadcast/multicast no necesariamente podía ser transmitido por la red y por ende las adyacencias no funcionaban bien. Para superar éste problema aparece la red punto a multipunto, en la cual arbitrariamente el diseñador de la red decidía que un router hacía las veces de hub o centro de la topología y todos los otros lo trataban como DR. El último tipo de enlace es un caso muy particular en el cual se viola una de las reglas de diseño de OSPF: toda área debe estar pegada al área 0. Si un área no puede tener un enlace en el área 0, entonces se tiene que establecer un Virtual-link por el área de tránsito y de ésta manera el área 0 sí alcanza el área no contigua.

De los tipos de enlace también se deriva la relación entre los routers. OSPF declara dos tipos de relaciones entre routers comunicados mediante el protocolo, en el trabajo siempre hablamos de adyacencias pero técnicamente no siempre que se ven dos routers son adyacentes. Una adyacencia consiste en una relación de intercambio de LSAs una vecindad es simplemente el reconocimiento de que el vecino habla OSPF y cumple ciertas condiciones. Tal vez se pueda empezar a deducir que la vecindad siempre debe ocurrir y luego ocurre la adyacencia, sin embargo, en redes multiacceso, por ejemplo routers conectados a la misma vlan, la adyacencia sólo se establece con un router que ya hemos mencionado como el DR o Designated Router, quienes han estudiado CCNA o HCNA ya lo conocen. Dado que nuestras redes casi siempre son Ethernet, es decir multiacceso, casi siempre se elige un DR y el proceso de elección se vuelve más importante aún. El proceso como tal es anacrónico, tarda mucho tiempo para nuestros estándares actuales y por lo general se deshabilita.

Quienes se deseen certificar, deben saber al dedillo las condiciones de adyacencia. Establecer una adyacencia depende de varios factores:

  1. Mismo área
  2. Mismos timers
  3. Misma subred

Recuerden que la adyacencia se establece por interfaz y los datos anteriores pertenecen a cada interfaz de manera individual, es decir, no son atributos globales del proceso de enrutamiento. Es claro que existen valores predeterminados, pero todos se pueden sobreescribir a nivel de interfaz. También es necesario reconocer que los datos anteriores hacen parte del encabezado básico de OSPF y las negociaciones necesarias para establecer la relación se lleva a cabo mediante paquetes Hello.

Resumen y próximas entradas





Aunque pretendía cubrir mucho más tema en ésta entrada, creo que es suficiente información y más adelante continuaré con el proceso de adyacencias, elección del DR, los comandos de configuración y verificación, probablemente en Cisco. En resumen, tenemos que OSPF tiene 5 tipos de paquetes: hello, DBD, LSR, LSU y LSA, el Hello contiene la información necesaria para establecer las adyacencias y los tipos de enlace (o tipos de red) determinan tanto los timers a usar como la mecámica de establecimiento de las mismas.

Voy a intentar dar más detalles en las siguientes entradas. Si les gustó el contenido por favor compartan y si tienen alguna duda pueden dejar sus comentarios. Gracias y hasta pronto.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.