LSAs en OSPF: ¿cómo funcionan?

Spread the love

Ya en una ocasión anterior hice una introducción más o menos detallada de OSPF, en ésta ocasión vamos a hablar de las áreas, de las LSAs que aparecen cuando hay áreas especiales y de cómo se ve eso en las tablas de OSPF. Disfrútenlo.

Introducción

Ya en la publicación de introducción a OSPF mencioné qué son las LSAs y cuáles son las básicas. Como un brevísimo resumen, las LSAs son las unidades informativas de OSPF que permiten conocer/transmitir las redes IP (con sus características) y la topología (estructura de un área), las más básicas son Router, Network y Summary, con ellas no sólo recibimos las IP de red destino y de tránsito, sino las IP de redes fuera de nuestra área ligadas a un ABR. Si todavía no tiene un buen contexto sobre ospf y las LSAs, por favor lea la introducción a OSPF que publiqué hace unas semanas: es detallado, ilustrativo y entretenido.

Hay varios tipos de LSAs, cada una tiene una estructura ligeramente diferente y contiene algún tipo de información. Normalmente se numeran y se nombran como en el siguiente cuadro, en el que listo los más comunes. Lo interesante es observar que cada LSA tiene un ID y contenido diferente (excepto los dos casos de LSAs external que son idénticas):

Nro de LSANombre de LSALSA IDContenido
1RouterRouterIDCaracterísticas de sus enlaces (vecinos, dirección de red, tipo de enlace, métrica)
2NetworkDR RouterIDVecinos
3SummaryIP de la subredRouterID del ABR, Máscara, métrica
4ASBRRouterID del ASBRRouterID del ABR, métrica para alcanzar al ABR
5ExternalIP de subred externaRouterID del ASBR, métrica, tipo de métrica y último gateway (forwarder)
7NSSA IP de subred externa RouterID del ASBR, métrica, tipo de métrica y último gateway (forwarder)

Un dominio OSPF, es decir, un conjunto de routers que se comunican la información de enrutamiento por OSPF, que sólo tiene área 0, áreas normales y no recibe rutas de otros protocolos (p. ej. BGP), usaría LSAs tipo 1, 2 y 3. Por eso es que en la publicación anterior, en la que también mostré los comandos y sus resultados, las clasifiqué como básicas. Cuando un dominio OSPF tiene áreas especiales y recibe rutas de otro protocolo, entonces puede usar todas las LSAs de la lista. Vamos a mirar cada caso.

El viaje de una LSA

En la introducción también mencioné que OSPF tiene el concepto de área para disminuir el uso de cpu y memoria que le demanda el protocolo al Router. Las áreas se pueden clasificar, en principio, como estándar (diferente a nro. 0) y backbone (área 0). Ésto hace que OSPF imponga un diseño de dos niveles: todas las áreas deben ser «hijas» del área 0, es decir, no debe haber un router que pertenezca a dos áreas diferentes al área 0 y a su vez, si un router pertenece a dos áreas una de ellas DEBERÍA ser la 0.

En éste escenario (sólo área 0 y áreas estándar) toda la información de enrutamiento se origina en LSAs tipo Router y Network, en éstas se envía el RouterID, los vecinos y características del enlace, entre ellas la IP. La LSA tipo Summary es una transformación que sufren éstas LSAs en el ABR: cuando un ABR pasa una LSA de un área a otra, envía sólo información de IP, no de topología, es decir, se pierde la información de vecindad entre routers porque ya no es importante para otras áreas, sólo se necesita las IPs de los diferentes segmentos de red y quién es el router al cual se le debe enviar el tráfico destinado a ellas (el ABR más cercano según la métrica).

Cuando miramos la tabla de enrutamiento de un router en un dominio ospf multiárea, veremos las redes locales conocidas por OSPF y las redes de otras áreas conocidas por OSPF IA (inter-area), eso significa que con LSAs tipo 1 y 2 se recibieron las redes de mi área y con LSAs tipo Summary las de otras áreas.

Áreas especiales y routers especiales

