Automatic network topology detection for merging two isolated networks

The technology disclosed herein automatically detects network topology for merging two isolated networks. In a particular embodiment, a method is performed in a first network of the two isolated networks and provides sending probe messages to a second network of the two isolated networks. The probe messages formatted for one or more passive protocols in the second network. The method further provides receiving replies to at least a portion of the probe messages from the second network indicating configuration parameters of the passive protocols and receiving neighbor messages from the second network indicating configuration parameters of active protocols in the second network. Additionally, the method provides determining a network topology of the second network using the configuration parameters of the passive protocols and the configuration parameters of the active protocols.

TECHNICAL BACKGROUND

When two isolated networks are merged together communications between those two previously isolated networks may depend on the topologies of each respective network. Typically, network administrators must go through the difficult task of understanding topology of both networks, and creating the necessary configuration on the merge point to translate packets from network into the other. Given the human element, that process can be time consuming and error prone.

An example of the above environment is VMware Cloud Foundation™ (VCF) or similar hyper converged infrastructure. Customers can purchase one or more VCF based server racks, which are connected using a leaf-spine network topology, and integrate the VCF network system into the customer's existing network having its own network topology. VCF software has knowledge of its own network topology but is unaware of the network topology of the customer's network, as the customer network could have an entirely different network topology. Integrating these two isolated networks requires a lot of planning and manual configuration on the transit switch(es) therein.

SUMMARY

The technology disclosed herein automatically detects network topology for merging two isolated networks. In a particular embodiment, a method is performed in a first network of the two isolated networks and provides sending probe messages to a second network of the two isolated networks. The probe messages formatted for one or more passive protocols in the second network. The method further provides receiving replies to at least a portion of the probe messages from the second network indicating configuration parameters of the passive protocols and receiving neighbor messages from the second network indicating configuration parameters of active protocols in the second network. Additionally, the method provides determining a network topology of the second network using the configuration parameters of the passive protocols and the configuration parameters of the active protocols.

In some embodiments, determining the network topology comprises determining whether a number of uplinks to the second network are enabled on one or more gateways between the first network and the second network. The number of uplinks indicates a number of switches in the second network with uplinks to the gateways.

In the above embodiments, upon determining that the number of switches is one switch, the method provides determining whether Bridge Protocol Data Units (BPDUs) and/or Virtual Port-Channel (VPC) control packets are detected on an uplink from the one switch. Upon determining that BPDUs and/or VPC control packets are detected, the method provides determining that the network topology comprises a single upstream Level 2 (L2) switch. Upon determining that neither BPDUs nor VPC control packets are detected, the method provides using an Address Resolution Protocol (ARP) request to determine that the network topology comprises a single upstream Level 3 (L3) switch.

Continuing the above embodiments, upon determining that the number of switches is two switches, receiving a response to an Address Resolution Protocol (ARP) request directed to one of the two switches through the other of the two switches. Receiving the response indicates that Level 2 (L2) uplinks exist from both of the two switches. If the L2 uplinks are connected to the same switch, the method provides determining that the network topology comprises a single L2 upstream switch when the L2 uplinks are connected to the same switch. If the L2 uplinks are not connected to the same switch and Virtual Port-Channel (VPC) control packets are detected on the L2 uplinks, determining that the network topology comprises multiple upstream L2 switches with VPC enabled.

In another continuation of the above embodiments, if the L2 uplinks are not connected to the same switch and no VPC control packets are detected, the method provides transferring a second ARP request directed to the one of the two switches through the other of the two switches. If no response to the second ARP request is received, the method provides determining that the network topology comprises two upstream L2 switches operating with Spanning Tree Protocol (STP). If a response to the second ARP request is received, the method provides determining that the network topology comprises multiple disjoined L2 switches with cross links when the L2 uplinks are connected to multiple switches and determining that the network topology comprises multiple disjoined L2 switches without cross links when the L2 uplinks are not connected to multiple switches.

