OSPF Commands

Vendor LSA1 LSA2 LSA5 NAPALM support
Cisco show ip ospf database router show ip ospf database network show ip ospf database external YES
Quagga show ip ospf database router show ip ospf database network show ip ospf database external YES
Juniper show ospf database router extensive | no-more show ospf database network extensive | no-more show ospf database external extensive | no-more YES
Bird show ospf state all show ospf state all show ospf state all NO
Nokia show router ospf database type router detail show router ospf database type network detail show router ospf database type external detail YES
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 No
Huawei display ospf lsdb router display ospf lsdb network display ospf lsdb ase No
Paloalto show routing protocol ospf dumplsdb show routing protocol ospf dumplsdb show routing protocol ospf dumplsdb No
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!) No
Ubiquiti show ip ospf database router show ip ospf database network show ip ospf database external No
Allied Telesis show ip ospf database router show ip ospf database network show ip ospf database external No
Extreme show ospf lsdb detail lstype router show ospf lsdb detail lstype network show ospf lsdb detail lstype as-external No
Ericsson show ospf database router detail show ospf database network detail show ospf database external detail No
Mandatory YES YES NO

Save the output from min two OSPF commands (for getting LSA1 and LSA2 ) or single IS-IS command and upload it to Topolograph with .txt or .log extenstion.

IS-IS Commands

Vendor Command Stub network included External (redistributed) network
Cisco show isis database detail YES No, (need tested LSDB for adding it)
Juniper show isis database extensive YES, but need tested LSDB for checking it No, (need tested LSDB for adding it)
Nokia show router isis database detail YES, but need tested LSDB for checking it No, (need tested LSDB for adding it)
Huawei display isis lsdb verbose YES, but need tested LSDB for checking it No, (need tested LSDB for adding it)

GeneralView

Demo network has already uploaded for everyone. Press `Load dynamic graph` in order to upload it. Once you did it - you can see the topology, bold lines show ECMP links. Topolograph demo graph

Press on bold line in order to unflat ECMP and see all nested links. Topolograph Press on bold line in order to unflat ECMP and see all nested links

The shortest path. How to build.

It's possible to build the shortest path from a node. Just right click on a node. The description with all nodes and path cost is available above the topology. Topolograph build the shortest path from a node

Once you set the source and destination - you get colored the shortest path. Topolograph OSPF the shortest paths

All the shortest paths to all nodes. Minimum Shortest Tree.

New feature of v2.11 release. MST allows see all the shortest paths To or From node. Just activate it from this radio-checkbox. Topolograph MST allows see all the shortest paths To or From node

New feature of v2.11 release. All incoming the shortest paths are built to the node. Topolograph all incoming shortest paths

New feature of v2.11 release. All outgoing the shortest paths are built from the node. Topolograph all outgoing shortest paths

New feature of v2.13 release. Difference between incoming and outgoing the shortest paths of selected node. Topolograph difference between incoming and outgoing shortest paths

Network's termination device search

How is it possible to know what networks are terminated on some particular node. Thera are two ways how to know about it. The first one - start typing Node ID in Focus/From field and you will see all terminated networks on the node. Responsive image

The second method is just to press on a node. New form pops up with a list of all backuped and non-backuped networks. The network is trated as backuped if such network is terminated on min two nodes. Responsive image

Backup paths. Link outage emulation.

In order to find out the backup path - just press on colored edge. You will simulate a link outage and the shortest path will be rebuilt passing by a 'failed" edge. Responsive image

Shortest path rebuilding by changing ospf cost on the fly

It's possible to change OSPF cost of any link. Right click on edge, new form pops up. Write new ospf cost in input field. Imagine if we need to redirect a traffic flow from 123.10.10.10 - 123.30.30.30 link to another link. Responsive image

Right click on colored edge and set 12. We get new traffic flow with new OSPF cost. Responsive image

Compare state of your network in different time

When you perform some configuration changes (add new network, redistribute another protocol to OSPF or change filters in existed route-maps) it is highly desire to make sure that results of you action give you expected changes in OSPF network. In order to do this - upload your network before your changes and right after it and compare them. What will be shown:

Responsive image

NetworkReactionOnFailure

In this mode it's possible to simulate a link or router shutdown/outage. The topology will be re-pained with expected changed traffic flow avoiding failed link or router.

Upload a graph if did't do it before and press on NetworkReactionOnFailure.

Topolograph ospf link down simulation

As you can see decreasing rate of traffic from 123.30.30.30 node to 123.123.30.30 and 123.123.31.31 differ from opposite direction [ from 123.123.30.30 to 123.30.30.30 ] upto ~2times. It happens because of the unsymmetric traffic path. Topolograph ospf link down simulation

We also can see an expected increasing rate of blue painted edge. Topolograph ospf link down simulation result