El propósito de las áreas es doble: de un lado permite que el algoritmo spf trabaje sobre una sola base de datos topológica (excepto para los ABRs), por ende se requiere menos memoria y menos procesamiento en todos los routers excepto los ABRs; de otro lado, las áreas ayudan a controlar mejor el flujo de información, particularmente de los segmentos de red.

El problema de las áreas es que aparecen situaciones que se salen de los casos «normales», por ejemplo, es posible que la red tenga una tabla de enrutamiento muy grande y los routers de cierta área sean comparativamente más pequeños. En ese caso, con sólo backbone y áreas estandar se recibirían toda las rutas, pero algunos routers estarían un poco saturados. Para éste caso particular hay dos áreas especiales llamadas stub y totally stubby. En ambas áreas se asume que el área particular tiene una sola salida hacia el resto del dominio OSPF, de esa manera, en vez de enviar LSAs External, el ABR envía LSAs especiales con rutas predeterminadas. La diferencia entre stub y totally stubby es para cuáles LSAs se generará la ruta predeterminada? En el caso de areas stub sólo se reemplazan las LSAs externas al dominio OSPF (es decir muy pocas), mientras que en totally stubby se reemplazan todas las LSAs de otras áreas (summary).

Finalmente, ¿qué pasa si al interior de un área Stub hay un router que importa (redistribuye) rutas de fuera del dominio OSPF? Éstas áreas se llaman NSSA y expongo sus detalles al final de ésta publicación. Cuando un router OSPF redistribuye rutas de otra fuente (estáticas u otro protocolo de enrutamiento) se convierte en un ASBR o router de borde del sistema autónomo y genera LSAs Externas para anunciar cada red redistribuida.

En resumen éstas son las áreas posibles de OSPF:

  1. Backbone o área 0
  2. Área estándar
  3. Área Stub
  4. Área Totally-stub
  5. Área NSSA (Not-so-stubby)

¿Cómo observar todo ésto en equipos Cisco (IOS clásico)?

En la siguiente topología se ven tres áreas: área 0, 1 y 2, es decir, el backbone y dos áreas normales. Los routers al interior de cada área sólo ven LSAs tipo router y network de sus propias áreas y tienen LSAs tipo summary de las otras dos áreas. Sólo el ABR tiene LSAs del backbone y de la(s) otra(s) area(s) a las que pertenezca. Con las primeras, conocen cómo están conectados unos con otros (topología), por lo tanto pueden calcular las rutas óptimas al interior de su área. Con las otras, obtienen las direcciones de redes fuera de su área y el RouterID del ABR, por lo tanto, conociendo cómo llegar al ABR saben cómo llegar al resto del dominio OSPF. Las LSAs que genera el ABR, llevan información como el costo para llegar a las redes entre otras cosas, por ejemplo, el tipo de métrica, que puede ser acumulativa o «fija».

R1R2
NormalR1#sh run | sec ospf
ip ospf network point-to-point
router ospf 1
router-id 1.1.1.1
network 10.0.0.0 0.0.0.255 area 1
network 10.1.0.0 0.0.0.255 area 1
R1#sh ip route
[ OMITIDO ]
10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks
C 10.0.0.0/30 is directly connected, FastEthernet1/0
L 10.0.0.1/32 is directly connected, FastEthernet1/0
C 10.1.0.0/30 is directly connected, FastEthernet0/0
L 10.1.0.1/32 is directly connected, FastEthernet0/0
O IA 10.2.0.0/30 [110/2] via 10.1.0.2, 00:06:32, FastEthernet0/0
O IA 10.3.0.0/30 [110/3] via 10.1.0.2, 00:06:32, FastEthernet0/0
O IA 10.4.0.0/30 [110/4] via 10.1.0.2, 00:06:29, FastEthernet0/0
R2#sh run | sec ospf
ip ospf network point-to-point
ip ospf network point-to-point
router ospf 1
router-id 2.2.2.2
network 10.1.0.0 0.0.0.255 area 1
network 10.2.0.0 0.0.0.255 area 0
R2#sh ip route
[ OMITIDO ]
10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks
O 10.0.0.0/30 [110/2] via 10.1.0.1, 00:00:24, FastEthernet0/0
C 10.1.0.0/30 is directly connected, FastEthernet0/0
L 10.1.0.2/32 is directly connected, FastEthernet0/0
C 10.2.0.0/30 is directly connected, FastEthernet1/0
L 10.2.0.1/32 is directly connected, FastEthernet1/0
O IA 10.3.0.0/30 [110/2] via 10.2.0.2, 00:00:34, FastEthernet1/0
O IA 10.4.0.0/30 [110/3] via 10.2.0.2, 00:00:34, FastEthernet1/0
StubR1# conf t
R1(config)# router ospf 1
R1(config-router)#area 1 stub
R2# conf t
R2(config-router)# router ospf 1
R2(config-router)#area 1 stub
Totally-stub
R2(config-router)#area 1 stub no-summary
Rutas y topologia Stub
Rutas y topologia Stub

