OSPF (primera parte)

Este artículo fue escrito para mí, de modo que, si es necesario, actualice rápidamente mi memoria y comprenda la teoría. Decidí publicarlo, tal vez sea útil para alguien, o tal vez me equivoque en algo.

En este artículo intentaremos comprender la teoría del protocolo OSPF. No profundizaremos en la historia y el proceso de creación del protocolo; esta información es abundante en casi todos los artículos sobre OSPF. Intentaremos comprender con más detalle cómo funciona OSPF y cómo crea su tabla de enrutamiento. Es importante dar una definición general del protocolo:

OSPF (Open Shortest Path First) es un protocolo de enrutamiento dinámico basado en tecnología de estado de enlace y utiliza el algoritmo Dijkstra para encontrar la ruta más corta.

La pregunta surge de inmediato: ¿qué es la tecnología de seguimiento de canales? Creo que este nombre no es del todo exitoso. Dio la casualidad de que hay dos tipos de protocolos de enrutamiento dinámico: estado de enlace y vector de distancia. Considere sus principios de trabajo:

En los protocolos de vector de distancia, el enrutador reconoce la información de ruta a través de enrutadores conectados directamente al mismo segmento de red. Es decir, el enrutador tiene información sobre la topología solo dentro de los límites de sus enrutadores vecinos y no tiene idea de cómo está organizada la topología detrás de estos enrutadores, centrándose solo en las métricas. En los protocolos de estado de enlace, cada enrutador no debe conocer fácilmente las mejores rutas para todas las redes remotas, sino que también debe tener en la memoria un mapa de red completo con todas las conexiones existentes entre otros enrutadores incluidos. Esto se logra mediante la construcción de una base especial de LSDB, pero más sobre esto más adelante.

Entonces, comencemos con cómo se construye LSDB a partir del cual el enrutador aprende sobre todas las rutas. Construimos la topología inicial para el estudio. Se ve así:

imagen

Configuraremos OSPF. ¿Dónde comienza OSPF? C establecer un vecindario entre enrutadores: después de activar OSPF en las interfaces del enrutador, los enrutadores comienzan a enviar mensajes de saludo. Este mensaje se envía a la dirección de multidifusión: 224.0.0.5 cada 10 segundos (Hello Timer). Primero habilitaremos OSPF en el enrutador vIOS1.

Veamos cómo se ve el paquete Hello:

imagen

En el mensaje, es importante prestar atención a campos como ID de área, Enrutador OSPF de origen. Cuando se inicia el proceso OSPF, se selecciona la ID del enrutador, que es necesaria para identificar el enrutador entre otros enrutadores OSPF. Las reglas para elegir este parámetro son las siguientes:

1. Configurado por un comando especial de identificación de enrutador ABCD - en formato de dirección IP.
2. Se configuran una interfaz de bucle invertido y varias interfaces con diferentes direcciones:

  • La dirección asignada a la interfaz de bucle invertido será la ID del enrutador.

3. Configurado varias interfaces de bucle invertido con varias direcciones IP en cada una:

  • La dirección IP más alta asignada a cualquiera de las interfaces de bucle invertido será la ID del enrutador.

4. Configurado varias interfaces con una dirección IP en cada una:

  • La dirección IP más grande de todas las interfaces activas será la ID del enrutador.

Ahora pasemos al campo ID de área: este es un concepto más importante y fundamental en OSPF. Para trabajar con una gran cantidad de enrutadores, OSPF utiliza zonas. Cada una de las interfaces del enrutador debe pertenecer a cualquier zona. En nuestra topología, las interfaces Gi0 / 0 de los enrutadores vIOS1, vIOS2, vIOS3, vIOS4 pertenecen a la zona 0. El área 0 se denomina Backbone y es el centro de todas las demás zonas. Cada otra zona debe estar conectada a la zona Backbone (todavía no se considera el enlace virtual). En un análisis posterior, estos conceptos serán más claros.

Entonces, activamos OSPF en vIOS1 y comenzó a enviar paquetes de saludo cada 10 segundos. Active OSPF en vIOS2 y vea cómo se establecen las relaciones entre vecinos.

imagen

