OSPF (OPEN SHORTEST PATH FIRST)

🧭 Protocolo OSPF (Open Shortest Path First)

🧭 Protocolo OSPF (Open Shortest Path First)

OSPF es un protocolo de enrutamiento dinámico de tipo estado de enlace que calcula rutas óptimas basadas en el costo de los enlaces. Usa el algoritmo SPF (Shortest Path First) y es ideal para redes medianas a grandes gracias a su convergencia rápida y arquitectura jerárquica.

🔌 Estado de Enlace (Link-State)

  • OSPF mantiene una base de datos topológica (LSDB) compartida entre todos los routers en una misma área.
  • Calcula rutas con el algoritmo de Dijkstra para determinar el camino más corto hacia cada red.

Ejemplo CLI para ver la LSDB en Huawei:

<Huawei> display ospf lsdb
     OSPF Process 1 with Router ID 192.168.1.1
     LS Type: Router Links
     Link State ID: 192.168.2.1
     Adv Router: 192.168.1.1
     LS Seq Num: 80000003
     Checksum: 0x9A3F
     Length: 48

⚡ Convergencia Rápida

  • Actualiza la red mediante LSAs (Link-State Advertisements) ante cambios.
  • Los routers actualizan su tabla de enrutamiento inmediatamente con SPF.
  • Minimiza el downtime en la red.

Diagnóstico de vecinos OSPF en Huawei:

<Huawei> display ospf peer
  Neighbor(s) State
  Neighbor ID Pri State Dead Time Address Interface
  192.168.2.2 1 Full/DR 00:00:30 192.168.2.1 GE0/0/1

💰 Métricas Basadas en Costos

  • Definición del Costo: OSPF asigna un valor a cada enlace con base en su ancho de banda. Menor costo = mejor ruta.
  • Fórmula: Costo = 100,000,000 / Ancho de banda en bps.
  • Enlaces de alta capacidad tienen menor costo, haciéndolos más preferidos.

Configuración de costo en Huawei:

<Huawei> system-view
[Huawei] interface GigabitEthernet0/0/1
[Huawei-GigabitEthernet0/0/1] ospf cost 10

🗺️ Diseño Jerárquico con Áreas

  • OSPF divide la red en áreas para mejorar escalabilidad y eficiencia.
  • Área 0 (backbone): Conecta todas las demás áreas.
  • Stub / NSSA: Áreas que limitan rutas externas para reducir carga.

Configuración de áreas en Huawei:

<Huawei> system-view
[Huawei] ospf 1
[Huawei-ospf-1] area 0.0.0.0
[Huawei-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255

📐 Soporte para VLSM y CIDR

  • VLSM: Permite usar distintas máscaras dentro de una red.
  • CIDR: Facilita sumarización y mejor aprovechamiento de direcciones.

Configuración en Huawei:

<Huawei> system-view
[Huawei] ospf 1
[Huawei-ospf-1] area 0.0.0.0
[Huawei-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255

🔁 Interoperabilidad

  • Estandarización: Cumple con RFC 2328.
  • Multivendor: Compatible con múltiples fabricantes.
  • Con MPLS: Comúnmente usado como protocolo interno en redes MPLS.

Ejemplo de configuración en Huawei:

<Huawei> system-view
[Huawei] ospf 1
[Huawei-ospf-1] import-route static
[Huawei-ospf-1] import-route direct

⚙️ Funcionamiento de OSPF

🔍 1. Descubrimiento de Vecinos

  • Propósito: Identificar y formar relaciones con routers vecinos.
  • Mecanismo: Intercambio de mensajes Hello para verificar parámetros.
  • Resultado: Se establece la relación si los parámetros coinciden.

Comando de verificación:

display ospf peer

🔄 2. Intercambio de Información

  • Propósito: Sincronizar la base de datos LSDB.
  • Paquetes involucrados: Hello, DBD, LSR, LSU, LSAck.

Comando de monitoreo:

debug ospf adjacency

🌲 3. Cálculo del Árbol SPF

  • Propósito: Determinar la mejor ruta mediante el algoritmo Dijkstra.
  • Mecanismo: Se construye el árbol SPF a partir de la LSDB.

Comando para ver la tabla calculada:

display ospf routing

🔁 4. Actualización Incremental

  • Propósito: Minimizar sobrecarga propagando solo los cambios.
  • Mecanismo: Uso de LSUs cuando hay cambios de topología.
  • Resultado: Red siempre actualizada sin retransmisión completa.

Comando Huawei:

display ospf lsdb

✉️ Mensajes de OSPF

OSPF utiliza cinco tipos de mensajes clave para coordinar routers:

👋 1. Hello Packets
  • Propósito: Detectar y mantener vecinos OSPF.
  • Contenido: ID del área, intervalos Hello/Dead, lista de vecinos.

Ejemplo CLI Huawei:

<Huawei> display ospf peer
Neighbor ID Pri State Dead Time Address Interface
192.168.2.2 1 Full/DR 00:00:30 192.168.2.1 GE0/0/1
📋 2. Database Description (DBD)
  • Propósito: Enviar resumen de LSDB al vecino.
  • Proceso: Compara y sincroniza estado de enlaces.

Ejemplo Debug:

OSPF: Sending Database Description packet to neighbor 192.168.2.2
OSPF: Neighbor 192.168.2.2 state changed from ExStart to Exchange
📥 3. Link State Request (LSR)
  • Propósito: Solicitar información detallada sobre enlaces específicos.
  • Proceso: Enviado cuando hay discrepancias en la LSDB.
  • Contenido: Tipo de LSA solicitado, ID del enlace.
OSPF: Received Link State Request from 192.168.2.2
OSPF: Processing LSR for Link ID 192.168.3.1
📤 4. Link State Update (LSU)
  • Propósito: Propagar información nueva o modificada de enlaces.
  • Proceso: Envía LSAs para notificar a los vecinos sobre cambios.
  • Contenido: LSA actualizados o nuevos.
OSPF: Sending Link State Update to 192.168.2.2
OSPF: LSA Type: Router LSA, Link ID: 192.168.3.1, SeqNum: 0x80000002
✅ 5. Link State Acknowledgment (LSAck)
  • Propósito: Confirmar la recepción de LSUs.
  • Proceso: Se envía un acuse de recibo al vecino.
  • Contenido: Confirmación de LSA recibido.
OSPF: Received Link State Update from 192.168.2.2
OSPF: Sending Link State Acknowledgment for Link ID 192.168.3.1

📊 Resumen de los Mensajes de OSPF

Mensaje Propósito Acción
HelloDescubrir y mantener vecinos.Lista vecinos y verifica conectividad.
Database DescriptionResumir la base de datos de enlaces.Comparación de LSDB entre vecinos.
Link State RequestSolicitar información detallada.Solicita LSAs específicos.
Link State UpdatePropagar actualizaciones.Envía LSAs modificados o nuevos.
Link State AcknowledgmentConfirmar recepción de actualizaciones.Reconoce LSAs recibidos correctamente.

🗺️ Tipos de Áreas en OSPF con Ejemplos

📍 1. Área Normal

Descripción:

  • Contiene routers internos y rutas internas.
  • Conectada al área 0 (backbone).
  • Permite rutas internas y externas.

Ejemplo de Configuración:

router ospf 1
network 192.168.1.0 0.0.0.255 area 1

Explicación: El área 1 es una área normal que permite el intercambio completo de rutas.

🚫 2. Stub Area

Descripción:

  • Bloquea rutas externas.
  • Utiliza una ruta por defecto hacia redes externas.

Ejemplo de Configuración:

router ospf 1
area 2 stub
network 192.168.2.0 0.0.0.255 area 2

Explicación: El área 2 se configura como Stub para optimizar el tamaño de la tabla de enrutamiento.

🔒 3. Totally Stubby Area

Descripción:

  • Bloquea rutas externas e internas de otras áreas.
  • Sólo permite una ruta por defecto desde el backbone.

Ejemplo de Configuración:

router ospf 1
area 3 stub no-summary
network 192.168.3.0 0.0.0.255 area 3

Explicación: El área 3 recibe sólo una ruta por defecto del área 0.

🌐 4. NSSA (Not-So-Stubby Area)

Descripción:

  • Permite redistribuir rutas externas dentro del área.
  • No propaga esas rutas externas hacia el backbone como rutas externas tradicionales.

Ejemplo de Configuración:

router ospf 1
area 4 nssa
network 192.168.4.0 0.0.0.255 area 4

Explicación: El área 4 redistribuye rutas externas sin perder las ventajas de un área stub.

🧩 5. Backbone Area (Área 0)

Descripción:

  • Es el núcleo central de OSPF.
  • Todas las demás áreas deben conectarse al Área 0 para intercambiar rutas.

Ejemplo de Configuración:

router ospf 1
network 10.0.0.0 0.0.0.255 area 0

Explicación: El backbone Área 0 es esencial para interconectar todas las demás áreas en una red OSPF.

📋 Resumen de Áreas con Casos de Uso

Tipo de Área Descripción Caso de Uso
Área Normal Acepta rutas internas y externas. Redes grandes con comunicación interna y externa.
Stub Area Bloquea rutas externas, usa ruta por defecto. Optimizar recursos en redes con tráfico limitado.
Totally Stubby Area Acepta solo una ruta por defecto. Redes pequeñas con poco tráfico.
NSSA Redistribuye rutas externas dentro del área. Conexiones hacia redes externas sin propagación global.
Backbone Area (Área 0) Conecta todas las demás áreas y distribuye rutas. Esencial en cualquier implementación OSPF.

📦 2. Database Description (DBD)

  • Propósito: Intercambiar un resumen de las LSDB entre routers vecinos.
  • Proceso: Se indican LSAs conocidos y se solicitan detalles si hay diferencias.
  • Contenido Clave: Resumen de LSAs y sincronización de LSDB.

Ejemplo de Debug CLI:

OSPF: Sending Database Description packet to neighbor 192.168.2.2
OSPF: Neighbor 192.168.2.2 state changed from ExStart to Exchange

📥 3. Link State Request (LSR)

  • Propósito: Solicitar información detallada de un LSA específico.
  • Proceso: El router detecta diferencias y solicita los datos faltantes.
  • Contenido Clave: Tipo de LSA e ID del enlace.

Ejemplo de Debug CLI:

OSPF: Received Link State Request from 192.168.2.2
OSPF: Processing LSR for Link ID 192.168.3.1

📤 4. Link State Update (LSU)

  • Propósito: Notificar cambios en la red mediante envío de LSAs.
  • Proceso: Los routers propagan LSUs a sus vecinos.
  • Contenido Clave: LSAs nuevos o modificados.

Ejemplo de Debug CLI:

OSPF: Sending Link State Update to 192.168.2.2
OSPF: LSA Type: Router LSA, Link ID: 192.168.3.1, SeqNum: 0x80000002

✅ 5. Link State Acknowledgment (LSAck)

  • Propósito: Confirmar la recepción de LSUs.
  • Proceso: Un router responde con un LSAck para indicar que ha recibido y procesado las actualizaciones enviadas.
  • Contenido Clave: Confirmación del LSA recibido.

Ejemplo de Debug CLI:

OSPF: Received Link State Update from 192.168.2.2
OSPF: Sending Link State Acknowledgment for Link ID 192.168.3.1

📋 Resumen de los Mensajes de OSPF

Mensaje Propósito Acción
Hello Descubrir y mantener vecinos. Lista vecinos y verifica conectividad.
Database Description Resumir la base de datos de enlaces. Comparación de LSDB entre vecinos.
Link State Request Solicitar información detallada. Solicita LSAs específicos.
Link State Update Propagar actualizaciones. Envía LSAs modificados o nuevos.
Link State Acknowledgment Confirmar recepción de actualizaciones. Reconoce LSAs recibidos correctamente.

📶 Estados de Adyacencia en Huawei OSPF

🔻 Estado: Down

  • Descripción: No hay comunicación con el vecino OSPF. No se han enviado ni recibido paquetes Hello.

Comando:

display ospf peer

Salida de Ejemplo:

OSPF Process 1 with Router ID 192.168.1.1
Neighbor(s) State
Neighbor ID        Pri   State         Dead Time   Address         Interface
192.168.2.2          1     Down           00:00:00    192.168.2.1         GE0/0/1

Explicación: El estado "Down" indica que aún no hay comunicación entre el router local y el vecino.

⚠️ Estado: Init

  • Descripción: Se ha recibido un paquete Hello del vecino, pero no hay relación bidireccional.

Comando:

display ospf peer

Salida de Ejemplo:

OSPF Process 1 with Router ID 192.168.1.1
Neighbor(s) State
Neighbor ID        Pri   State         Dead Time   Address         Interface
192.168.2.2          1     Init           00:00:30    192.168.2.1         GE0/0/1

Explicación: En el estado "Init", el router ha recibido el paquete Hello, pero el vecino no ha reconocido al router local.

🔁 Estado: Two-Way

  • Descripción: Relación bidireccional establecida. Ambos routers han intercambiado paquetes Hello.

Comando:

display ospf peer

Salida de Ejemplo:

OSPF Process 1 with Router ID 192.168.1.1
Neighbor(s) State
Neighbor ID        Pri   State         Dead Time   Address         Interface
192.168.2.2          1     2-Way           00:00:30    192.168.2.1         GE0/0/1

Explicación: En este estado, los routers eligen un DR (Designated Router) y un BDR (Backup Designated Router).

📤 Estado: ExStart

  • Descripción: Inicia la negociación para sincronizar las bases de datos. Se elige un maestro y un esclavo.

Comando:

debug ospf adjacency

Salida de Ejemplo:

OSPF: Neighbor 192.168.2.2 on GE0/0/1 state changed from 2-Way to ExStart
OSPF: Negotiating Master/Slave with neighbor 192.168.2.2

Explicación: El router negocia roles para decidir quién enviará primero los detalles de la base de datos.

🔄 Estado: Exchange

  • Descripción: Los routers intercambian descripciones de sus bases de datos de estado de enlace (LSDB).

Comando:

debug ospf adjacency

Salida de Ejemplo:

OSPF: Neighbor 192.168.2.2 on GE0/0/1 state changed from ExStart to Exchange
OSPF: Sending Database Description packet to neighbor 192.168.2.2

Explicación: En este estado, los routers verifican si necesitan más información sobre los enlaces.

📥 Estado: Loading

  • Descripción: Los routers solicitan y reciben información adicional sobre enlaces que no estaban en la base de datos.

Comando:

debug ospf packet

Salida de Ejemplo:

OSPF: Neighbor 192.168.2.2 on GE0/0/1 state changed from Exchange to Loading
OSPF: Sending Link State Request packet to neighbor 192.168.2.2

Explicación: Los routers solicitan detalles específicos sobre las rutas y enlaces desconocidos.

✅ Estado: Full

  • Descripción: La sincronización de la base de datos está completa, y los routers han establecido una adyacencia total.

Comando:

display ospf peer

Salida de Ejemplo:

OSPF Process 1 with Router ID 192.168.1.1
Neighbor(s) State
Neighbor ID        Pri   State         Dead Time   Address         Interface
192.168.2.2          1     Full/DR           00:00:30    192.168.2.1         GE0/0/1

Explicación: En este estado, ambos routers tienen la misma información de la red y pueden enrutar paquetes de manera eficiente.

📊 Resumen de Estados en Huawei

Estado Descripción Comando Salida de Ejemplo
Down Sin comunicación. display ospf peer 192.168.2.2 Down 00:00:00
Init Paquete Hello recibido. display ospf peer 192.168.2.2 Init 00:00:30
Two-Way Comunicación bidireccional. display ospf peer 192.168.2.2 2-Way 00:00:30
ExStart Inicio de sincronización. debug ospf adjacency OSPF: Neighbor ... state changed from 2-Way to ExStart
Exchange Intercambio de descripciones de base de datos. debug ospf adjacency OSPF: Neighbor ... state changed from ExStart to Exchange
Loading Solicitud de información adicional. debug ospf packet OSPF: Sending Link State Request packet
Full Sincronización completa; adyacencia establecida. display ospf peer 192.168.2.2 Full/DR 00:00:30

🔒 Autenticación OSPF

OSPF puede usar autenticación para validar actualizaciones entre vecinos.

🔐 Configuración de Autenticación Simple

interface GigabitEthernet0/0
ip ospf authentication
ip ospf authentication-key MY_PASSWORD

🔐 Configuración de Autenticación MD5

interface GigabitEthernet0/0
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 MY_MD5_PASSWORD

🧩 Tipos de OSPF y Ejemplos Simples

OSPF (Open Shortest Path First) admite varios tipos de redes y áreas para adaptarse a diferentes configuraciones de red. Aquí se describen los tipos más comunes con ejemplos sencillos.

🌐 1. OSPF de Área Normal (Backbone y No-Backbone)

Descripción:

  • Las áreas normales son las más comunes.
  • El área 0 es el backbone, y todas las demás áreas deben conectarse a este.

Ejemplo:

  • Área 0 (Backbone): Conecta sucursales principales.
  • Área 1: Contiene redes locales.

Configuración:

router ospf 1
network 192.168.1.0 0.0.0.255 area 0
network 10.0.0.0 0.0.0.255 area 1

🏡 2. OSPF Stub Area (Área de Extremo)

Descripción:

  • Bloquea rutas externas (redistribuidas) para reducir el tamaño de la tabla de enrutamiento.
  • Sólo permite rutas internas y una ruta por defecto.

Ejemplo:

  • Red de una sucursal que solo necesita comunicarse con el área 0.

Configuración:

router ospf 1
area 1 stub
network 192.168.2.0 0.0.0.255 area 1

🚪 3. OSPF Totally Stubby Area (Área Totalmente Stub)

Descripción:

  • No permite rutas externas ni inter-área. Solo acepta rutas por defecto.
  • Ideal para redes pequeñas con recursos limitados.

Ejemplo: Pequeño sitio remoto que solo necesita acceso a Internet.

Configuración:

router ospf 1
area 2 stub no-summary
network 192.168.3.0 0.0.0.255 area 2

🔁 4. OSPF NSSA (Not-So-Stubby Area)

Descripción:

  • Similar a Stub, pero permite redistribuir rutas externas dentro del área.
  • Las rutas externas se convierten en rutas tipo NSSA (Tipo 7) y se traducen en Tipo 5 en el área 0.

Ejemplo: Sucursal que necesita conectar dispositivos externos a la red principal.

Configuración:

router ospf 1
area 3 nssa
network 192.168.4.0 0.0.0.255 area 3

🧱 5. Backbone Area (Área 0)

Descripción:

  • Es el núcleo de la red OSPF.
  • Conecta todas las demás áreas.

Ejemplo: Conecta oficinas principales y servidores centrales.

Configuración:

router ospf 1
network 172.16.0.0 0.0.255.255 area 0

⚙️ Configuración Avanzada de OSPF

Aquí tienes un manual completo que incluye OSPF, MPLS, explicaciones detalladas de las configuraciones proporcionadas, y configuraciones adaptadas con nombres ficticios y datos de ejemplo. También se detalla la función de cada comando.

🌐 OSPF y MPLS

Son tecnologías complementarias en redes empresariales avanzadas. Juntas, permiten un enrutamiento eficiente y segmentación de tráfico para cumplir con los requisitos de redes modernas.

🔗 1. Rol de OSPF en MPLS

  • Propagación de rutas: OSPF distribuye información de enrutamiento en toda la red.
  • Convergencia rápida: Permite que MPLS actualice sus rutas rápidamente en caso de fallos.
  • Base para LDP (Label Distribution Protocol): OSPF establece rutas IP que MPLS utiliza para asignar etiquetas.

🔐 2. MPLS y OSPF en Redes VPN

  • MPLS usa etiquetas para enrutar tráfico más rápido y aislar clientes.
  • OSPF proporciona conectividad entre sitios al propagar rutas dentro de las instancias de VPN.

🎯 3. Beneficios Combinados

  • Escalabilidad: MPLS segmenta redes grandes mediante VRFs y OSPF asegura conectividad interna.
  • Redundancia: OSPF ofrece rutas de respaldo para enlaces MPLS.
  • QoS: MPLS prioriza tráfico crítico, mientras OSPF mantiene rutas óptimas.

🛠️ Configuración de OSPF en Redes MPLS

📡 1. Configuración del Proveedor de Servicios (PE)

🔧 Configuración BGP
bgp 65000
router-id 192.168.1.1
ipv4-family vpnv4
policy vpn-target
nexthop recursive-lookup delay 1
ipv4-family vpn-instance VPN_CLIENTE_A
preference 20 200 200
import-route direct
import-route static
import-route ospf 1 route-policy RP_VPN_CLIENTE_A

Explicación:

  1. bgp 65000: Activa el protocolo BGP con ASN 65000.
  2. router-id 192.168.1.1: Define el identificador del router para BGP.
  3. ipv4-family vpnv4: Habilita la familia de direcciones VPNv4.
  4. policy vpn-target: Aplica políticas de VPN.
  5. ipv4-family vpn-instance VPN_CLIENTE_A: Configura BGP para la instancia de cliente.
  6. import-route ospf 1: Importa rutas de OSPF al proceso BGP.
📦 Configuración de la VPN y Políticas
ip vpn-instance VPN_CLIENTE_A
description CLIENTE_A
ipv4-family
route-distinguisher 65000:100
export route-policy VPN_CLIENTE_A
apply-label per-instance
vpn-target 65000:100 export-extcommunity
vpn-target 65000:200 import-extcommunity

Explicación:

  1. ip vpn-instance: Crea una instancia VPN llamada VPN_CLIENTE_A.
  2. route-distinguisher: Asigna un identificador único para diferenciar rutas (RD).
  3. vpn-target: Define comunidades extendidas para importar/exportar rutas.

🛠️ Configuración OSPF en el PE

ospf 1 router-id 192.168.2.1 vpn-instance VPN_CLIENTE_A
import-route direct
import-route static
import-route bgp
peer 192.168.2.2
peer 192.168.2.3
area 0.0.0.5
network 192.168.2.0 0.0.0.255
nssa default-route-advertise no-import-route no-summary

Explicación:

  1. ospf 1: Activa OSPF con ID 1.
  2. router-id: Identifica el router en OSPF.
  3. import-route: Importa rutas estáticas, directas y de BGP.
  4. peer: Configura vecinos OSPF.
  5. area 0.0.0.5: Define un área OSPF y asocia redes.

🏠 2. Configuración del CPE (Cliente)

📘 Configuración OSPF
ospf 1 router-id 10.1.1.1
import-route direct route-policy RP_CONNECTED
peer 10.1.1.2
area 0.0.0.5
network 10.1.1.0 0.0.0.255
nssa

Explicación:

  1. ospf 1: Activa OSPF con ID 1.
  2. import-route direct: Importa rutas directas según la política RP_CONNECTED.
  3. peer: Configura el vecino en el área NSSA.
  4. nssa: Define un área NSSA que no importa rutas externas.
🔌 Configuración de Interfaces
interface GigabitEthernet0/0/1
description WAN_CLIENTE
ip address 10.1.1.2 255.255.255.0
qos car inbound cir 20480 pir 20480
ospf network-type p2mp
ospf timer dead 60

Explicación:

  1. interface: Configura la interfaz de acceso WAN.
  2. ip address: Asigna una dirección IP a la interfaz.
  3. ospf network-type p2mp: Define el tipo de red OSPF como punto a multipunto.
  4. ospf timer dead: Configura el temporizador para detectar fallos.

✅ Conclusión

OSPF combinado con MPLS ofrece una solución escalable y eficiente para redes empresariales complejas. La configuración de PE y CPE incluye importación de rutas, políticas de enrutamiento y soporte para VRFs. Los comandos de diagnóstico aseguran una operación estable y permiten la solución rápida de problemas.

---