Noten que R2 tiene las topologías de área 0 y 1, con pequeñas diferencias, también noten que la configuración de stub está en todos los routers que pertenecen tal área, incluso el interno, pero la configuración de Totally-stub sólo se instala en el ABR. Parece que la bandera de Stub no es muy útil, dado que la tabla de enrutamiento en realidad crece: hay una nueva ruta predeterminada. Lo que ocurre con las áreas Stub es que los ABRs sólo convierten información que provenga de fuera del dominio en una ruta predeterminada, no las redes inter-área. El siguiente caso que vamos a analizar es cuando existe información conocida por una fuente distinta a OSPF.

¿Cuándo se importan rutas de otro protocolo? he aquí un ejemplo: quiero que las rutas estáticas de un router se propaguen por OSPF a todos los routers del dominio. El caso más típico es desear lo mismo para rutas provenientes de BGP, ambos casos son comunes en el acceso a Internet: propagar una ruta predeterminada hacia el ISP o importar rutas del mismo. En ospf lo que ocurre es que tal router se convierte en un ASBR, es decir, un router que es borde de todo el dominio ospf. ASBR significa literalmente Autonomous System Border Router, pero en la práctica es borde del dominio, no necesariamente del sistema autónomo. El ASBR genera una LSA especial: External LSA (tipo 5) con las cuales va a publicar cada red externa, los ABR van a generar otra LSA especial: ASBR (Tipo 4), anunciando que en su área hay un ASBR. Importar rutas implica generar éstas LSAs que se propagan hacia el resto de las áreas con ciertos cambios al pasar de un área a la otra.

Continuando con nuestra configuración de ejemplo 1ro deshabilitamos las banderas stub en R1 y R2 con el fin de ver las LSAs en todos los routers y para poder experimentar la diferencia de Stub/Totally-stub cuando hay LSAs external. Luego creamos una ruta estática válida en R4, las redistribuimos en OSPF y finalmente miramos las LSDB y tablas de enrutamiento.

# En R1 y R2
conf t
router ospf 1
no area 1 stub

# En R4
conf t
ip route 5.5.5.5 255.255.255.255 10.3.0.1
router ospf 1
 redistribute static subnets

Según lo anterior, vemos que en R4 se ve una ruta estática, una LSA tipo 5 y el cambio de rol del router a ASBR (aparece como autonomous system border router):

R4>sh ip route
[ OMITIDO ]
Gateway of last resort is not set

      5.0.0.0/32 is subnetted, 1 subnets
S        5.5.5.5 [1/0] via 10.3.0.1
      10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks
O IA     10.0.0.0/30 [110/4] via 10.3.0.1, 00:18:57, FastEthernet0/0
O IA     10.1.0.0/30 [110/3] via 10.3.0.1, 01:14:41, FastEthernet0/0
O IA     10.2.0.0/30 [110/2] via 10.3.0.1, 01:14:44, FastEthernet0/0
C        10.3.0.0/30 is directly connected, FastEthernet0/0
L        10.3.0.2/32 is directly connected, FastEthernet0/0
C        10.4.0.0/30 is directly connected, FastEthernet1/0
L        10.4.0.1/32 is directly connected, FastEthernet1/0

R4>sh ip ospf database self-originate
            OSPF Router with ID (4.4.4.4) (Process ID 1)
                Router Link States (Area 2)
Link ID         ADV Router      Age         Seq#       Checksum Link count
4.4.4.4         4.4.4.4         715         0x80000004 0x009A22 3

                Type-5 AS External Link States