Entonces, monitoreamos cuidadosamente la secuencia de mensajes. Primero, Hello envía solo el enrutador 1.1.1.1 (192.168.1.1), tan pronto como habilitemos OSPF en 192.168.1.2, se enviará un paquete Hello. vIOS1 y vIOS2 recibirán paquetes Hello entre sí y para que el vecindario tenga lugar, es importante que los siguientes parámetros sean los mismos en la configuración de OSPF en ambos enrutadores:

  • Intervalo de saludo: frecuencia de envío de mensajes de saludo
  • Intervalo muerto del enrutador: el período de tiempo después del cual el vecino se considera no disponible si no hubo saludo.
  • ID de área: el vecindario solo se puede establecer a través de interfaces en una zona.
  • Autenticación: la contraseña utilizada para la autenticación y el tipo de autenticación, si existe.
  • Indicador de área de código auxiliar: un indicador opcional que se establece en todos los enrutadores que pertenecen al área de código auxiliar

Si observa el paquete Hello que se muestra arriba, todos estos parámetros se indican en el paquete Hello. Tan pronto como uno de los enrutadores (vIOS1) reciba un nuevo paquete Hello y verifique todas las condiciones, enviará inmediatamente un paquete Hello donde indicará la dirección del nuevo enrutador (vIOS2) en el campo Vecino activo, vIOS2 se recibirá y se verá en el campo de vecinos, agregará vIOS1 a los vecinos y enviará el paquete de unidifusión a 192.168.1.1 (vIOS1), donde lo indicará como vecino. Por así decirlo, se han convertido en vecinos y ahora comienza la diversión: el intercambio de información y la construcción de la base LSDB. Para el establecimiento del barrio, le aconsejo que lea el siguiente artículo .

La base LSDB contendrá información sobre rutas y esta LSDB después del establecimiento del vecindario debe ser idéntica en todos los enrutadores dentro de la misma zona. Y, en primer lugar, los enrutadores después de establecer un vecindario comienzan el proceso de sincronización de sus bases de datos entre sí (vIOS1 con vIOS2). Como puede ver, todo comienza con el intercambio de mensajes DB Descripción (DBD). Para que quede más claro, hablemos sobre los tipos de mensajes que usa OSPF:

  • Hola: solía descubrir vecinos, verificar parámetros, construir relaciones de vecindad con ellos y monitorear la disponibilidad.
  • Descripción de la base de datos (DBD): comprueba el estado de la sincronización de la base de datos en los enrutadores.
  • Solicitud de estado de enlace (LSR): solicita registros específicos sobre el estado de los canales del enrutador al enrutador para la sincronización.
  • Actualización de estado de enlace (LSU): envía registros de estado de canal específicos en respuesta a una solicitud.
  • Acuse de recibo de estado de enlace (LSAck): acusa recibo de otros tipos de paquetes.

También es importante introducir un concepto como LSA:

Anuncio de estado de enlace (LSA) : una unidad de datos que describe el estado local de un enrutador o red. Muchas de las LSA que describen enrutadores y redes forman una Base de datos de estado de enlace (LSDB). LSDB consta de varios tipos de LSA. Muy detallado sobre cada LSA está escrito en este artículo. Los mensajes DBD usan muchos indicadores para determinar el estado de sincronización, y estos mensajes contienen información sobre su propia base de datos. Es decir, vIOS1 informa en estos mensajes que en mi base de datos hay información sobre redes como 192.168.0 / 24, 1.1.1.0/24 (LSA Tipo 1), y vIOS2 a su vez informa que tiene registros sobre Redes: 192.168.2.0/24, 2.2.2.0/24 (LSA Tipo 1). Después de recibir mensajes DBD, cada enrutador envía LSAck en confirmación del mensaje recibido y luego compara la información en la base de datos vecina con la suya. Si se descubre que no hay información disponible, el enrutador envía una Solicitud LS, donde solicita información completa sobre cualquier LSA. Por ejemplo, vIOS1 solicitó LS Request de vIOS2, vIOS2 responde con LS Update, que ya contiene información detallada sobre cada ruta. A continuación se muestra la actualización de LS:

imagen

Como puede ver, en esta publicación, vIOS2 habla sobre las subredes que conoce y la información asociada con ellas. Además, vIOS1 habla sobre su LSDB. Y al final, los enrutadores tienen el mismo LSDB. Una vez que se completa el proceso, se inicia el algoritmo de Dijkstra (Shortest Path First). Calcula todas las rutas conocidas de LSDB y pone lo mejor de ellas en la tabla de enrutamiento. El mejor con la métrica más baja, pero más sobre eso más adelante.

