Simplified configuration of multi-level network structure
By introducing a role assigner into the data center network, the roles of switches are automatically determined and configured, solving the configuration errors caused by manual intervention and improving the accuracy and efficiency of data center network deployment.
Patent Information
- Application Number
- CN202310652348.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-09-28
- Filing Date
- 2019-06-20
- Publication Date
- 2025-12-19
- Estimated Expiration
- 2039-06-20
AI Technical Summary
In data centers, the assignment of switch roles requires manual intervention, leading to configuration errors and management burdens. Existing technologies struggle to automate and accurately determine roles.
By introducing a role assigner into the data center's network structure, the role of a network device is automatically determined by connecting to a designated port via a management network, and the device is configured as a first-level or second-level device by connecting to the role assigner's port via a management link.
It enables automated configuration of switch roles, reduces manual intervention and configuration errors, and improves the accuracy and efficiency of network deployment.
Smart Images

Figure CN116668305B_ABST
Abstract
Description
[0001] The present disclosure is a divisional application of application No. 201910537452.6, titled "Simplified configuration of multi-level network structure", filed on June 20, 2019, the whole content of which is incorporated herein by reference. TECHNICAL FIELD
[0002] The present disclosure relates to computer networks. BACKGROUND
[0003] A data center is a collection of interconnected computer servers and related components located in one or more facilities. In a typical data center, a large collection of interconnected servers provide computing and / or storage capacity for performing various applications. For example, a data center can comprise a facility that hosts applications and services for subscribers (i.e., customers of the data center). For example, a data center can host all of the infrastructure equipment, such as network and storage systems, redundant power, and environmental controls. In most data centers, storage systems and application server clusters are interconnected through a high-speed switching fabric provided by one or more layers of physical network switches and routers. More complex data centers provide user support equipment located in various physical hosting facilities that span the globe.
[0004] A data center typically consists of a large number of devices, including servers and devices that form an Internet Protocol (IP) fabric. The IP fabric can be represented as an underlay network with leaf and spine devices. SUMMARY
[0005] Generally, the present disclosure describes techniques for network configuration based on automatic topology discovery and configuration. In particular, network devices such as routers are configured to automatically determine their position in the network and provision themselves accordingly.
[0006] In one example, a method includes deploying a network device inside a fabric having a management network by connecting the network device through a management network to a port of a role assignor, where the role assignor includes one or more ports designated as first-level port connections and one or more other ports designated as second-level port connections. If the deployed network device is connected to one of the ports designated as first-level port connections, the deployed network device is configured as a first-level device. If the deployed network device is connected to one of the ports designated as second-level port connections, the deployed network device is configured as a second-level device.
[0007] In one example, a method includes deploying a network device inside a fabric having a management network, where the deploying includes connecting a port of the deployed network device to a port of a role assignor over the management network, where the role assignor includes one or more ports designated for first level port connections and one or more other ports designated for second level port connections; determining whether the deployed network device is connected to one of the ports designated for first level port connections; and if the deployed network device is connected to one of the ports designated for first level port connections, then configuring the deployed network device as a first level device.
[0008] In another example, a network device includes a plurality of network interfaces each configured to be communicatively coupled to a network; and one or more processors including processing circuitry configured to: identify a management port of the network device; establish a network connection to a role assignor over the management port, where the role assignor includes one or more ports designated for first level port connections and one or more other ports designated for second level port connections; determine, via the network connection, a role assignor port to which the network device is connected; and if the network device is connected to one of the role assignor's ports designated for first level port connections, then configure the network device as a first level device.
[0009] As yet another example, a non-transitory computer-readable storage medium has stored thereon instructions that, when executed, cause a processor of a network device to: identify a management port of the network device; establish a network connection to a role assignor over the management port, where the role assignor includes one or more ports designated for first level port connections and one or more other ports designated for second level port connections; determine, via the network connection, a role assignor port to which the network device is connected; if the network device is connected to one of the role assignor's ports designated for first level port connections, then configure the network device as a first level device; and if the network device is connected to one of the role assignor's ports designated for second level port connections, then configure the network device as a second level device.
[0010] The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF DRAWINGS
[0011] Figure 1A and Figure 1B is a block diagram illustrating a network with a data center in accordance with the techniques of this disclosure.
[0012] Figure 2 is an exemplary block diagram illustrating a router implementing an automatic topology discovery and provisioning process in accordance with the techniques of this disclosure.
[0013] Figure 3 FIG. 1 is a block diagram illustrating a network having a data center in accordance with the techniques of this disclosure. In the example of FIG. 1, a network 100 includes a data center 102 coupled to customer devices 120. The data center 102 includes a set of storage systems and application servers 110A-110N (servers 110) interconnected via an Internet Protocol (IP) fabric 118, which can include a fabric provided by one or more layers of physical network devices (e.g., routers, gateways, switches, hubs, modems, bridges, repeaters, multiplexers, servers, virtual machines running on one or more physical network devices, and other example network devices).
[0014] Figure 4 FIG. 2 is a flowchart illustrating an example method for automatically determining role information for network devices in an IP fabric in accordance with the techniques of this disclosure.
[0015] Figure 5 FIG. 3 is a flowchart illustrating another example method for automatically determining role information for network devices in an IP fabric in accordance with the techniques of this disclosure. DETAILED DESCRIPTION
[0016] As described above, in a typical data center, a large collection of interconnected servers provide computing and / or storage capacity for performing various applications. Typically, the servers are interconnected using switches configured in a leaf-and-spine topology. In some example methods, the same network devices can be used as leaf nodes and spine nodes. As a result, it can be difficult for a management device to discover the roles of switches added to the fabric of the data center. As a result, the assignment of these roles can require operator manual intervention to assign the roles. Unfortunately, manual intervention can lead to configuration errors; customer reported errors are often related to configuration.
[0017] Figure 1A and Figure 1B FIG. 1 is a block diagram illustrating a network having a data center in accordance with the techniques of this disclosure. In the example of FIG. 1, a network 100 includes a data center 102 coupled to customer devices 120. The data center 102 includes a set of storage systems and application servers 110A-110N (servers 110) interconnected via an Internet Protocol (IP) fabric 118, which can include a fabric provided by one or more layers of physical network devices (e.g., routers, gateways, switches, hubs, modems, bridges, repeaters, multiplexers, servers, virtual machines running on one or more physical network devices, and other example network devices). Figure 1A Figure 1B In the example methods of FIGS. 2 and 3, the network 100 includes a data center 102 coupled to customer devices 120. The data center 102 includes a set of storage systems and application servers 110A-110N (servers 110) interconnected via an Internet Protocol (IP) fabric 118, which can include a fabric provided by one or more layers of physical network devices (e.g., routers, gateways, switches, hubs, modems, bridges, repeaters, multiplexers, servers, virtual machines running on one or more physical network devices, and other example network devices).
[0018] Typically, the data center 102 provides an operating environment for applications and services for the customer devices 120 coupled to the data center, e.g., through a service provider network (not shown). For example, the data center 102 can host infrastructure equipment, such as networking and storage systems, redundant power, and environmental controls. In some examples, the service provider network coupling the customer devices 120 to the data center 102 can be coupled to one or more networks managed by other providers, and thus can form part of a large-scale public network infrastructure (e.g., the Internet).
[0019] In some examples, data center 102 represents one of many geographically distributed network data centers. As Figure 1A and Figure 1B shown in the example method of FIG. 1, data center 102 can be a facility that provides network services to customers through customer devices 120. Customer devices 120 can include devices of entities (e.g., businesses and governments) and individuals. For example, a network data center can host web services for businesses and end users. Other example services can include data storage, virtual private networks, traffic engineering, file services, data mining, scientific computing or supercomputing, etc. In some examples, data center 102 can be a standalone network server, network peer, or other. In some examples, data center 102 is an enterprise or internal data center.
[0020] In these examples, data center 102 includes a set of storage systems and application servers 110A-110N (servers 110) interconnected through an Internet Protocol (IP) fabric 118, which can include a fabric provided by one or more layers of physical network devices (e.g., routers, gateways, switches, hubs, modems, bridges, repeaters, multiplexers, servers, virtual machines running on one or more physical network devices, and other example network devices). In the example shown, IP fabric 118 includes two layers of nodes: spine nodes 104A and 104B (spine nodes 104) and leaf nodes 108A-108N (leaf nodes 108). Servers 110 provide an execution and storage environment for applications and data associated with customers via customer devices 120, and can be physical servers, virtual machines, or a combination thereof.
[0021] In the example shown in Figure 1A and Figure 1B IP fabric 118 includes two layers of nodes: spine nodes 104A and 104B (spine nodes 104) and leaf nodes 108A-108N (leaf nodes 108). Other topologies can be used in other examples. Servers 110 provide an execution and storage environment for applications and data associated with customers via customer devices 120, and can be physical servers, virtual machines, or a combination thereof.
[0022] Generally, the IP fabric 118 represents Layer Two (L2) and Layer Three (L3) switching and routing components that provide point-to-point connectivity between the servers 110. In one example, the IP fabric 118 includes a set of interconnected high-performance but off-the-shelf packet-based routers and switches that implement industry standard protocols. In one example, the IP fabric 118 can include off-the-shelf components that provide Internet Protocol (IP) point-to-point connectivity. Figure 1A and Figure 1B As shown in the example of Figure 1A and Figure 1B Each spine node 104 is communicatively coupled to each leaf node 108A-108N, as shown in the example of
[0023] Generally, the IP fabric 118 represents Layer Two (L2) and Layer Three (L3) switching and routing components that provide point-to-point connectivity between the servers 110. In one example, the IP fabric 118 includes a set of interconnected high-performance but off-the-shelf packet-based routers and switches that implement industry standard protocols. In one example, the IP fabric 118 can include off-the-shelf components that provide Internet Protocol (IP) point-to-point connectivity.
[0024] In one example approach, the IP fabric 118 is configured as a multi-stage network. Multi-stage data center networks, such as Clos or networks with a so-called "fat tree" topology, can be used in data centers for high performance and resiliency. In some example approaches, a fat tree network can allow for multi-pathing.
[0025] In one example approach, the IP fabric 118 includes a virtual chassis fabric (VCF). A VCF can be used to provide a low-latency, high-performance fabric architecture that can be managed as a single appliance. A VCF is built using a spine-leaf fabric. In a spine-leaf fabric, each spine appliance is interconnected to one or more leaf appliances. A VCF can support up to 20 appliances, and up to 4 appliances can be configured as spine appliances.
[0026] In one such example approach, the VCF is configured to allow path weights that reflect and react to end-to-end bandwidth of a path. This capability is referred to as "intelligent trunking" in a VCF. In some example approaches, the intelligent trunking capability can be enabled through a virtual chassis control protocol (VCCP) running within the VCF to provide globally optimized weights on multi-pathing.
[0027] In one example approach, the IP fabric 118 is a loosely federated folded multi-stage network in which all nodes of the IP fabric 118 run an IP routing protocol. The routing protocol, which can include an external border gateway protocol (EBGP), includes all paths between leaf nodes 108 in the IP fabric 118, and equal cost multi-path (ECMP) is used to utilize all paths. Routing in the Routing In Fat Trees (RIFT) protocol allows for the use of any set of all available minimum hop count paths without regard to ECMP constraints. Additional information regarding RIFT can be found in Internet Draft entitled RIFT: Routing in Fat Trees (draft-ietf-rift-rift-01) published by the Internet Engineering Task Force (IETF) on April 26, 2018, which is incorporated by reference herein.
[0028] In Figure 1A and Figure 1B , the network controller 114 provides a high-level controller for configuring and managing the routing and switching infrastructure of the data center 102. The network controller 114 can represent, for example, a software-defined network (SDN) controller that uses an SDN protocol such as path computation element (PCE) communication protocol (PCEP) to communicate and manage the devices of the data center 102. In some examples, the network controller 114 can use extensible messaging and presence protocol (XMPP), PCEP, or border gateway protocol messaging to communicate and manage the devices of the data center 102. Additionally, or alternatively, the network controller 114 can communicate with the routing and switching infrastructure of the data center 102 using other interface types such as a simple network management protocol (SNMP) interface, a path computation element protocol (PCEP) interface, a device management interface (DMI), a CLI, an interface to a routing system (IRS), or any other node configuration interface.
[0029] According to examples of the present disclosure, the network controller 114 provides a logically and in some cases physically centralized controller to facilitate operation of one or more networks within the data center 102. In some examples, the network controller 114 can operate in response to configuration input received from the network administrator 112. Additional information regarding the network controller 114 operating with other devices of the data center 102 can be found in International Application No. PCT / US2013 / 044378 entitled PHYSICAL PATH DETERMINATION FOR VIRTUAL NETWORK PACKET FLOWS filed on June 5, 2013, which is incorporated by reference herein.
[0030] In one example approach, as Figure 1AAs shown, the network controller 114 communicates with each node 104, 108 through a role assignor 116. In one such example method, each role assignor 116 includes a management link 128 to a management port P on each node 104, 108. The port can be a dedicated management port or can simply be a port dedicated for management. The management port P on each node 104, 108 is used to configure and manage the node 104, 108. In one example method, the role assignor 116 is a switch with ports designated as dedicated to spine nodes 104 and ports designated as dedicated to leaf nodes 108. In such an example method, the role of a node 104, 108 can be assigned by connecting the node's port P through the link 128 to one of the role assignor's 116 dedicated spine ports or one of the role assignor's 116 dedicated leaf ports. Any router or switch connected through the management link 128 to the role assignor's 116 dedicated spine ports is assumed to be a spine node 104, while any router or switch connected through the management link 128 to the role assignor's 116 dedicated leaf ports is assumed to be a leaf node 108.
[0031] In another example method, each role type has a different role assignor. In one such example method, as Figure 1B shown, the role assignor 116 includes a spine assignor 124 and a leaf assignor 126. Any router or switch connected through the management link 128 to the spine assignor 124 is assumed to be a spine node 104, while any router or switch connected through the management link 128 to the leaf assignor 126 is assumed to be a leaf node 108.
[0032] Although not shown, the data center 102 can also include one or more additional switches, routers, hubs, gateways, security devices such as firewalls, intrusion detection and / or intrusion prevention devices, computer terminals, laptop computers, printers, databases, wireless mobile devices such as cellular telephones or personal digital assistants, wireless access points, bridges, cable modems, application accelerators, or other network devices.
[0033] Generally, network traffic within IP fabric 118 (e.g., a flow of packets between servers 110) can use many different physical paths through the physical network of IP fabric 118. For example, a“packet flow” can be defined by values used in the headers of the packets, such as a network“five tuple,” i.e., the source IP address, destination IP address, source port, and destination port, and the communication protocol used to route the packets through the physical network. For example, the protocol specifies the communication protocol, such as TCP or UDP, and the source and destination ports refer to the source and destination ports of the connection. A set of one or more packet data units (PDUs) matching a particular flow entry represents a flow. Any parameter of the PDU can be used to roughly classify a flow, such as source and destination data link (e.g., MAC) and network (e.g., IP) addresses, virtual local area network (VLAN) tags, transport layer information, multiprotocol label switching (MPLS) or general MPLS (GMPLS) labels, and ingress port of the network device receiving the flow. For example, a flow can be all PDUs transmitted in a Transmission Control Protocol (TCP) connection, all PDUs represented by a particular MAC address or IP address, all PDUs with the same VLAN tag, or all PDUs received at the same switch port.
[0034] Figure 2 is an exemplary block diagram illustrating a router 270 capable of automatic role discovery and configuration in accordance with the techniques of this disclosure. In one example, role determination process 280 can operate as a submodule of routing protocol 258. For purposes of illustration, exemplary router 270 can be described in the context of network 100, and exemplary router 270 can represent an exemplary instance of nodes 104, 108 of Figure 1A and Figure 1B .
[0035] In one exemplary method, router 270 includes a control unit 232 and interface cards 236A-236N (“IFCs 236”) coupled to control unit 232 via internal links 242A-242N. Control unit 232 can include one or more processors (not shown in FIG. 2B) that execute computer-readable instructions (not shown in FIG. 2B) stored to a computer-readable storage medium (not shown in FIG. 2B) to perform the functions described herein. Figure 2 Figure 2 Software instructions stored on a non-transitory computer-readable medium (e.g., not shown) (such as a non-transitory computer-readable medium), such as software instructions defining one or more software or computer programs. Non-transitory computer-readable media include storage devices (e.g., disk drives or optical drives) and memory (e.g., flash memory, random access memory or RAM), and can be used to store instructions for execution by one or more processors to perform techniques described herein. Alternatively or additionally, control unit 232 can include dedicated hardware, such as one or more integrated circuits, one or more application-specific integrated circuits (ASICs), one or more application-specific special processors (ASSPs), one or more field-programmable gate arrays (FPGAs), or any combination of one or more of the foregoing examples of dedicated hardware, to perform the techniques described herein.
[0036] In this example, control unit 232 is divided into two logical or physical“planes” to include a first control or routing plane 234A (“control plane 234A”) and a second data or forwarding plane 234B (“data plane 234B”). That is, control unit 232 implements two separate functions, such as routing / control and forwarding / data functions, either logically, e.g., as separate software instances executing on the same set of hardware components, or physically, e.g., as separate physical dedicated hardware components, either statically implementing the functions in hardware, or dynamically executing software or computer programs to implement the functions.
[0037] Control plane 234A represents the hardware or combination of hardware and software of control unit 232 that defines the control plane functionality of router 270. Control plane 234A manages and controls the behavior of router 270, including the behavior of data plane 234B. Operating system 264 of control plane 234A provides a runtime environment for a number of different processes. Operating system 264 can represent, for example, a UNIX operating system derivative, such as Linux or the Berkeley Software Distribution (BSD). Operating system 264 provides libraries and drivers through which processes can interact, for example, with data plane 234B or other hardware of router 270, including a file system, storage, and main memory of router 270. The libraries and drivers of operating system 264 can include an application programming interface (API) that provides developers with a standard interface to invoke the functionality of operating system 264 and router 270 exposed through the libraries and drivers.
[0038] Control plane 234A performs one or more processes. Routing protocol processing 244 (“RP module 244”) represents the execution of routing protocol processing by one or more routing protocols 258, through which at least some routing information stored in one or more routing tables 260 can be determined. For example, routing protocol 258 may include the RIFT protocol. Routing table 260 represents a data structure used to store routing information and may represent a table, list, tree / try, or other data structure. Optionally, the routing table may be referred to as a routing information base, or alternatively, the routing table may be considered as a data structure within the routing information base of router 270.
[0039] Computer-readable storage device stored in control unit 232 Figure 2 The routing table 260 (not shown in the image) may include a network topology that defines the network (e.g., ...). Figure 1A and Figure 1B Information from at least a portion of the IP structure 118. Each routing table 260 can be associated with different address families or network layer protocols, such as unicast or multicast IPv4 and IPv6, and MPLS. Any one or more routing tables 260 can be predefined by routing protocol processing 244, or can be explicitly created by administrator 112 using configuration interface 273 or by network controller 114 using application programming interface (API) 276. Figure 2 In one exemplary method, network controller 114 communicates with API 276 via management link 128 through distributor 116. In some such exemplary methods, distributor 116 is a switch or router connected to management port P via management link 128, as described above. Figure 1A and Figure 1B As described in the discussion. Router 270 receives configuration data via configuration interface 273 or API 276 and stores the configuration data in configuration database 265.
[0040] Configuration interface 273 is a process executed on control plane 234B, providing an interface through which, for example, an administrator 112, network operator, or network management system can modify the configuration database 265 of router 270 (typically via management link 128). Configuration interface 273 may represent a command-line interface (CLI) and / or a graphical user interface (GUI), through which an administrator or other management entity can modify the configuration of router 270 using text-based commands and / or graphical interaction, respectively. Alternatively, configuration interface 273 may represent an agent that receives Simple Network Management Protocol (SNMP), Border Gateway Protocol (BGP) messages, or NetConf commands from a management device to set and retrieve configuration information in the configuration database 265 of router 270.
[0041] In the illustrated example, an application programming interface (API) 276 is a communication interface through which the network controller 114 can modify the configuration database 265 or modify any of the routing tables 260. The network controller 114 can represent a network management system, a software defined network (SDN) controller, and / or an orchestration system. The API 276 can be an HTTP-based RESTful interface using JavaScript Object Notation (JSON) or Extensible Markup Language data objects for exchanging configuration data and routing information between the network controller 114 and the router 270. The API 276 can include another type of API, such as a remote procedure call (RPC)-based API.
[0042] The routing protocol process 244 parses the topology defined by the routing information in the routing tables 260 to select and / or determine one or more active routes through the network. The routing protocol process 244 can then synchronize the data plane 234B with these active routes, where the data plane 234B maintains a representation of these routes as a forwarding table 266 (optionally, a “forwarding information base (FIB) 266”). The routing protocol process 244 can generate the forwarding table 266 in the form of a radix or other lookup tree to map packet information (e.g., header information with destination information and / or a label stack) to a next hop and ultimately to an interface port of the IFCs 236. The operating system 264 kernel can maintain a master copy of the forwarding table 266 and install portions of the master copy to forwarding components of the data plane 234B, such as packet forwarding engines.
[0043] The forwarding plane or data plane 234B represents the hardware or combination of hardware and software of the control unit 232 that forwards network traffic according to the forwarding table 266. The data plane 234B can include one or more forwarding units, each of which includes, for example, one or more packet forwarding engines (“PFEs”) coupled to one or more interface cards. The forwarding units can each represent, for example, a dense port concentrator (DPC), a modular port concentrator (MPC), a flexible physical interface card (PIC) concentrator (FPC), or another line card that is, for example, pluggable within a chassis or combination of chassis of the router 270.
[0044] According to the techniques of this disclosure, various routers 270 in the IP fabric 118 can perform role determination processing 280 at various times, such as during device startup, upon joining the fabric 118, during fabric reconfiguration, periodically, continuously, or otherwise. The routers 270 maintain their own router settings 282, such as role settings (e.g., spine or leaf settings (e.g., self.attribute.isSpine, self.attribute.Leaf2LeafProcedures, self.capabilities.leaf_to_leaf_procedures)). During operation, the routers 270 can additionally receive various setting information from neighboring routers, such as level information (e.g., neighbor.level) or setting information (e.g., neighbor.capabilities.leaf_to_leaf_procedures). The routers 270 can communicate with neighbors across a link connected to any one of the IFCs 236 by, for example, the IFC 236. Once the routers 270 have a configured role, the routers can form adjacencies with their neighboring routers, allowing the routers 270 to participate in various routing functions, such as transmitting a distance vector for a route to a lower neighbor or transmitting link state information to a higher neighbor.
[0045] Distance vector or distance vector routing information can include information about the routing table of the router 270. Link state information can include information about connectivity, i.e., about neighboring routers of the router 270, obtained by one or more link state algorithms (e.g., a shortest path first algorithm). The routing protocol processing 244 can operate according to the properties of a modified link state routing protocol (e.g., J. Moy, OSPF Version 2, RFC 2328, April 1998; and D. Oran, OSI IS-IS Intra-domain Routing Protocol, RFC 1142, February 1990) when transmitting routing information to an up-neighbor, and can operate according to the properties of a path vector protocol (e.g., Y. Rekhter, A Border Gateway Protocol 4 (BGP-4), RFC 4271, January 2006) when transmitting routing information to a down-neighbor. The entirety of RFC 2328, RFC 1142, and RFC 4271 are hereby incorporated by reference.
[0046] Figure 3 is a flow diagram illustrating an example method 300 for deploying network devices in an IP fabric 118 according to the techniques of this disclosure. The method 300 is described with respect to the system 100.Figure 2 Router 270 and Figure 1A and Figure 1B Network 100 to illustrate Figure 3 the method. However, other network devices (e.g., switches or other routers) can perform the method or a substantially similar method. Moreover, Figure 3 the method need not be performed in the order shown.
[0047] As noted above, human intervention to assign routers 270 to either the spine or leaf role can result in configuration errors. To overcome this, as noted above, a role assignor 116 is deployed and connected to each network device (nodes 104, 108) in the IP fabric 118 via the management links 128 of the management network as shown in Figure 1A , Figure 1B and Figure 2 The role assignor 116 can be a simple switch where the lower (or upper) ports are designated as leaf ports and the upper (or lower) ports are designated as spine ports. In larger deployments, two switches can be deployed; one for the spine and one for the leaves as shown in Figure 1B When the network controller 114 discovers a new device, due to its connectivity with the appropriate assignor, the controller 114 automatically assigns the appropriate role and, as a result, pushes the appropriate configuration to the device. In some examples, the introduction of such a role assignor function into the management network can provide a powerful automation mechanism to reduce human intervention and possible configuration errors.
[0048] In one example method, the ports of the assignor 116 are designated as spine node connections (302). The other ports of the assignor 116 are designated as leaf node connections (304). The network devices deployed into the IP fabric 118 are connected via the management ports to the ports of the assignor 116 that match their role (306). For example, network devices deployed as leaf nodes are connected to the leaf node connection ports of the assignor 116, while network devices deployed as spine nodes are connected to the spine node connection ports of the assignor 116.
[0049] When a network device deployed into the IP fabric 118 powers on, it attempts to discover whether it is connected to a spine node connection port of the assignor 116 or a leaf node connection port of the assignor 116 (308). If the device is connected to a spine node connection port of the assignor 116 (yes at 308), the device is a spine node and it is configured accordingly (310). If the device is not connected to a spine node connection port of the assignor 116 (no at 308), the device is a leaf node and it is configured accordingly (312).
[0050] Figure 4is a flowchart showing an exemplary method 350 for automatically determining role information for network devices in an IP fabric 118 according to the techniques of this disclosure. The method 350 is described with respect to Figure 2 the routers 270 and Figure 1A and Figure 1B network 100 of Figure 4 the method. However, other network devices (e.g., switches or other routers) can perform the method or a substantially similar method. Moreover, Figure 4 the method of
[0051] Initially, one or more role assigners 116 are configured for service (352). In one exemplary method, the particular ports of the switches designated as role assigners 116 are designated as spine ports, while the other ports are designated as leaf ports. In some exemplary methods, as discussed above Figure 1A , Figure 1B and Figure 2 described above, the nodes 104 and 108 are automatically assigned to the appropriate role within their network topology based on their connection to the assigner 116.
[0052] In one exemplary method, the ports of the switches designated as role assigners 116 are split in half, with the lower numbered ports designated as spine ports and the higher numbered ports designated as leaf ports. In another such method, the ports are split in half, with the lower numbered ports designated as leaf ports and the higher numbered ports designated as spine ports. The ports can also be designated as spine or leaf by other mechanisms (e.g., even / odd ports). Moreover, the management port connections on the assigners 116 can be divided in other ways (e.g., the lowest quarter or highest quarter of ports can be designated as spine node port connections, with the remaining ports designated as leaf node port connections).
[0053] In one such exemplary method, each router 270 connects to a port of the assigner 116 via its management port P (354). As Figure 1AAs shown, based on the information received from the role assigner 116, the devices 104, 108 within the IP fabric 118 are automatically assigned to the network layer 120 level within its network topology (e.g., the IP fabric 118). In one such example method, a router 270 with an unknown role obtains its own role by querying the attached role assigner 116 or by querying the dedicated assigners 124, 126 within the role assigner 116 (356). In one such method, each router 270 includes information detailing the ports on the assigner 116 designated as spine node ports and the ports on the assigner 116 designated as leaf node ports. In addition, each router 270 includes program code that allows the router 270 to determine the port on the assigner 116, 124, 126 to which it is connected and determine whether it is a spine node or a leaf node based on the assigner port. For example, the router 270 can use a link layer discovery protocol (LLDP) to begin receiving packets from the management link 128 on the management port P. If the packet is from a port on the assigner 116 dedicated to spine nodes, then the router 270 is a spine node. However, if the packet is from a port on the assigner 116 for leaf nodes, then the router 270 is a leaf node. The router 270 is then configured based on its determined role (358). In one example method, once the router 270 determines that it is a spine node or a leaf node, the router 270 contacts a server on the management network to retrieve the appropriate configuration information. In other words, in one such example where the router 270 "contacts a server," the router 270 outputs a signal over the management network. The server connected to the management network in this example detects the signal on the management network and determines that the signal corresponds to a request for configuration information. The server outputs a response signal over the management network. The router 270 detects the response signal and determines that the response signal includes the appropriate configuration information. In some examples, the server can be or include the assigner 116.
[0054] Figure 5 is a flowchart illustrating another example method 400 for automatically determining role information for network devices in an IP fabric 118 according to the techniques of this disclosure. In Figure 5 In the example method, the network controller 114 connected to the node 104, 108 through the assigner 116 determines the port on the assigner 116 that it uses to reach the node and configures the node accordingly as a spine or node. That is, if the management port of the router 270 is connected to a port on the assigner 116 dedicated to spine nodes, then the device is a spine node 104. If the management port is connected to a port on the assigner 116 dedicated to leaf nodes, then the device is a leaf node 108.
[0055] In one exemplary method, one or more role assigners 116 are configured for service (402). Each router 270 is connected to a port (404) of assigner 116 via a management port (or a port dedicated to management). Figure 1A As shown, based on the information received from the role assigner 116, devices 104 and 108 within IP structure 118 are automatically assigned to network layer 120 within their network topology (e.g., IP structure 118). Figure 1B As shown, based on information received from the spine assigner 124 or leaf assigner 126 of the role assigner 116, the devices 104, 108 within the IP structure 118 are automatically assigned to network layer 120 within their network topology (e.g., IP structure 118).
[0056] In one exemplary method, network controller 114 waits (no at 406) to detect a device added to IP structure 118 (406). For example, a device added to IP structure 118 may begin transmitting on management port P and / or via link interface 236 upon initialization. In one exemplary method, a switch or router is mounted in a rack and powered on. The switch or router then contacts via management link 128 to retrieve its IP address from a management network (e.g., via a Dynamic Host Configuration Protocol (DHCP) server).
[0057] When a new device is detected (yes at 406), network controller 114 determines its role (408). In one exemplary method, network controller 114 determines the role of the new device by determining the port on distributor 116 to which the new device is connected. If the port on distributor 116 is designated as dedicated to a spine node, network controller 114 configures the new device as a spine node. If the port on distributor 116 is designated as dedicated to a leaf node, network controller 114 configures the new device as a leaf node. The new device is then configured based on its determined role (410).
[0058] Similarly, if network controller 114 determines that a new device is connected to spine distributor 124, then network controller 114 configures the new device as a spine node. If network controller 114 determines that a new device is connected to leaf distributor 126, then network controller 114 configures the new device as a leaf node. Again, the new device is configured based on its determined role (410).
[0059] The techniques of this disclosure can provide one or more technical advantages over existing protocols. For example, the techniques of this disclosure can avoid requiring network administrator 112 to manually configure each switch with various parameters, such as defining each level 120 for each switch during configuration of IP fabric 118 or individual nodes 104, 108 (e.g., spine nodes 104, leaf nodes 108) that make up IP fabric 118. This can avoid configuration errors and administrative burden for network administrators. Some example techniques allow an administrator to connect an in-band network to an adjacent device within the fabric before configuring certain aspects of those devices, thereby avoiding the need to connect those devices to an out-of-band network.
[0060] The techniques described in this disclosure can be implemented, at least in part, in hardware, software, firmware or any combination thereof. For example, various aspects of the described techniques can be implemented within one or more processors, including one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or any other equivalent integrated or discrete logic circuitry, as well as any combinations of such components. The term "processor" or "processing circuitry" can generally refer to any of the foregoing logic circuitry, alone or in combination with other logic circuitry or any other equivalent circuitry. A control unit comprising hardware can also perform one or more of the techniques of this disclosure.
[0061] Such hardware, software, and firmware can be implemented within the same device or within separate devices to support the various operations and functions described in this disclosure. In addition, any of the described units, modules or components can be implemented together or separately as discrete but interoperable logic devices. Different features described as modules or units are intended to be
[0062] The techniques described in this disclosure can also be implemented or encoded in a computer readable medium, such as a computer readable storage medium, including instructions for causing a programmable processor or other processor to perform the methods. Computer readable storage medium can include non-volatile memory, volatile memory, and / or other computer readable medium. Non-volatile memory includes, for example, RAM, ROM, PROM, EPROM, EEPROM, flash memory, hard disks, CD-ROMs, DVDs, cassette tapes, magnetic tapes, magnetic disks, optical disks, other computer readable storage media, and / or the like. The term "computer readable storage medium" is expressly defined herein to exclude a transitory signal, carrier wave, or other transitory media.
[0063] Various examples have been described. These and other examples are within the scope of the following claims.
Claims
1. A network device comprising: a plurality of network ports, each of the network ports being couplable to a fabric; and processing circuitry configured to: establish, through the fabric, a network connection to one of a plurality of role allocator ports of a role allocator, identify, by querying the role allocator, a role allocator port to which the network device is connected through the network connection, and configure the network device based on the identified role allocator port.
2. The network device of claim 1, wherein, To configure the network device based on the identified role allocator port, the processing circuitry is further configured to: retrieve, through the fabric, configuration information of the network device.
3. The network device of claim 1, wherein, The plurality of role allocator ports comprises: a first subset of ports designated as first level port connections and a second subset of ports designated as second level port connections.
4. The network device of claim 3, wherein, To configure the network device based on the identified role allocator port, the processing circuitry is further configured to: determine that the identified role allocator port is a first level port; and configure the network device as a first level device.
5. The network device of claim 4, wherein, To configure the network device as a first level device comprises: configure the network device as a spine node.
6. The network device of claim 3, wherein, To configure the network device based on the identified role allocator port, the processing circuitry is further configured to: determine that the identified role allocator port is a second level port; and configure the network device as a second level device.
7. The network device of claim 6, wherein, To configure the network device as a second level device comprises: configure the network device as a leaf node.
8. The network device of any of claims 1-7, wherein, To establish the network connection through the fabric, the processing circuitry is further configured to: establish the network connection through a management network included within the fabric.
9. The network device of claim 8, wherein, To identify the role allocator port, the processing circuitry is further configured to: determine, via a data packet received over the management network, a port number assigned to the port of the role allocator to which the network device is connected.
10. The network device of claim 9, wherein, To identify the role allocator port, the processing circuitry is further configured to: determine, based on the port number, whether the network device is connected to a first level port or a second level port.
11. The network device of claim 9, wherein, To identify the role allocator port, the processing circuitry is further configured to: determine, based on the port number, whether the network device is connected to a port associated with a spine node or a port associated with a leaf node.
12. A network device configuration method comprising: deploying a network device inside a fabric having a management network by attaching a port of the network device to one of a plurality of ports of a role allocator via the management network; establishing, through the fabric, a network connection to one of a plurality of role allocator ports of a role allocator; identifying, by querying the role allocator, a role allocator port to which the network device is connected through the network connection; and configuring the network device based on the identified role allocator port. Configuring the network device based on the identified role allocator port comprises:
13. The method of claim 12, wherein, retrieving, through the fabric, configuration information of the network device. The plurality of role allocator ports comprises:
14. The method of claim 12, wherein, a first subset of ports designated as first level port connections and a second subset of ports designated as second level port connections. 15. The method of claim 14, wherein, configuring the network device based on the identified role assignor port includes: determining that the identified role assignor port is a first level port; and configuring the network device as a first level device.
16. The method of claim 15, wherein, configuring the network device as a first level device includes: configuring the network device as a spine node.
17. The method of claim 14, wherein, configuring the network device based on the identified role assignor port includes: determining that the identified role assignor port is a second level port; and configuring the network device as a second level device.
18. The method of claim 17, wherein, configuring the network device as a second level device includes: configuring the network device as a leaf node.
19. The method of any one of claims 12-18, wherein, establishing the network connection through the fabric includes: establishing the network connection through a management network included within the fabric.
20. A non-transitory computer readable storage medium having stored thereon instructions that, when executed, cause a processing circuit of a network device to: establish a network connection to one of a plurality of role assignor ports of a role assignor through a management network within a fabric; identify, by querying the role assignor, a role assignor port to which the network device is connected through the network connection; and configure the network device based on the identified role assignor port.
21. A device comprising: a plurality of network ports, each of the network ports being capable of being coupled to a fabric; and a processing circuit configured to: establish a network connection to a port of a plurality of ports of a system through the fabric, identify the port of the plurality of ports to which the device is connected through the network connection, wherein to identify the port, the processing circuit is further configured to receive information about the port, and configure the device based on the identified port. To receive information about the port, the processing circuit is further configured to: receive information from the system.
22. The apparatus of claim 21, wherein, To receive information about the port, the processing circuit is further configured to: determine, via a data packet received from the system, a port number assigned to the port to which the device is connected.
23. The apparatus of claim 21, wherein, To receive information about the port, the processing circuit is further configured to: query the system.
24. The apparatus of claim 21, wherein, To establish the network connection through the fabric, the processing circuit is further configured to: establish the network connection through a management network configured within the fabric.
25. The apparatus of claim 21, wherein, To identify the port, the processing circuit is further configured to: determine, via a data packet received through the management network, a port number assigned to the port of the system to which the device is connected.
26. The apparatus of claim 25, wherein, To identify the port, the processing circuit is further configured to: determine, based on the port number, whether the device is connected to a first level port or a second level port.
27. The apparatus of claim 26, wherein, To identify the port, the processing circuit is further configured to: determine, based on the port number, whether the device is connected to a port associated with a spine node or a port associated with a leaf node.
28. The apparatus of claim 26, wherein, To configure the device based on the identified port, the processing circuit is further configured to: retrieve configuration information for the device through the fabric.
29. The apparatus of any of claims 21-28, wherein, the plurality of ports of the system includes: a first subset of ports designated for connection as first level ports and a second subset of ports designated for connection as second level ports.
30. The apparatus of claim 21, wherein, 31. The apparatus of claim 30, wherein, To configure the apparatus based on the identified port, the processing circuitry is further configured to: configure the apparatus as a first level apparatus based on determining that the identified port is one of the first subset of ports designated as first level port connections.
32. The apparatus of claim 31, wherein, To configure the apparatus as a first level apparatus, the processing circuitry is further configured to: configure the apparatus as a spine node.
33. The apparatus of claim 30, wherein, To configure the apparatus based on the identified port, the processing circuitry is further configured to: configure the apparatus as a second level apparatus based on determining that the identified port is one of the second subset of ports designated as second level port connections.
34. The apparatus of claim 33, wherein, To configure the apparatus as a second level apparatus, the processing circuitry is further configured to: configure the apparatus as a leaf node.
35. A network apparatus configuration method, comprising: deploying a network apparatus inside a structure by attaching a port of the network apparatus to one of a plurality of ports of a system; establishing, by the network apparatus, a network connection to the port of the plurality of ports of the system through the structure; identifying, by the network apparatus, the port of the plurality of ports of the system to which the network apparatus is connected through the network connection by receiving information about the port from the system; and configuring the network apparatus based on the identified port. Receiving information about the port comprises:
36. The method of claim 35, wherein, receiving information from the system. Receiving information about the port comprises:
37. The method of claim 35, wherein, determining a port number assigned to the port of the system to which the network apparatus is attached from a data packet received from the system. Receiving information about the port comprises:
38. The method of any one of claims 35-37, wherein, inquiring the system.
39. The method of claim 35, establishing the network connection through the structure comprises establishing the network connection through a management network included in the structure; wherein and wherein identifying the port comprises determining a port number assigned to the port of the plurality of ports of the system to which the network apparatus is attached via a data packet received through the management network.
40. A non-transitory computer readable storage medium having stored thereon instructions that, when executed, cause processing circuitry of a network apparatus to: establish a network connection to a port of a plurality of ports of a system through a structure; identify the port to which the network apparatus is connected through the network connection, wherein identifying the port comprises receiving information about the port from the system; and configure the network apparatus based on the identified port of the system.
Citation Information
Patent Citations
Methods for dynamic resource management
CN106027428A
Using available bandwidths of an IP fabric to intelligently distribute data
US9807035B1