Link ID         ADV Router      Age         Seq#       Checksum Tag
5.5.5.5         4.4.4.4         704         0x80000001 0x0088F3 0

R4>sh ip ospf
 Routing Process "ospf 1" with ID 4.4.4.4
 Start time: 00:00:38.740, Time elapsed: 01:15:44.156
 Supports only single TOS(TOS0) routes
 Supports opaque LSA
 Supports Link-local Signaling (LLS)
 Supports area transit capability
 Supports NSSA (compatible with RFC 3101)
 Event-log enabled, Maximum number of events: 1000, Mode: cyclic
 It is an autonomous system boundary router
 Redistributing External Routes from,
    static, includes subnets in redistribution
[ OMITIDO ]

Luego en R1 y R2 vemos la tabla de enrutamiento y la LSDB:

R1>sh ip ospf database
            OSPF Router with ID (1.1.1.1) (Process ID 1)
                Router Link States (Area 1)
Link ID         ADV Router      Age         Seq#       Checksum Link count
1.1.1.1         1.1.1.1         1002        0x8000000B 0x00DDFE 3
2.2.2.2         2.2.2.2         666         0x8000000B 0x00FDF0 2
                Summary Net Link States (Area 1)
Link ID         ADV Router      Age         Seq#       Checksum
10.2.0.0        2.2.2.2         1011        0x80000002 0x00A881
10.3.0.0        2.2.2.2         1011        0x80000002 0x00A681
10.4.0.0        2.2.2.2         1011        0x80000002 0x00A481
                Summary ASB Link States (Area 1)
Link ID         ADV Router      Age         Seq#       Checksum
4.4.4.4         2.2.2.2         1011        0x80000001 0x009A87
                Type-5 AS External Link States
Link ID         ADV Router      Age         Seq#       Checksum Tag
5.5.5.5         4.4.4.4         1140        0x80000001 0x0088F3 0

R1>sh ip route
[ OMITIDO ]
      5.0.0.0/32 is subnetted, 1 subnets
O E2     5.5.5.5 [110/20] via 10.1.0.2, 00:16:18, FastEthernet0/0
      10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks
C        10.0.0.0/30 is directly connected, FastEthernet1/0
L        10.0.0.1/32 is directly connected, FastEthernet1/0
C        10.1.0.0/30 is directly connected, FastEthernet0/0
L        10.1.0.1/32 is directly connected, FastEthernet0/0
O IA     10.2.0.0/30 [110/2] via 10.1.0.2, 00:16:18, FastEthernet0/0
O IA     10.3.0.0/30 [110/3] via 10.1.0.2, 00:16:18, FastEthernet0/0
O IA     10.4.0.0/30 [110/4] via 10.1.0.2, 00:16:18, FastEthernet0/0

R2>sh ip ospf database
            OSPF Router with ID (2.2.2.2) (Process ID 1)
                Router Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum Link count
2.2.2.2         2.2.2.2         1208        0x80000004 0x00628A 2
3.3.3.3         3.3.3.3         2633        0x80000003 0x0004E4 2
                Summary Net Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum
10.0.0.0        2.2.2.2         1289        0x80000001 0x00CC5F
10.1.0.0        2.2.2.2         1208        0x80000003 0x00B277
10.3.0.0        3.3.3.3         2633        0x80000002 0x007EA6
10.4.0.0        3.3.3.3         2633        0x80000002 0x007CA6
                Summary ASB Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum
4.4.4.4         3.3.3.3         1430        0x80000001 0x0072AC
                Router Link States (Area 1)
Link ID         ADV Router      Age         Seq#       Checksum Link count
1.1.1.1         1.1.1.1         1295        0x8000000B 0x00DDFE 3
2.2.2.2         2.2.2.2         956         0x8000000B 0x00FDF0 2
                Summary Net Link States (Area 1)
Link ID         ADV Router      Age         Seq#       Checksum
10.2.0.0        2.2.2.2         1301        0x80000002 0x00A881
10.3.0.0        2.2.2.2         1301        0x80000002 0x00A681
10.4.0.0        2.2.2.2         1301        0x80000002 0x00A481
                Summary ASB Link States (Area 1)