Pensemos en la pregunta, ¿qué sucede si activamos OSPF en vIOS3? Dado que vIOS3 tendrá que construir LSDB y sincronizarlo con otros enrutadores, surge la pregunta con quién exactamente sincronizar. Con vIOS1 o vIOS2? Con cada uno individualmente? ¿Qué tan óptimo es esto? Por lo tanto, en OSPF existe un enrutador designado por DR. Presentamos este concepto:

Enrutador dedicado (enrutador designado, DR) : administra el proceso de distribución de LSA en la red. Cada enrutador de red establece una relación de vecindad con DR. El DR, el enrutador que detectó este cambio, envía la información sobre los cambios en la red, y el DR es responsable de garantizar que esta información se envíe a los otros enrutadores de la red.

En otras palabras, si aparece un nuevo enrutador en el segmento de red, sincronizará su LSDB con DR. También es importante tener en cuenta que no solo son nuevos, sino que todos los demás enrutadores informarán al DR sobre esto cuando la red cambie o aparezca una nueva ruta, y el resto tomará esta información del DR. Pero entonces surgen preguntas: ¿qué sucederá si DR falla? ¿Cómo se selecciona DR?

Cuando falla, se debe seleccionar un nuevo DR. Se deben formar nuevas relaciones de vecindad y, hasta que las bases de datos del enrutador estén sincronizadas con la nueva base de datos de DR, la red no estará disponible para el reenvío de paquetes. Para eliminar este inconveniente, seleccione BDR - Enrutador designado de respaldo:

Enrutador designado de respaldo (BDR). Cada enrutador de red establece una relación de vecindad no solo con DR, sino también con BDR. DR y BDR también establecen relaciones de vecindad entre sí. Cuando DR falla, BDR se convierte en DR y realiza todas sus funciones. Como los enrutadores de red han establecido relaciones de vecindad con los BDR, se minimiza el tiempo de indisponibilidad de la red. Por lo tanto, en nuestra red obtenemos no solo DR, sino también BDR. Otros enrutadores recibirán e informarán información relevante sobre la red solo a través de ellos. ¡DR y BDR solo se pueden seleccionar dentro de un segmento, no en una zona! Es decir, para los enrutadores vIOS1, vIOS2, vIOS3, vIOS4, se seleccionará un DR y BDR, y, por ejemplo, entre vIOS y vIOS1 su DR y BDR se determinarán en relación con su segmento de red, incluso si están en la misma Área 0. Para la comunicación con DR y BDR, los enrutadores usan una dirección de multidifusión de 224.0.0.6.

La siguiente pregunta es: ¿Cómo se selecciona DR / BDR? Se aplican los siguientes criterios:

  1. DR: interfaz OSPF enrutador de máxima prioridad.
  2. BDR: enrutador con la segunda prioridad más alta de la interfaz OSPF.
  3. Si las prioridades de las interfaces OSPF son iguales, se utiliza la ID de enrutador más alta para realizar la selección. Como dijimos, los enrutadores definen su ID de enrutador. Al principio, cuando OSPF se lanzó en vIOS1 y vIOS2, además de establecer un vecindario, también tuvieron lugar elecciones DR / BDR. VIOS2 con ID - 2.2.2.2 ganó en esta disputa, cuando vIOS1 tenía ID - 1.1.1.1. vIOS1 fue seleccionado como BDR. Es importante tener en cuenta que el proceso de selección de DR y BDR no ocurre inmediatamente después de recibir los primeros paquetes de saludo del segundo enrutador. Para hacer esto, hay un temporizador especial igual al Intervalo muerto del enrutador: 40 segundos. Si durante este tiempo no se recibe un paquete de saludo con la mejor ID, se realizará una selección basada en los paquetes de saludo existentes.

Solo ahora podemos volver a la pregunta: ¿qué sucederá si activamos OSPF en vIOS3? Después de activar OSPF, vIOS3 comenzará a enviar y escuchar paquetes Hello. Recibirá paquetes Hello de vIOS1 y vIOS2, que indicarán qué enrutadores son DR y BDR y comprenderán con quién debe sincronizar LSDB. Es importante tener en cuenta que cuando aparece un enrutador con una mejor ID, DR / BDR no cambia hasta que uno de ellos falla. Después de eso, vIOS3 comienza a sincronizar su LSDB con estos enrutadores.

imagen