In some embodiments, upon determining that the number of switches is two switches, the method provides receiving no response to an Address Resolution Protocol (ARP) request directed to one of the two switches through the other of the two switches. Receiving no response indicates that Level 3 (L3) uplinks exist from both of the two switches. The method further provides using Link Layer Discovery Protocol (LLDP) input to determine whether the L3 uplinks are each connected to multiple switches. If the L3 uplinks are each connected to multiple switches, the method provides determining that the network topology comprises two L3 switches with Equal Cost Multipath Routing (ECMP) enabled. If the L3 uplinks are not each connected to multiple switches, the method provides determining that the network topology comprises a single L3 switch when the L3 uplinks are connected to the same switch and determining that the network topology comprises two L3 switches without ECMP enabled when the L3 uplinks are not connected to the same switch.

In some embodiments, the method provides configuring the first network for communications with the second network based on the network topology.

In some embodiments, the probe messages comprise connection requests to one or more peer nodes in the second network.

The active protocols of the above embodiments may include one or more protocols of a protocol set comprising Virtual Router Redundancy Protocol (VRRP), Link Aggregation Control Protocol (LACP), Open Shortest Path First (OSPF), Virtual Port-Channel (VPC), Protocol Independent Multicast (PIM), Link Layer Discovery Protocol (LLDP), Cisco Discovery Protocol (CDP), and Spanning Tree Protocol (STP). The passive protocols may include one or more protocols of a protocol set comprising Border Gateway Protocol (BGP) and Internet Control Message Protocol (ICMP).

In another embodiment, a system, in a first network of two isolated networks, is provided having one or more computer readable storage media and a processing system operatively coupled with the one or more computer readable storage media. Program instructions stored on the one or more computer readable storage media, when read and executed by the processing system, direct the processing system to send probe messages to a second network of the two isolated networks. The probe messages formatted for one or more passive protocols in the second network. The program instructions further direct the processing system to receive replies to at least a portion of the probe messages from the second network indicating configuration parameters of the passive protocols and receive neighbor messages from the second network indicating configuration parameters of active protocols in the second network. The program instructions also direct the processing system to determine a network topology of the second network using the configuration parameters of the passive protocols and the configuration parameters of the active protocols.

DETAILED DESCRIPTION

The implementations provided herein allow for a first network to automatically determine a network topology of a second network so that the two isolated networks can be merged. In particular, knowledge of the second network's topology may be necessary for network traffic to pass between the two networks. That is, the second network's topology may affect how network traffic is formatted and the protocols used to properly transfer the network traffic to its intended destination. While it is possible for an administrator to provide protocol configuration to the first network based on the second network's topology, that process may be prone to errors and may be very time consuming to the network administrator. Thus, providing the first network with the ability to automatically determine the second network's topology will allow the first network to then automatically configure itself to exchange network traffic with that second network.

FIG. 1illustrates network environment100for automatically determining network topology. Network environment100includes topology determination system101, gateway(s)102, communication network121, and communication network122. Communication network121and communication network122communicate over communication link(s)111via gateway(s)102. Gateway(s)102connect communication network121to communication network122and may be considered part of one or both of networks121and122. Communication network122has network topology132, which in this example is shown to include gateway(s)102. In other examples, network topology132may not include gateway(s)102. Though not shown, it should be understood that gateway(s)102connects to communication network121and communication network122via physical communication links.

In operation, topology determination system101may be a dedicated physical computing system to detect network topology132. Such a physical computing system may include processing circuitry (e.g., one or more Central Processing Units (CPUs), bus controllers, etc.), storage media (e.g., Random Access Memory (RAM), flash memory, hard disk drives, etc.), program instructions stored on the storage media for execution by the processing circuitry, network interface circuitry, or some other type of physical computing resource. Alternatively, topology determination system101may be implemented as a virtual computing element (e.g., virtual machine, container, etc.) executing in a host environment provided by a host computing system having similar physical computing resources to those described above.

Topology determination system101may be part of a Software Defined Data Center (SDDC) implemented as a hyper converged infrastructure. In such examples, communication network121may connect server racks having servers therein that host virtual elements to implement services of the SDDC. Each individual server of the SDDC may include SDDC manager software modules executing thereon for facilitating the various virtual elements of the SDDC and the communications there between. Topology determination system101may be implemented as a component of one of the SDDC managers. Thus, once topology determination system101determines network topology132, topology determination system101may configure to the SDDC so that the virtual elements therein can exchange communications with communication network communication network122.

