Comandos OSPF

Fabricante LSA1 LSA2 LSA5 Opaque-area (TE)
Cisco show ip ospf database router show ip ospf database network show ip ospf database external
Cisco NX-OS show ip ospf database router detail show ip ospf database network detail show ip ospf database external detail
Fortinet get router info ospf database router lsa get router info ospf database network lsa get router info ospf database external lsa
FRR/Quagga show ip ospf database router show ip ospf database network show ip ospf database external show ip ospf database opaque-area
Ruckus show ip ospf database link-state router show ip ospf database link-state network show ip ospf database external-link-state
Juniper show ospf database router extensive | no-more show ospf database network extensive | no-more show ospf database external extensive | no-more
Bird show ospf state all show ospf state all show ospf state all
Nokia show router ospf database type router detail show router ospf database type network detail show router ospf database type external detail
Mikrotik /routing ospf lsa print detail file=lsa.txt /routing ospf lsa print detail file=lsa.txt /routing ospf lsa print detail file=lsa.txt
Huawei display ospf lsdb router display ospf lsdb network display ospf lsdb ase
Paloalto show routing protocol ospf dumplsdb show routing protocol ospf dumplsdb show routing protocol ospf dumplsdb
HP show ip ospf link-state detail (Stub subnets without mask!) show ip ospf link-state detail show ip ospf external-link-state(LSA5 subnets without mask!)
Ubiquiti show ip ospf database router show ip ospf database network show ip ospf database external
Allied Telesis show ip ospf database router show ip ospf database network show ip ospf database external
Extreme show ospf lsdb detail lstype router show ospf lsdb detail lstype network show ospf lsdb detail lstype as-external
Ericsson show ospf database router detail show ospf database network detail show ospf database external detail
Obligatoriedad YES YES NO Opcional (TE)

Comandos OSPFv3

Visualización de topología LSDB OSPFv3 (RFC 5340). Guarda el resultado del comando en un archivo con extensión .txt o .log y súbelo a Topolograph.

Fabricante Comando Soporte API
Arista show ipv6 ospf database detail YES

Guarda el resultado de al menos dos comandos OSPF (para obtener LSA1 y LSA2) o un único comando IS-IS y súbelo a Topolograph con extensión .txt o .log.

Comandos IS-IS

