IP Library Granted Patent US 9,990,243
Granted Patent B2
US 9,990,243 · App. 15/090,553 · Granted Jun 5, 2018

Using spanning tree protocol to determine a layer 2 topology of an ethernet type network

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,990,243
App. No.
15/090,553
Granted
Jun 5, 2018
Kind
B2
Abstract

Example methods, apparatuses, and systems are presented for determining a physical (real) topology of an Ethernet type network, including mapping physical switches arranged in a multi-chassis link aggregation group (MC-LAG). Spanning tree protocol (STP) data is obtained via a combination of SNMP queries or SSH/telnet connectors. The STP data and MAC addresses are collected initially for all the switches in the mapping criteria. After collecting this data, pairs of switches are formed (e.g., randomly) and the collected data is correlated and stored according to the set of rules described in embodiments of the present disclosure in order to find switch to switch links.

Claims (92)

1. A computer-implemented method for determining a layer-2 physical link topology of an Ethernet-type network, the network comprising a plurality of interconnected switches and one or more end hosts, the method comprising:

determining a unique identity for each switch of the plurality of switches;

for each switch of the plurality of switches:

determining a first list of ports that are connected to an end host among the one or more end hosts; and

determining a second list of ports that are connected to another switch among the plurality of switches;

creating a third list of pairs of switches, the third list comprising all pairwise permutations of the switches among the plurality of switches, wherein each pair comprises a first switch and a second switch;

for each pair of switches in the third list:

determining if a media access layer (MAC) address is stored on the first switch in said each pair;

when the MAC address is stored on the first switch, then:

determining a port on the second switch that determined the MAC address stored on the first switch;

accessing STP-based port identifying data of the determined port of the second switch;

comparing the STP-based port identifying data of the determined port of the second switch with STP-based port identifying data of all ports in the first switch; and

when the STP-based port identifying data of the determined port of the second switch matches the STP-based port identifying data of any port in the first switch, then storing the first and the second switch as a physically connected pair of switches; and

generating the layer-2 physical link topology using each pair of switches that are stored as physically connected pairs.

2. The method of claim 1 , further comprising :

for each pair of switches in the third list that have ports in the second list:

for each port in the second list, comparing the STP-based port identifying data of said each port of the first switch in said each pair of switches with STP-based port identifying data of all ports in the second switch in said each pair of switches; and

if the STP-based port identifying data matches, storing the matching pair of switches as a physically connected pair of switches; and

generating the layer-2 physical link topology further using each pair of matching switches that are stored as physically connected pairs.

3. The method of claim 1 , wherein the STP-based port identifying data comprises dot1dStpPortDesignatedBridge and dot1dStpPortDesignatedPort data based on the spanning tree protocol.

4. The method of claim 1 , further comprising:

for each pair of switches in the third list:

when no MAC address is stored on either the first switch or the second switch in said each pair; then discarding the pair of switches comprising the first and second switch from inclusion as part of the layer-2 physical link topology.

5. The method of claim 1 , further comprising:

for each switch of the plurality of switches:

determining if a MAC address is identifiable on any port of said each switch connecting to an end host of the one or more end hosts; and

storing the identified MAC address as being correlated with the determined port of said each switch that is connected to said end host.

6. The method of claim 1 , wherein at least one of the pairs of switches used to generate the layer-2 physical link topology is arranged in a multi-chassis link aggregation (MLAG) configuration.

7. The method of claim 1 , further comprising:

when the STP-based port identifying data of the determined port of the second switch does not match the STP-based port identifying data of any port in the first switch, then discarding the pair of switches comprising the first switch and the second switch from inclusion as part of the layer-2 physical link topology.

8. A system configured to determine a layer-2 physical link topology of an Ethernet-type network, the network comprising a plurality of interconnected switches and one or more end hosts, the system comprising:

a spanning tree protocol (STP) database configured to store STP data;

an address forwarding table configured to store media access control (MAC) address information;

a data collector module configured to access the plurality of switches in the network; and

a correlated data engine coupled to the data collector module, the address forwarding table and the STP database; the correlated data engine comprising a memory and a processor and configured to:

determine a unique identity for each switch of the plurality of switches;

for each switch of the plurality of switches:

determine a first list of ports that are connected to an end host among the one or more end hosts; and

determine a second list of ports that are connected to another switch among the plurality of switches;

create a third list of pairs of switches, the third list comprising all pairwise permutations of the switches among the plurality of switches, wherein each pair comprises a first switch and a second switch;

for each pair of switches in the third list:

determine if a media access layer (MAC) address is stored on the first switch in said each pair;

when the MAC address is stored on the first switch, then:

determine a port on the second switch that determined the MAC address stored on the first switch;

access STP-based port identifying data of the determined port of the second switch;

compare the STP-based port identifying data of the determined port of the second switch with STP-based port identifying data of all ports in the first switch; and

when the STP-based port identifying data of the determined port of the second switch matches the STP-based port identifying data of any port in the first switch, then store the first and the second switch as a physically connected pair of switches; and

generate the layer-2 physical link topology using each pair of switches that are stored as physically connected pairs.

9. The system of claim 8 , wherein the correlated data engine is further configured to:

for each pair of switches in the third list that have ports in the second list:

for each port in the second list, compare the STP-based port identifying data of said each port of the first switch in each pair of switches with STP-based port identifying data of all ports in the second switch in each pair of switches; and

if the STP-based port identifying data matches, store the matching pair of switches as a physically connected pair of switches; and

generate the layer-2 physical link topology further using each pair of matching switches that are stored as physically connected pairs.

10. The system of claim 8 , wherein the STP-based port identifying data comprises dot1dStpPortDesignatedBridge and dot1dStpPortDesignatedPort data based on the spanning tree protocol.

11. The system of claim 8 , wherein the correlated data engine is further configured to:

for each pair of switches in the third list:

when no MAC address is stored on either the first switch or the second switch in each pair; then discard the pair of switches comprising the first switch and the second switch from inclusion as part of the layer-2 physical link topology.

12. The system of claim 8 , wherein the correlated data engine is further configured to:

for each switch of the plurality of switches:

determine if a MAC address is identifiable on any port of said each switch connecting to an end host of the one or more end hosts.

13. The system of claim 12 , wherein the correlated data engine is further configured to:

store the identified MAC address as being correlated with the determined port of said each switch that is connected to said end host.

14. The system of claim 8 , wherein the correlated data engine is further configured to:

when the STP-based port identifying data of the determined port of the second switch does not match the STP-based port identifying data of any port in the first switch, then discard the pair of switches comprising the first switch and the second switch from inclusion as part of the layer-2 physical link topology.

15. A computer-readable medium with no transitory signals comprising instructions that, when executed by a processor, cause the processor to perform operations comprising:

determining a unique identity for each switch of the plurality of switches;

for each switch of the plurality of switches:

determining a first list of ports that are connected to an end host among the one or more end hosts; and

determining a second list of ports that are connected to another switch among the plurality of switches;

creating a third list of pairs of switches, the third list comprising all pairwise permutations of the switches among the plurality of switches, wherein each pair comprises a first switch and a second switch;

for each pair of switches in the third list:

determining if a media access layer (MAC) address is stored on the first switch in said each pair;

when the MAC address is stored on the first switch, then:

determining a port on the second switch that determined the MAC address stored on the first switch;

accessing STP-based port identifying data of said port of the second switch;

comparing the STP-based port identifying data of the determined port of the second switch with STP-based port identifying data of all ports in the first switch; and

when the STP-based port identifying data of the determined port of the second switch matches the STP-based port identifying data of any port in the first switch, then storing the first switch and the second switch as a physically connected pair of switches; and

generating the layer-2 physical link topology using each pair of switches that are stored as physically connected pairs.

16. The computer readable medium of claim 15 , wherein the operations further comprise:

for each pair of switches in the third list that have ports in the second list:

for each port in the second list, comparing the STP-based port identifying data of said each port of the first switch in said each pair of switches with STP-based port identifying data of all ports in the second switch in said each pair of switches; and

if the STP-based port identifying data matches, storing the first switch and the second switch as a physically connected pair of switches; and

generating the layer-2 physical link topology further using each pair of switches that are stored as physically connected pairs.

17. The computer readable medium of claim 15 , wherein the STP-based port identifying data comprises dot1dStpPortDesignatedBridge and dot1dStpPortDesignatedPort data based on the spanning tree protocol.

18. The computer readable medium of claim 15 , wherein the operations further comprise:

when no MAC address is stored on either the first switch or the second switch in said each pair of the third list; then discarding the pair of switches comprising the first switch and the second switch from inclusion as part of the layer-2 physical link topology.

19. The computer readable medium of claim 15 , wherein the operations further comprise:

for each switch of the plurality of switches:

determining if a MAC address is identifiable on any port of said each switch connecting to an end host of the one or more end hosts; and

storing the identified MAC address as being correlated with the determined port of said each switch that is connected to said end host.

20. The computer readable medium of claim 15 , wherein the operations further comprise:

if the STP-based port identifying data of the determined port of the second switch does not match the STP-based port identifying data of any port in the first switch, then discarding the pair of switches comprising the first switch and the second switch from inclusion as part of the layer-2 physical link topology.

Assignments (6)
CHANGE OF NAME Recorded Jan 10, 2023
From: FIXSTREAM NETWORKS INC.
To: RESOLVE SYSTEMS AUTOMATION, INC.
Reel/Frame 062351/0622 →
RELEASE OF IP SECURITY AGREEMENT Recorded Dec 22, 2022
From: ALLY BANK
To: RESOLVE SYSTEMS AUTOMATION, INC
Reel/Frame 062205/0920 →
SECURITY INTEREST Recorded Dec 21, 2022
From: RESOLVE SYSTEMS, LLC; RESOLVE SYSTEMS AUTOMATION, INC.
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 062169/0576 →
CHANGE OF NAME Recorded Dec 15, 2022
From: FIXSTREAM NETWORKS, INC.
To: RESOLVE SYSTEMS AUTOMATION, INC.
Reel/Frame 062138/0535 →
SECURITY INTEREST Recorded Oct 2, 2019
From: FIXSTREAM NETWORKS INC.
To: ALLY BANK
Reel/Frame 050602/0679 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2018
From: BHATIA, SIDDHARTH; PADHYE, SAMEER
To: FIXSTREAM NETWORKS, INC.
Reel/Frame 045163/0611 →