FIG. 2illustrates method200of operating network environment100to automatically determining network topology. Method200provides topology determination system101sending probe messages to communication network122(201). The probe messages enter communication network122via gateway(s)102. Gateway(s)102may comprise one or more physical network switches that direct network communications between communication network122and communication network121. The probe messages formatted for one or more passive protocols that may be used in communication network122. Passive protocols, such as Border Gateway Protocol (BGP), Maximum Transmission Unit (MTU) detection, and Internet Control Message Protocol (ICMP), do not provide protocol information without the information being requested. Respective probe messages in this example are transferred in accordance with the corresponding protocol for which protocol information is being requested. For some passive protocols, the probe messages may comprise connection request messages in the protocols. In some examples, the probe messages may be generated using information gleaned from active protocol messages discussed below and vice versa. Also, topology determination system101may send the probe messages by instructing other network elements, better positioned within the network, to send the probe messages and report back regarding any responses.

Method200further provides receiving replies, from communication network122, to at least a portion of the probe messages indicating configuration parameters of the passive protocols (202). If a reply is not received in a particular protocol, then topology determination system101may assume that the protocol is not in use by communication network122. The configuration parameters indicated by the replies that are received may include MTU length, BGP routing information, or some other type of information that may either indicate network topology or may be used to identify network topology.

In addition to the steps above that determine the configuration parameters of the passive protocols, method200provides topology determination system101receiving neighbor messages from communication network122indicating configuration parameters of active protocols communication network122(203). Unlike passive protocols, network elements using active protocols send out periodic advertisements and control information to all neighbors. In this example, communication network121is a neighbor of communication network122through gateway(s)102. Accordingly, in order for topology determination system101to identify active protocols in use by communication network122, topology determination system101need only monitor active protocols for an amount of time long enough so as to capture at least one of the periodic messages transferred by each protocol. Examples of active protocols that may be used by communication network122include Virtual Router Redundancy Protocol (VRRP), Link Aggregation Control Protocol (LACP), Open Shortest Path First (OSPF), Virtual Port-Channel (VPC), Protocol Independent Multicast (PIM), Link Layer Discovery Protocol (LLDP), Cisco Discovery Protocol (CDP), and Spanning Tree Protocol (STP). Topology determination system101may be situated relative to gateway(s)102to receive the configuration information directly from network communication links or may use other elements, such as a network traffic sniffer, to capture and pass the configuration information to topology determination system101.

Each of the above protocols transfers neighbor messages with different information. For example, a VRRP master node sends periodic hellos to all the peers. Active gateway network address(es) and subnet information can be obtained by topology determination system101by capturing and inspecting these packets. LACP sends hello packets every 1 second or 30 seconds. The information in the hello packets be used to identify which physical network interfaces are bonded together when determining network topology132. OSPF hello packets are sent periodically to all the neighbors and may be used by topology determination system101to identify whether OSPF is enabled in communication network122and communication network122's OSPF configuration. Network switches exchange periodic VPC control packets to remain in sync with each other. These control packets identify whether VPC is enabled in communication network122along with communication network122's VPC configuration. PIM hello messages are usually sent every 30 secs and PIM packets identify whether multicast is enabled in communication network122. Periodic protocols packets from LLDP and CDP may be used to identify neighbor MAC addresses, VLANs, switch-names, etc. Reception of STP Bridge Protocol Data Units (BPDUs) on an interface identify that the interface is a Level 2 (L2) interface.

Method200then provides topology determination system101determining network topology132using the configuration parameters of the passive protocols and the configuration parameters of the active protocols (204). In some examples, topology determination system101may gather all possible configuration information in the steps above before determining network topology132. In other examples, the gathering of the configuration parameters may be performed in an order that, depending on the determinations at each step of the order, obviates the need to gather additional configuration information (e.g., the order provided inFIGS. 3-6). Regardless, the configuration parameters indicate what components are in communication network122and how those components are connected in order to determine network topology132. For example, the configuration parameters may indicate whether gateway(s)102are one or more switches and whether those switches are L2 or L3 switches. The configuration parameters further indicate what additional network components are connected to gateway(s)102within communication network122and the protocols/link configurations between those additional components and gateway(s)102. The examples below describe how certain configuration parameters indicate various network topology elements for determining network topology132.