Después de recibir nueva información de vIOS3, el DR envía mensajes de actualización de LS a todos los enrutadores a la dirección 224.0.0.5, a los cuales otros enrutadores, después de haber recibido un paquete, envían el acuse de recibo de LS al DR, pero a la dirección 224.0.0.6 (dirección para DR / BDR).

Según el mismo esquema, también conectamos vIOS4. Después de la sincronización, todos los enrutadores tienen el mismo LSDB. Veamos cómo se ven los estados vecinos de vIOS3. Mostrar comando ip ospf neighbour:

imagen

Como podemos ver, DR es 2.2.2.2, BDR es 1.1.1.1 y 2WAY / DROTHER se selecciona con vIOS4. Los estados vecinos se mencionaron anteriormente .

Y aquí están los estados vecinos en vIOS1 con el vecindario establecido con vIOS:

imagen

Como puede ver, él tiene dos DR porque tiene un vecino en otro segmento de la red.

Multizona


Considere cómo funciona OSPF cuando se utilizan múltiples zonas. Cambie nuestra topología agregando nuevos enrutadores:

imagen

Para comenzar, configuraremos OSPF en vIOS1 y vIOS para que sus interfaces Gi0 / 1 en vIOS y vIOS1 estén en la zona 1. Veamos qué cambios. vIOS1 ahora tiene interfaces tanto en el Área 0 (Gi0 / 0) como en el Área 1 (Gi0 / 0). Tal enrutador se llama ABR - Area Border Router (a continuación damos una definición más correcta de ABR). ABR enviará información de ruta de una zona a otra. Esto se hace a través de LSA Tipo 3:

Tipo 3 LSA: resumen de red LSA : anuncio resumido del estado de los canales de red:

  • Anuncio difundido por enrutadores perimetrales
  • El anuncio describe rutas a redes fuera del área local
  • Contiene información sobre redes y el costo de la ruta a estas redes, pero no envía información sobre la topología de la red.
  • Por defecto, el enrutador de borde envía un anuncio separado para cada red que conoce. Si es necesario, en la red ABR se puede resumir
  • ID del estado del enlace: número de red de destino.

En esencia, entre zonas, el principio de funcionamiento del protocolo se asemeja al del protocolo de vector de distancia, transmitiendo solo información de ruta con métricas. Aquí está la Actualización LS de vIOS1 en el Área 0, que contiene 3 piezas LSA Tipo 3:

imagen

En esencia, la estructura de LSA Tipo 3 no es muy diferente de LSA Tipo 1, pero afectan el protocolo de diferentes maneras. Cuando se recibe un LSA actualizado o si se pierde algún LSA Tipo 1 y 2, se reinicia el SPF (algoritmo de ruta más corta) y se vuelve a calcular el LSDB.

Al recibir un LSA Tipo 3, este proceso no ocurre: se obtiene una ruta con una métrica en LSA Tipo 3. Este LSA almacena datos a través de los cuales se recibió ABR una ruta determinada (ABR se especifica en el campo Enrutador de publicidad) y una métrica para lograr este ABR ya disponible en LSDB. Por lo tanto, la métrica de LSA Tipo 3 se resume con la métrica de la ruta a ABR y obtenemos la ruta finalizada sin reiniciar el SPF. Este proceso se llama cálculo de SPF parcial . Esto es bastante importante porque en redes grandes, los tamaños de LSDB pueden ser bastante grandes y ejecutar SPF a menudo no es bueno. Además, la creación de LSA Tipo 3 sugiere que cambiar y volver a calcular LSDB es un área. ABR solo informa que con alguna ruta lo que ha cambiado.

También es importante tener en cuenta que cualquier ruta desde una zona distinta de cero a cualquier zona distinta de cero pasa por el Área 0. Si hay un ABR, no se puede conectar al Área 0 (excluimos la opción con enlace virtual). El Área 0 es el núcleo que conecta todas las otras zonas y proporciona enrutamiento entre las zonas. La definición de ABR se ve así:

Enrutador de borde (enrutador de borde de área, ABR) : conecta una o más zonas a la zona troncal y actúa como una puerta de enlace para el tráfico entre zonas. Un enrutador de borde siempre tiene al menos una interfaz en la zona troncal. Para cada zona adjunta, el enrutador mantiene una base de datos de estado de canal separada.
Nos ocupamos del establecimiento del barrio, la creación de LSDB y SPF, con la zona habitual. Ahora veamos la convergencia y la respuesta de OSPF a los cambios en la topología.