Link ID         ADV Router      Age         Seq#       Checksum
4.4.4.4         2.2.2.2         1301        0x80000001 0x009A87
                Type-5 AS External Link States
Link ID         ADV Router      Age         Seq#       Checksum Tag
5.5.5.5         4.4.4.4         1431        0x80000001 0x0088F3 0

R2>sh ip route
[ OMITIDO ]
      5.0.0.0/32 is subnetted, 1 subnets
O E2     5.5.5.5 [110/20] via 10.2.0.2, 00:21:32, FastEthernet1/0
      10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks
O        10.0.0.0/30 [110/2] via 10.1.0.1, 00:21:20, FastEthernet0/0
C        10.1.0.0/30 is directly connected, FastEthernet0/0
L        10.1.0.2/32 is directly connected, FastEthernet0/0
C        10.2.0.0/30 is directly connected, FastEthernet1/0
L        10.2.0.1/32 is directly connected, FastEthernet1/0
O IA     10.3.0.0/30 [110/2] via 10.2.0.2, 00:21:32, FastEthernet1/0
O IA     10.4.0.0/30 [110/3] via 10.2.0.2, 00:21:33, FastEthernet1/0

Noten que las LSAs externas no pertenecen a ningún área pero en cada una sí se debe tener un LSA que indique cómo llegar a los ASBRs (pueden ser varios), ésta es la LSA tipo 4 o ASBR, cuyo Advertising router es el ABR del área en la cual se anunció la LSA.

A éstas alturas, alguien puede estar preguntandose: cómo saben llegar a los RouterID si no se ven en la tabla de enrutamiento? Recuerden que las LSAs contienen información de segmentos IP y que mediante las LSAs tipo router se conocen los segmentos que comunican a cada router. Aunque es una práctica común publicar las IPs que se usan como RouterID, no es necesario para el funcionamiento de SPF como hemos visto en éste ejemplo. Publicar los routerID en la red es necesario cuando ésta también es la IP de administración, por ende si quiero establecer una sesión de SNMP, Telnet o SSH necesito poder alcanzar la IP como tal, éstos protocolos no son OSPF y por ende se respaldan exclusivamente en la tabla de enrutamiento de cada router.

El último caso es el siguiente: ¿qué pasa si dentro de un área stub/totally stub hay un router que importa rutas? En éste caso, el área se tiene que declarar como nssa (not-so-stubby) y aparece una LSA adicional llamada NSSA que es tipo 7. Las LSAs tipo 5 y tipo 7 son prácticamente iguales, en ambos casos se envía la misma información: la red importada, la métrica, el tipo de métrica y el advertising router. La configuración necesaria sería la siguiente:

# En R4 y R5
conf t
 router ospf 1
  area 2 nssa

No voy a ilustrar más dado que ya todos los comandos y salidas las hemos utilizado:

sh ip route
sh ip ospf
sh ip ospf database
sh ip ospf database self-originated

Como les mencioné anteriormente, las LSAs tipo 5 o external son convertidas en rutas predeterminadas en las áreas stub (nssa también es stub), exploren por su cuenta qué pasa con las LSAs tipo 7. Es decir, les dejo de tarea volver a configurar stub/totally-stub en el área 1 y observar qué pasa en la LSDB con ésta nueva LSA.

Conclusiones y continuación

Como ven, aunque OSPF es un gran protocolo, los detalles de su funcionamiento se van volviendo un poco complejos, sin embargo, también noten que las configuraciones no son complejas. Tengan en cuenta que cada LSA tiene información y estructura diferente:

Cada LSA tiene un Link-state ID y contenido diferente, Router/Network tienen vecinos y parámetros de cada enlace, las LSAs external (5 y 7) tienen los parámetros del enlace y el tipo de métrica (acumulativa o fija) entre otros. Con propósitos de certificación, la tabla que está al inicio de ésta publicación es indispensable.

Las futuras publicaciones en éste tema serán los detalles de funcionamiento del protocolo: tipos de paquetes, cómo se establecen adyacencias, cómo funciona en redes multiacceso y algunos parámetros de sintonización básicos. Sigan pendientes, no olviden comentar y compartir.

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.