FIG. 3illustrates method300of operating network environment100to automatically determining network topology. In particular, method300provides ordered steps that topology determination system101uses to determine that network topology132comprises one of ten common types of network topologies, which are illustrated inFIGS. 7-16. The topologies illustrated in those figures include upstream switches and Top of Rack (ToR) switches (referred to as ToR1and ToR2), which network servers within their respective computing racks. In some determined topologies, gateway(s)102will comprise one or more of the upstream switches while, in other determined topologies, gateway(s)102will comprise the ToR switches. At step301, topology determination system101determines whether one or more uplinks exist to ToR1. Uplink determination is performed by topology determination system101checking a hardware status of gateway(s)102. Topology determination system101can therefore similarly determine whether uplinks exist ToR2at steps302and303.

If no uplinks are detected after performing steps301and302, then communication network121is not connected to communication network122and no network topology132can be determined. If, however, uplinks are detected to either, but not both, of the ToR switches, then topology determination system101determines whether any BPDUs or VPC control packets are present on the uplinks at step304. Upon detecting BPDUs or VPC control packets at step304, determines that network topology132comprises a single upstream L2 switch acting as gateway102.FIG. 7illustrates network topology700in an example of network topology132wherein gateway102is a single L2 switch connected to ToR1via a L2 Link Aggregation Group (LAG). ToR1is connected to ToR2via Multi-Chassis LAG (MLAG)/VPC peerlink when VPC control packets are detected. If no BPDUs or VPC control packets are detected at step304, topology determination system101transfers an ARP request on ToR1's uplinks to ToR1at step305(i.e., ToR1sends an ARP request to itself). Then, at step306, topology determination system101determines whether a response to the ARP request is received. If a response is received, then topology determination system101flags an error because the response indicates an L2 uplink with STP disabled, which can trigger loops in the network. An administrator may be notified in response to the error so that the issue can be addressed. Alternatively, if no response to the ARP request is received, then topology determination system101determines network topology132comprises a single upstream L3 switch connected to ToR1and2that comprise gateways102via uplinks with ToR1.FIG. 13illustrates network topology1300in an example of network topology132wherein gateways102comprise ToR1and ToR2connected to an upstream L3 switch. ToR1and ToR2are connected in an active/active arrangement using VRRP or in a failover arrangement using Hot Standby Router Protocol (HSRP). ToR1is connected to the single upstream L3 switch is connected using an L3 LAG connection.

Referring back to step303, if topology determination system101determines that uplinks exist to both ToR1and ToR2, then topology determination system101transfers an ARP request at step307to ToR2on a ToR1uplink. At step308, topology determination system101determines whether a response to that ARP request is received. If a response is received, then method300passes to method500. If a response is not received, then method300passes to method400.

FIG. 4illustrates method400, which is a continuation of method300when a response to the ARP request is not received. Not receiving a response allows topology determination system101to conclude that there are L3 uplinks with ToR1and ToR2, and LLDP is then used by topology determination system101at step401to determine whether those uplinks are connected to multiple upstream switches. At step402, if topology determination system101's use of LLDP indicates that the uplinks are connected to multiple upstream L3 switches, then topology determination system101determines that network topology132comprises ToR1and ToR2, acting as gateways102, that are connected to those multiple upstream L3 switches using Equal Cost Multipath Routing (ECMP).FIG. 15illustrates network topology1500in an example of network topology132wherein gateways102comprise ToR1and ToR2connected to two upstream L3 switches using ECMP. ToR1and ToR2and the two upstream switches, respectively, are connected in an active/active arrangement using VRRP or in a failover arrangement using HSRP.

If, at step402, topology determination system101's use of LLDP indicates that uplinks are not connected to multiple upstream L3 switches, then topology determination system101determines whether LLDP indicates that the uplinks from ToR1and ToR2are connected to multiple upstream switches at step403. Upon determining that the uplinks are connected to the same upstream switch, topology determination system101determines that network topology132comprises ToR1and ToR2, acting as gateways102, that are connected to a single L3 upstream switch.FIG. 14illustrates network topology1400in an example of network topology132wherein gateways102comprise ToR1and ToR2connected to a single upstream L3 switch. ToR1and ToR2are connected in an active/active arrangement using VRRP or in a failover arrangement using HSRP. Alternatively, if topology determination system101determines at step403that the uplinks are not to the same upstream switch, then topology determination system101determines that network topology132comprises ToR1and ToR2, acting as gateways102, that are connected to two upstream L3 switches without ECMP.FIG. 16illustrates network topology1600in an example of network topology132wherein gateways102comprise ToR1and ToR2connected to two respective upstream switches without ECMP. ToR1and ToR2and the two upstream switches, respectively, are connected in an active/active arrangement using VRRP or in a failover arrangement using HSRP.