Topolograph builds a topology based on OSPF adjacency and physical connectivity is hidden. But in some cases, we can assume that neighbors share the same media, in some cases - not. For example, if neighbors have a common DR - we assume that they are connected via shared physical media and then we emulate one of the edge failures between such neighbors - we emulate all edges down.

Mark all shared media links (which have common DR) as enabled Topolograph ospf link down simulation result with shared media

If neighbors do not have DR or they have, but they are only two neighbors on the link, and when we emulate edge failure - we remove the only a single link between two particular neighbors.

Mark all shared media links (which have common DR) as disabled Topolograph ospf link down simulation result with shared media

Network reaction if a network devices goes down. Simulate device down.

Right click on a node and choose `shutdown this node`. The algorithm escape this node. Topolograph ospf Network reaction if a network devices goes down

The network reaction on 123.123.101.101 node outage. Topolograph ospf Network reaction if a network devices goes down

Under NetworkReactionOnFailure tab it is possible to see a network reaction on a OSPF cost change on the fly. Set new OSPF cost in righted-clicked edge menu. Topolograph ospf Network reaction on OSPF link cost changes

Analytics

In this mode it's possible to run algorithms in order to check your OSPF network.

Unidirectional and asymmetric links.

Print out any Unidirectional links ( number of IN and OUT links between two neighbors is not equal) Topolograph ospf unidirectional and asymmetric links

The edge is marked as red edge because of cost 1 and cost 10 OSPF metric Topolograph ospf unidirectional and asymmetric links

Asymmetric paths.

Print out any asymmetric paths from different points of views. Topolograph ospf asymmetric paths

We get a list of nodes which have asymmetric paths. Just checking them - we can see difference in incoming and Outgoing paths. Topolograph ospf asymmetric paths

Main and backup paths via the same ECMP.

We suggest that if we have multiple links bounded to ECMP and if the main link in ECMP goes down, the backup path should go via the second link in ECMP.

Passed report

Topolograph ospf paths via ECMP

If backup path goes not via ECMP and chooses completely different path - the report will be treated as failed.

Failed report

Topolograph ospf paths not via second link in ECMP

Backup paths via 3d party locations.

This report checks that if two locations are directly connected, backup paths should be only between two locations and do not go via third location as transit. Before running this report - it's needed to create groups (~site names/locations) and assign devices to groups. For example, there are two locations in France: the main site (EU_FRA) and the remote site (EU_FRA1). The same schema with offices in Italy. The main offices in France and Italy are connected to each other and have main (OSPF cost 10) and backup (OSPF cost 20) link.

Remote offices have the main link (OSPF cost 1) to their main offices and backup link (OSPF cost 10) to the foreign office.

Topolograph ospf intra location routing

If the main link between main offices goes down - the backup path goes via remote offices!

Failed report

Topolograph ospf backup paths go via third party locations

Network heatmap

Under Analytics tab it is possible to see how many terminated subnets are backuped via terminating the same subnet on different devices. Topolograph ospf analytics network heatmap

Click on a node in order to find out which networks are backuped which not. Topolograph ospf analytics network heatmap

As we can see only own device's loopback is not backuped - it is normal. Topolograph ospf analytics network heatmap

API

It's time not to depends on NAPALM support of the vendor. You are free to choose your favorite NetDevOps tool like Ansible, netmiko, Nornir, etc, and upload your OSPF network graph to Topolograph via a POST request. Once you uploaded the graph - you get the difference with previously uploaded graphs, specifically, you will receive: new/old OSPF adjacencies (edges on the graph) new/old devices in OSPF topology number of backuped and non backuped subnets in the topology

Get credentials.

It's needed to create an account with email/password on Login/Registration page as well as add your source IP/Network to authorised source network list under API tab.

Upload OSPF topology via API

Save the output from commands describing OSPF LSA1, LSA2, LSA2 and save it in the single file - 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())
      

Using python we read the content of the file and push it (it's better to say - POST it) to the topolograph.

The output returns:

  • diff with previously uploaded graphs
  • link to get all networks
  • status about passed checks
  •         >>> 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'}
          

    Visual difference between OSPF states. Topolograph ospf state diff

    Groups & VRF

    Multiple OSPF routing instances can exist on a single device in several VRFs. It causes nodes duplication on a visualisation graph. VRF tab allows to point multiple OSPF instances to a single one and avoid node duplication on a graph.

    There are three VRFs and three OSPF instances on a router. In order to avoid node duplication - create VRFs (or import them via CSV), associate the node with VRF and point duplicated instances to master OSPF RID. the node with VRF and point duplicated instances to master OSPF RID.

    Topolograph OSPF VRF instances

    
            
     
            
    Topolograph 2.32