Veamos nuestra topología e imaginemos que vIOS3 dejó de funcionar (el estado de los canales no ha cambiado). Ayudará a reconstruir la topología del temporizador de intervalo muerto: 40 segundos. Si durante este intervalo, el enrutador no recibe un paquete de saludo de un vecino, entonces el vecindario se colapsa. En nuestro caso, DR enviará LS Update con LSA Tipo 2, lo que indica que no hay vIOS3 entre los enrutadores conectados, esto hará que SPF se inicie y vuelva a contar LSDB sin LSA recibido de vIOS3. Es importante tener en cuenta que en un enrutador vIOS4 normal, incluso el agotamiento del temporizador de intervalo muerto y la pérdida de proximidad a vIOS3 no conduce a un nuevo cálculo de la topología, es el mensaje de actualización de LS con LSA Tipo 2 que inicia este proceso.

Tipo 2 LSA - Red LSA - Anuncio de estado del enlace de red :

  • Distribuido por DR en redes de acceso múltiple
  • La red LSA no se crea para redes en las que no se selecciona DR
  • Distribuido solo dentro de una zona
  • ID de estado de enlace: dirección IP de la interfaz DR

Por lo tanto, ignorar los datos que han dejado de funcionar ocurre con la ayuda de este mensaje. Es esta indicación de vecinos la que desencadena el descarte de rutas irrelevantes.

Vuelva a encender vIOS3 y vuelva a establecer el vecindario. El próximo experimento será una reacción a la desactivación de la interfaz Gi0 / 1 en vIOS3. Tan pronto como vIOS3 detecta la caída de enlaces, envía instantáneamente LS Update a DR a la dirección 224.0.0.6, donde se informa que ciertas rutas han caído al establecer una bandera en LSA - LS Age igual a 3600 segundos. Para LSDB, esta es la edad máxima y todos los LSA con edad máxima no se tienen en cuenta en SPF, por lo que no estarán en la tabla de enrutamiento. La pregunta es: cuando Age LSA llega naturalmente a Max Age, ¿qué sucede? Para hacer esto, OSPF tiene LSRefreshTime: igual a la mitad de la edad máxima, cada 1800 segundos se envía LS Update desde el enrutador para actualizar los datos del temporizador:

imagen

Además, DR después de haber procesado esta actualización LS, envía LS LS a todos los otros enrutadores a la dirección 224.0.0.5. Tan pronto como los enrutadores obtienen nueva información, envían LSAck. Esto asegura una buena convergencia en OSPF.

Elegir la mejor ruta


El enrutador selecciona la mejor ruta en función del valor métrico más bajo. Sin embargo, OSPF también tiene en cuenta varios otros factores al elegir una ruta. En este caso, la fuente de la ruta y su tipo son importantes. La selección de ruta prioritaria es la siguiente:

  • Rutas internas de una zona (dentro del área)
  • Rutas entre zonas (interarea)
  • Rutas externas tipo 1 (E1)
  • Rutas externas tipo 2 (E2)

Aunque el costo de la ruta E2 no cambia cuando se transfiere por zonas (no se agrega el costo de la ruta al ASBR), cuando el costo de las rutas E2 coincide, se compara el costo de la ruta al ASBR que anuncia la ruta. La métrica se tiene en cuenta cuando tiene que elegir entre las rutas del mismo tipo. Como métrica, se utiliza el concepto de costo. Se calcula mediante la fórmula:

costo = ancho de banda de referencia / ancho de banda del enlace. Ancho de banda de referencia: la base del ancho de banda. Por defecto, en Cisco es igual a 100Mbit.

Prevención ABR Loop.Como dijimos anteriormente, entre zonas, el principio de operación de OSPF es similar al protocolo de vector de distancia. Usando los mecanismos de prevención de bucle, podemos lograr que se elija la ruta no óptima. Por ejemplo, entre zonas hay una regla como Split Horizon a partir de protocolos de vector de distancia. Considere esto como un ejemplo, si cambiamos nuestra topología en el borde de las zonas 0 y 4 de la siguiente manera:

imagen

entonces obtenemos que vIOS18 elegirá una ruta no óptima con la métrica 100 a través de la interfaz Gi0 / 0. Esto sucede debido al hecho de que vIOS18 no tendrá en cuenta el LSA Tipo 3 recibido no de la zona 0. Además, la regla anterior prohíbe transferir este LSA Tipo 3 a la zona 0.

Source: https://habr.com/ru/post/es418391/


All Articles