FIG. 5illustrates method500, which is a continuation of method300when a response to the ARP request is received. The ARP response indicates to topology determination system101that there are uplinks from ToR1and ToR2. Thus, at step501, topology determination system101determines whether those uplinks are connected to a single switch. If the uplinks are connected to a single upstream switch, then topology determination system101determines that gateway102comprises a single L2 upstream switch with uplinks ToR1and ToR2.FIG. 8illustrates network topology800in an example of network topology132wherein gateway102comprises a single L2 upstream switch with uplinks to ToR1and ToR2. ToR1and ToR2are connected to one another using a MLAG/VPC peerlink. If, however, topology determination system101determines that uplinks are not connected to a single upstream switch at step501, then topology determination system101determines whether VPC control packets are detected on the uplinks at step502. If no VPC control packets are detected, then method500passes to method600. If VPC control packets are detected, then topology determination system101determines that network topology132comprises two L2 switches, acting as gateways102, that are connected to ToR1and ToR2with VPC enabled.FIG. 12illustrates network topology1200in an example of network topology132wherein gateways102comprise two upstream L2 switches connected to ToR1and ToR2with MLAG/VPC enabled. ToR1and ToR2and the two upstream switches, respectively, are connected using a MLAG/VPC peerlink.

FIG. 6illustrates method600, which is a continuation of method500when no VPC control packets are detected. Topology determination system101transfers an ARP request at step601to ToR2on a ToR1uplink. If no response to the ARP request is received, topology determination system101determines that network topology132comprises two upstream L2 switches with STP and one of those L2 switches comprising gateway102.FIG. 9illustrates network topology900in an example of network topology132with gateway102comprising one of two upstream L2 switches with an STP blocked port between the non-gateway102switch and ToR2. ToR1and ToR2are connected using a MLAG/VPC peerlink.

If a response to the ARP request is received, topology determination system101then determines at step603whether the uplinks are connected to multiple switches. If the uplinks are connected to multiple switches, then topology determination system101determines that gateway102comprises an L2 switch disjoined from other L2 switches with those other two L2 switches connected to ToR1and ToR2with crosslinks.FIG. 11illustrates network topology1100in an example of network topology132with gateway102comprising a disjoined L2 switch and ToR1and ToR2connected with crosslinks using MLAG/VPC. ToR1and ToR2are connected to each other using a MLAG/VPC peerlink. Alternatively, if the uplinks are not connected to multiple switches, then topology determination system101determines that gateway102comprises an L2 switch disjoined from other L2 switches with those other two L2 switches connected to ToR1and ToR2without crosslinks.FIG. 10illustrates network topology1000in an example of network topology132with gateway102comprising a disjoined L2 switch and ToR1and ToR2connected to separate upstream switches. ToR1and ToR2are connected to each other using a MLAG/VPC peerlink.

Advantageously, by following the steps of methods300-600above in the order provided, topology determination system101is able to determine the network topology132of communication network122by inferring the topology based on how the protocols detected. Once network topology132is determined, topology determination system101can configure elements within communication network121(e.g., switches, routers, physical/virtual computing systems) to operate in accordance with that topology. The configuration may include configuring subnets, Virtual Local Area Networks (VLANS), Virtual Extensible Local Area Network (VXLAN) tunnels, or other L3 protocols to operate across communication network121and communication network122. Other topology dependent configurations may also be made once topology determination system101has determined network topology132.

The descriptions and figures included herein depict specific implementations of the claimed invention(s). For the purpose of teaching inventive principles, some conventional aspects have been simplified or omitted. In addition, some variations from these implementations may be appreciated that fall within the scope of the invention. It may also be appreciated that the features described above can be combined in various ways to form multiple implementations. As a result, the invention is not limited to the specific implementations described above, but only by the claims and their equivalents.