Fabricante Comando Soporte API
Cisco show isis database detail YES
Juniper show isis database extensive YES
Nokia show router isis database detail YES
Huawei display isis lsdb verbose YES
FRR show isis database detail* (router-isis#no hostname dynamic) YES

*FRR mezcla LSPIDs y nombres de host dinámicos en la LSDB IS-IS, por lo que solo se admite la construcción de topología IS-IS sin nombres de host. «no hostname dynamic» desactiva los nombres de host dinámicos en la LSDB IS-IS local.

Soporte de TLV IS-IS

Nombre del TLV Número de TLV Cisco Juniper Nokia FRR Huawei ZTE
IS Reachability 2 YES YES YES YES YES
Extended IS Reachability (new) 22 YES YES YES YES YES YES
IPv4 Internal Reachability (old) 128 YES YES YES YES YES
IPv4 External Reachability (old) 130
Extended IPv4 Reachability (new) 135 YES YES YES YES YES YES
IPv6 Reachability 2 YES YES YES YES YES YES

Vista general (GeneralView)

La red de demostración ya está cargada para todos. Pulsa «Load dynamic graph» para cargarla. Una vez cargada, verás la topología; las líneas en negrita indican enlaces ECMP. Grafo de demostración en Topolograph

Pulsa sobre la línea en negrita para desplegar el ECMP y ver todos los enlaces anidados. Topolograph: pulsa la línea en negrita para desplegar el ECMP

Camino más corto. Cómo construirlo.

Es posible construir el camino más corto desde un nodo. Haz clic derecho sobre un nodo. La descripción con todos los nodos y el coste del camino aparece encima de la topología. Topolograph: construcción del camino más corto desde un nodo

Una vez establecidos el origen y el destino, el camino más corto quedará resaltado. Topolograph: caminos más cortos OSPF

Todos los caminos más cortos a todos los nodos. Árbol de caminos mínimos.

Nueva función de la versión v2.11. MST permite ver todos los caminos más cortos hacia o desde un nodo. Actívalo desde este selector. Topolograph MST: todos los caminos más cortos hacia o desde un nodo

Nueva función de v2.11. Todos los caminos más cortos entrantes están construidos hacia el nodo. Topolograph: todos los caminos más cortos entrantes

Nueva función de v2.11. Todos los caminos más cortos salientes están construidos desde el nodo. Topolograph: todos los caminos más cortos salientes

Nueva función de v2.13. Diferencia entre los caminos más cortos entrantes y salientes del nodo seleccionado. Topolograph: diferencia entre caminos más cortos entrantes y salientes

Búsqueda del dispositivo de terminación de red

¿Cómo saber qué redes terminan en un nodo concreto? Hay dos formas. La primera: empieza a escribir el ID del nodo en el campo «Find node by RID/IP. Find network» y verás todas las redes terminadas en ese nodo. Redes terminadas en el nodo

El segundo método es hacer clic sobre un nodo. Aparece un formulario con la lista de todas las redes con y sin respaldo. Una red se considera con respaldo si está terminada en al menos dos nodos. Redes terminadas con estado de respaldo

Caminos de respaldo. Emulación de fallo de enlace.

Para encontrar el camino de respaldo, pulsa sobre la arista resaltada. Simularás un fallo de enlace y el camino más corto se reconstruirá evitando la arista «caída». Topolograph: camino de respaldo OSPF

Reconstrucción del camino más corto cambiando el coste OSPF al vuelo

Es posible cambiar el coste OSPF de cualquier enlace. Haz clic derecho sobre una arista y aparecerá un formulario. Escribe el nuevo coste. Imagina que necesitas redirigir el tráfico del enlace 123.10.10.10 - 123.30.30.30 a otro enlace. Topolograph: preparación del cambio de coste OSPF

Haz clic derecho sobre la arista resaltada y establece 12. Obtendremos un nuevo flujo de tráfico con el nuevo coste OSPF. Topolograph: resultado del cambio de coste OSPF

Comparar el estado de la red en distintos momentos

Cuando realizas cambios de configuración (añadir una nueva red, redistribuir otro protocolo en OSPF o cambiar filtros en route-maps) es muy recomendable verificar que los resultados coinciden con lo esperado. Para ello, sube el estado de la red antes y después de los cambios y compáralos. Se mostrará:

Topolograph: comparación de estados de la red OSPF

NetworkReactionOnFailure

En este modo es posible simular la caída de un enlace o router. La topología se repintará con el flujo de tráfico esperado evitando el elemento fallido.

Carga un grafo si aún no lo has hecho y pulsa NetworkReactionOnFailure.

Topolograph: simulación de caída de enlace OSPF

Como puede verse, la tasa de disminución de tráfico del nodo 123.30.30.30 hacia 123.123.30.30 y 123.123.31.31 difiere de la dirección opuesta [de 123.123.30.30 a 123.30.30.30] hasta ~2 veces. Esto ocurre debido a la ruta de tráfico asimétrica. Topolograph: simulación de caída de enlace OSPF con estadísticas

También podemos ver el aumento esperado de tráfico en la arista pintada de azul. Topolograph: resultado de la simulación de caída de enlace OSPF

Topolograph construye la topología basándose en la adyacencia OSPF y la conectividad física está oculta. En algunos casos podemos asumir que los vecinos comparten el mismo medio. Por ejemplo, si los vecinos tienen un DR común, asumimos que están conectados por medio físico compartido y al emular el fallo de una arista entre esos vecinos, se emulan todas las aristas como caídas.

Marcar todos los enlaces de medio compartido (con DR común) como habilitados Topolograph: simulación de caída de enlace con medio compartido

Si los vecinos no tienen DR, o lo tienen pero solo hay dos vecinos en el enlace, al emular el fallo de arista se elimina únicamente el enlace entre esos dos vecinos concretos.

Marcar todos los enlaces de medio compartido (con DR común) como deshabilitados Topolograph: simulación de caída de enlace con medio dedicado

Reacción de la red si un dispositivo de red cae. Simular caída de dispositivo.

Haz clic derecho sobre un nodo y elige «shutdown this node». El algoritmo excluye ese nodo. Topolograph: reacción de la red ante la caída de un dispositivo

La reacción de la red ante la caída del nodo 123.123.101.101. Topolograph: reacción de la red ante la caída de un dispositivo

En la pestaña NetworkReactionOnFailure es posible ver la reacción de la red ante un cambio de coste OSPF al vuelo. Establece el nuevo coste OSPF en el menú contextual de la arista (clic derecho). Topolograph: reacción de la red ante cambio de coste OSPF

Modo de diseño de red

OSPF/IS-IS LSDB <-> YAML son intercambiables en ambas direcciones: permite diseñar un dominio IGP desde cero o basándose en una LSDB cargada, añadir nuevos enlaces o cambiar costes, y comprobar la reacción de la red.

Topología básica basada en YAML.

Construye un grafo con nodos y aristasdefinidos. Topología básica basada en YAML

Atributos de nodo

El nombre del nodo es obligatorio. Debe estar en formato de dirección IP. Para cambiarlo a otro valor usa label

Las etiquetas de nodo son opcionales. Cualquier par clave (cadena): valor (str, int, float, diccionario, lista).

Atributos de nodo y solicitud REST API para obtener nodos

Hay un grafo con 6 nodos. Selecciona todos los nodos primarios (ha_role: primary) en el primer DC (dc1)

Atributos de arista

src, dst son obligatorios.

cost es opcional. El valor por defecto es 1. Equivale al coste OSPF/IS-IS.

directed es opcional. El valor por defecto es false.

Las etiquetas de arista son opcionales. Cualquier par clave (cadena): valor (str, int, float, diccionario, lista).

Atributos de arista y solicitud REST API para obtener aristas

Selecciona todas las aristas del ISP verizon entre 10.10.10.2 y 10.10.10.4

Añadamos un nuevo enlace con coste 1 entre los dispositivos R3 (10.10.10.3) y R4 (10.10.10.4) y veamos cómo reacciona la red. Topolograph: reacción de la red al añadir un nuevo enlace

Como es evidente, el tráfico aumenta en el enlace directo R3<->R4 y disminuye hacia R2 (10.10.10.2) y R5 (10.10.10.5).

Analítica

En este modo es posible ejecutar algoritmos para verificar tu red OSPF.

Muestra todos los enlaces unidireccionales (el número de enlaces IN y OUT entre dos vecinos no es igual) Topolograph: enlaces OSPF unidireccionales y asimétricos

La arista aparece marcada en rojo por tener métricas OSPF distintas: coste 1 y coste 10 Topolograph: informe de enlaces unidireccionales y asimétricos

Caminos asimétricos.

Muestra todos los caminos asimétricos desde distintos puntos de vista. Topolograph: menú de caminos OSPF asimétricos

Obtenemos una lista de nodos con caminos asimétricos. Al revisarlos se puede ver la diferencia entre caminos entrantes y salientes. Topolograph: informe de caminos OSPF asimétricos

Caminos principales y de respaldo por el mismo ECMP.

Suponemos que si varios enlaces están agrupados en ECMP y el enlace principal cae, el camino de respaldo debe pasar por el segundo enlace del mismo ECMP.

Comprobación superada

Topolograph: caminos OSPF por ECMP

Si el camino de respaldo no pasa por el ECMP y elige una ruta completamente diferente, el informe se considera fallido.

Comprobación fallida

Topolograph: caminos OSPF no por el segundo enlace del ECMP

Caminos de respaldo por ubicaciones de terceros.

Este informe verifica que si dos ubicaciones están directamente conectadas, los caminos de respaldo deben ser únicamente entre esas dos ubicaciones y no transitar por una tercera. Antes de ejecutarlo, es necesario crear grupos (~nombres de sitios/ubicaciones) y asignar dispositivos a los grupos. Por ejemplo, hay dos ubicaciones en Francia: la principal (EU_FRA) y la remota (EU_FRA1). El mismo esquema con oficinas en Italia. Las oficinas principales de Francia e Italia están conectadas entre sí con un enlace principal (coste OSPF 10) y uno de respaldo (coste OSPF 20).

Las oficinas remotas tienen el enlace principal (coste OSPF 1) a sus oficinas principales y el enlace de respaldo (coste OSPF 10) a la oficina extranjera.

Topolograph: enrutamiento OSPF dentro de la ubicación

Si el enlace principal entre las oficinas principales cae, ¡el camino de respaldo pasa por las oficinas remotas!

Comprobación fallida

Topolograph: caminos de respaldo OSPF por ubicaciones de terceros

Mapa de calor de la red

En la pestaña Analytics es posible ver cuántas subredes terminadas tienen respaldo mediante la terminación de la misma subred en distintos dispositivos. Topolograph: mapa de calor de la red OSPF

Haz clic sobre un nodo para descubrir qué redes tienen respaldo y cuáles no. Topolograph: mapa de calor con redes

Como se puede ver, solo el loopback del propio dispositivo no tiene respaldo, lo cual es normal. Topolograph: mapa de calor con loopback

Redes duplicadas [MPLS]

"Analítica/Redes terminadas duplicadas. El problema que MPLS tiene con las duplicaciones de IP en la red se debe a que las etiquetas se generan en función de bloques IP, que pueden duplicarse. Como resultado, el mismo bloque IP puede asociarse a etiquetas distintas. Esto lleva a que el mismo bloque, con etiquetas diferentes, se propague a otros routers, incluido el que tiene la IP duplicada. Resulta especialmente problemático al implementar MPLS Traffic Engineering (MPLS-TE) o RSVP-TE, ya que puede degradar el rendimiento y provocar errores de enrutamiento. Por tanto, la duplicación de bloques es crítica en entornos MPLS, principalmente por la generación de etiquetas duplicadas para el mismo bloque. En los routers, esto provoca confusión al recalcular rutas TE o RSVP-TE."

Feature request. #issues/6
Red Número de nodos terminadores Nombres de nodos
10.0.0.0/24 4 [172.16.1.2, 172.26.1.2], [172.30.2.1, 178.20.3.1]

La red 10.0.0.0/24 está terminada en cuatro nodos: 172.16.1.2 y 172.26.1.2 están directamente conectados, 172.30.2.1 y 178.20.3.1 están directamente conectados, pero no entre sí.

API

Puedes usar tu herramienta NetDevOps favorita (Ansible, netmiko, Nornir, Topolograph SDK, etc.) para subir el grafo de red OSPF a Topolograph mediante una solicitud POST. Una vez subido, recibirás la diferencia con los grafos subidos anteriormente, concretamente:

Obtener credenciales.

Es necesario crear una cuenta con email y contraseña en la página Login/Registro, así como añadir tu IP/red de origen a la lista de redes autorizadas en la pestaña API.

Subir topología OSPF mediante API

Guarda el resultado de los comandos con LSA1, LSA2, LSA5 en un único archivo - cisco_lsdb_output.txt

      import requests
      from pprint import pprint as pp
      with open('cisco_lsdb_output.txt') as f:
        lsdb_output = f.read()
        r_post = requests.post('https://topolograph.com/api/graph', auth=('youraccount@domain.com', 'your-pass'),
                                json={'lsdb_output': lsdb_output, 'vendor_device': 'Cisco'})
        pp(r_post.json())
      

Con Python leemos el contenido del archivo y lo enviamos (solicitud POST) a Topolograph.

La respuesta contiene:

  • diferencia con los grafos subidos anteriormente
  • enlace para obtener todas las redes
  • estado de las comprobaciones realizadas
  •         >>> pp(r_post.json())
            {'diff': {'compared_with_graph_time': '02Jun2021_21h18m04s_13_hosts',
                      'graphs_diff': {'all_edges_stats_ll': [{'dst_node': '123.123.110.110',
                                                              'link_cost': 10,
                                                              'link_status': 'old',
                                                              'src_node': '123.123.100.100'},
                                                             {'dst_node': '123.123.111.111',
                                                              'link_cost': 10,
                                                              'link_status': 'old',
                                                              'src_node': '123.123.101.101'},
                                                             {'dst_node': '123.123.100.100',
                                                              'link_cost': 10,
                                                              'link_status': 'old',
                                                              'src_node': '123.123.110.110'},
                                                             {'dst_node': '123.123.101.101',
                                                              'link_cost': 10,
                                                              'link_status': 'old',
                                                              'src_node': '123.123.111.111'}],
                                      'new_nodes': [],
                                      'old_nodes': []},
                      'networks_diff': {'new_subnets_attr_dd_ll': [{'rid': '123.30.30.30',
                                                                    'subnet': '30.30.30.30/32'}],
                                        'old_subnets_attr_dd_ll': [{'rid': '123.10.10.10',
                                                                    'subnet': '1.2.3.0/30'}]}},
            'graph_time': '08Jun2021_20h15m26s_13_hosts',
            'hosts': {'count': 12},
            'networks': {'backuped': 14,
                          'count': 38,
                          'notbackuped': 24,
                          'url_link': 'https://topolograph.com/api/network/08Jun2021_20h15m26s_13_hosts'},
            'reports': {'asym_edges_pass_status': False},
            'timestamp': '2021-06-8T20:15:26.265000'}
          

    Diferencia visual entre estados OSPF. Topolograph: diferencia de estados OSPF

            >>> pp(r_post.json())
            {'diff': {'compared_with_graph_time': '02Jun2021_21h18m04s_13_hosts',
                      'graphs_diff': {'all_edges_stats_ll': [{'dst_node': '123.123.110.110',
                                                              'link_cost': 10,
                                                              'link_status': 'old',
                                                              'src_node': '123.123.100.100'},
                                                             {'dst_node': '123.123.111.111',
                                                              'link_cost': 10,
                                                              'link_status': 'old',
                                                              'src_node': '123.123.101.101'},
                                                             {'dst_node': '123.123.100.100',
                                                              'link_cost': 10,
                                                              'link_status': 'old',
                                                              'src_node': '123.123.110.110'},
                                                             {'dst_node': '123.123.101.101',
                                                              'link_cost': 10,
                                                              'link_status': 'old',
                                                              'src_node': '123.123.111.111'}],
                                      'new_nodes': [],
                                      'old_nodes': []},
                      'networks_diff': {'new_subnets_attr_dd_ll': [{'rid': '123.30.30.30',
                                                                    'subnet': '30.30.30.30/32'}],
                                        'old_subnets_attr_dd_ll': [{'rid': '123.10.10.10',
                                                                    'subnet': '1.2.3.0/30'}]}},
            'graph_time': '08Jun2021_20h15m26s_13_hosts',
            'hosts': {'count': 12},
            'networks': {'backuped': 14,
                          'count': 38,
                          'notbackuped': 24,
                          'url_link': 'https://topolograph.com/api/network/08Jun2021_20h15m26s_13_hosts'},
            'reports': {'asym_edges_pass_status': False},
            'timestamp': '2021-06-8T20:15:26.265000'}
          
    Subir múltiples LSDB OSPF mediante API

    La topología se construye a partir de LSA1 y LSA2, que son específicos de cada área. Para redes con múltiples áreas, es necesario guardar el resultado de la LSDB de varios dispositivos en archivos separados con el formato Nombre del fabricante_nombre del protocolo.txt

    Por ejemplo, dos LSDBs: Cisco_ospf.txt, Juniper_ospf.txt

    Las LSDBs se guardan en la carpeta lsdb_samples y se envuelven en un diccionario de atributos LSDB

          {'lsdb_output': '...lsdb output...', 'vendor_device': 'Cisco, Juniper...', 'igp_protocol': 'ospf|isis'}
          

    Ejemplo completo:

          import requests
          TOPOLOGRAPH_HOST="127.0.0.1"
          TOPOLOGRAPH_PORT=5000
          TOPOLOGRAPH_WEB_API_USERNAME_EMAIL="your login"
          TOPOLOGRAPH_WEB_API_PASSWORD="your password"
          from pprint import pprint as pp
    
          lsdbs_attr_ll = []
          lsdb_dir = os.path.join(os.getcwd(), 'lsdb_samples')
          for vendor_name, protocol_name in [('Cisco', 'ospf'), ('Juniper', 'ospf')]:
            f_name = os.path.join(lsdb_dir, f"{vendor_name}_{protocol_name}.txt")
            with open(f_name) as f:
              lsdbs_attr_ll.append({'lsdb_output': f.read(), 'vendor_device': vendor_name, 'igp_protocol': protocol_name})
          r_post = requests.post(f'http://{TOPOLOGRAPH_HOST}:{TOPOLOGRAPH_PORT}/api/graphs', auth=(TOPOLOGRAPH_WEB_API_USERNAME_EMAIL, TOPOLOGRAPH_WEB_API_PASSWORD),  json=lsdbs_attr_ll, timeout=(5, 30))
          pp(r_post.json())
          

    La respuesta contiene:

  • diferencia con los grafos subidos anteriormente
  • enlace para obtener todas las redes
  • estado de las comprobaciones realizadas
  • Grupos & VRF

    Pueden existir múltiples instancias de enrutamiento OSPF en un mismo dispositivo en distintas VRFs, lo que provoca duplicación de nodos en el grafo. La pestaña VRF permite apuntar varias instancias OSPF a una sola y evitar la duplicación.

    Hay tres VRFs y tres instancias OSPF en un router. Para evitar la duplicación, crea las VRFs (o impórtalas mediante CSV), asocia el nodo a la VRF y apunta las instancias duplicadas al RID OSPF maestro.

    Topolograph: instancias OSPF VRF

    
            
     
            
    Topolograph 2.61 📣 ¡Únete a la comunidad!