Stack switching detection and provisioning

Stack switching detection may be provided. First, a request to connect to a server may be received by the server from a first network device. Then the server may send, in response to receiving the request, a query to the first network device for a serial number of any other network device connected to the first network device. The first network device may have a first serial number. The server may receive, from the first network device, a response to the query. The response may include a second serial number corresponding to a second network device connected to the first network device. Next, the server may determine, based on the response, that the first network device and the second network device comprise a stack unit. The server may then provision the stack unit by provisioning the first network device and provisioning the second network device through the first network device.

TECHNICAL FIELD

The present disclosure relates generally to network provisioning.

BACKGROUND

A computer network or data network is a telecommunications network that allows computers to exchange data. In computer networks, networked computing devices exchange data with each other using a data link. The connections between nodes are established using either cable media or wireless media. The best-known computer network is the Internet. Client address based forwarding of dynamic host configuration protocol response packets.

Network computer devices that originate, route, and terminate the data are called network nodes. Nodes can include hosts such as personal computers, phones, servers as well as networking hardware. Two such devices can be said to be networked together when one device is able to exchange information with the other device, whether or not they have a direct connection to each other. Computer networks differ in the transmission medium used to carry their signals, the communications protocols to organize network traffic, the network's size, topology, and organizational intent.

DETAILED DESCRIPTION

Overview

Stack switching detection may be provided. First, a request to connect to a server may be received by the server from a first network device. Then the server may send, in response to receiving the request, a query to the first network device for a serial number of any other network device connected to the first network device. The first network device may have a first serial number. The server may receive, from the first network device, a response to the query. The response may include a second serial number corresponding to a second network device connected to the first network device. Next, the server may determine, based on the response, that the first network device and the second network device comprise a stack unit. The server may then provision the stack unit by provisioning the first network device and provisioning the second network device through the first network device.

Example Embodiments

When building and maintaining a fabric network, network operators may spend a lot in resource costs to deploy and provision network devices like routers, switches, access points, etc. These high resource costs may be a direct result, for example, of the involved complexity, human labor, travel, and staging costs to provision network devices. These costs may be particularly high for stack switching units due to the involved complexity in provisioning them. For example, stack switching units (i.e., stack units) can be configured to operate in three, five, or nine network devices forming stacks for more port density and throughput. Conventional systems do not have the capability to fully automate “day 0” network provisioning of stack switching units.

A fabric network may comprise a network topology in which components pass data to each other through interconnecting network nodes (e.g., devices). Fabric networks comprise overlay and underlay. The underlay may deal with connectivity between fabric network devices and the overlay may deal with user traffic transiting the fabric network. The fabric network overlay may comprise functional components such as fabric edge (FE) devices, fabric intermediate devices, fabric border (FB) devices, and a map resolver/server. The FE devices and FB devices, for example, of a fabric network may comprise stack switching units (i.e., stack units) each comprising more than one network devices configured in a stack.

In the fabric network overlay, FE devices may comprise, for example, Locator/ID Separation Protocol (LISP) xTR nodes and FB devices may comprise, for example, LISP pxTR nodes. End points (e.g., client devices including hosts) may be attached to the FE devices. The end points may be in endpoint identification (EID) space with each endpoint having an EID. Devices in the fabric network (e.g., FE devices and FB devices) may be configured with an address (e.g., a locator address). FE devices may register discovered EIDs (from the end points) with a fabric host-tracking database running on the map resolver/server associating the discovered EID to, for example, the configured locator address of the FE device that discovered it.

When a local FE device receives a packet from a local end point destined to a remote end point (i.e., on a remote FE device) whose location is not known, the local FE device may send a map request message to the map resolver/server. Once the local FE device receives a reply message back from the map resolver/server associating the unknown EID to the remote locator address, all subsequent traffic from the local end point may be encapsulated (e.g., LISP encapsulated) and forwarded to the remote locator address (i.e., remote FE device). Once the encapsulated packet is received on the remote FE device, the remote FE device may decapsulate the packet and forward natively (e.g., to the remote endpoint).

FB devices may connect the fabric network to the native routing domain. FB devices may be configured, for example, as LISP pxTR nodes and may provide a default gateway service to the FE nodes. Communication may happen through the FB device configured, for example, as a LISP pxTR node. When an FE device receives a packet from a local end point destined to a host outside the fabric network in the native routing domain, the FE device may encapsulate and send the packet to the FB device. The FB device may provide, for example, the LISP pxTR functionality and advertise itself as a next-hop address for all the fabric managed EID prefixes to the native routing domain so that it can steer the traffic.

FIG. 1shows a system100consistent with embodiments of the disclosure for providing stack switching detection. As shown inFIG. 1, system100may comprise a server105, a first network (e.g., Internet110), and a second network (e.g., network115). Server105may comprise, but is not limited to an Application Policy Infrastructure Controller (APIC). With respect to network115, server105may provide centralized access to all fabric information, optimize the application lifecycle for scale and performance, and support flexible application provisioning across physical and virtual resources. Server105may be implemented using computing device300as described in greater detail below with respect toFIG. 3.

Network115may comprise a border device120, a router125, a first stack unit130, a second stack unit135, and a third stack unit140. First stack unit130may comprise a first network device145and a second network device150. Second stack unit135may comprise a third network device155, a fourth network device160, and a fifth network device165. Third stack unit140may comprise a sixth network device170, a seventh network device175, an eighth network device180, a ninth network device182, a tenth network device184, an eleventh network device186, a twelfth network device188, a thirteenth network device190, and a fourteenth network device192. Each one of first network device145, second network device150, third network device155, fourth network device160, fifth network device165, sixth network device170, seventh network device175, eighth network device180, ninth network device182, tenth network device184, eleventh network device186, twelfth network device188, thirteenth network device190, and fourteenth network device192may comprise, but are not limited to, a switch or a router for example. Network102may comprise any number of stack units and each stack unit may comprise any number of network devices.

Network115may comprise a fabric network. The fabric network may comprise an underlay and an overlay. The underlay may deal with connectivity between fabric elements and the overlay may deal with user traffic entering the fabric. Traffic may enter the fabric network (i.e., network115) through FE devices (e.g., first stack unit130, second stack unit135, and third stack unit140). The traffic may be routed through network115via one (e.g., router125) or a plurality of intermediate network devices within the plurality of network devices. The FE devices may be responsible for encapsulating a packet with a fabric header that contains an egress FE device address. When a packet (e.g., frame) arrives at the egress FE device, a fabric header may be stripped off and the native packet may be forwarded according to an inner address. The fabric network may be capable of providing layer-2 and layer-3 services on top of the underlay.

The fabric network (i.e., network115) may have endpoints connected to first stack unit130, second stack unit135, and third stack unit140. These endpoints may comprise any type device wishing to communicate over network115. For example, each of the endpoints may comprise, but are not limited to, a Wi-Fi access point, a cellular base station, a tablet device, a mobile device, a smart phone, a telephone, a remote control device, a set-top box, a digital video recorder, a cable modem, a personal computer, a network computer, a mainframe, a router, or other similar microcomputer-based device.

First stack unit130, second stack unit135, and third stack unit140may each function as FE devices on network115. First stack unit130, second stack unit135, and third stack unit140may each comprise multiple, individual network devices that form their corresponding respective stacks to provide, for example, more port density and throughput. First stack unit130, second stack unit135, and third stack unit140may form horizontal or vertical stack depending on front or back cabling for example.

FIG. 2is a flow chart setting forth the general stages involved in a method200consistent with an embodiment of the disclosure for providing stack switching detection. Method200may be implemented using a server105as described in more detail below with respect toFIG. 1. Ways to implement the stages of method200will be described in greater detail below. Server105may be implemented using computing device300as described in greater detail below with respect toFIG. 3.

Method200may begin at starting block205and proceed to stage210where server105may receive a request from first network device145to connect to server105. Stack switching units (i.e., stack units) can be configured to operate in three, five, or nine network devices forming stacks for more port density and throughput. Conventional systems do not have the capability to fully automate day 0 network provisioning of stack switching units. There are two major problems that embodiments of the disclosure may solve: 1) detection of stack wise switching units; and 2) automatically correcting software version/image and software license on stack switching unit members. For example, first network device145may include, for example, a plug and play (PNP) software agent that may attempt to connect to server105when first network device145is first booted up. At this point, server105may not yet know whether first network device145is part of a stack switching unit or not.

From stage210, where server105receives the request from first network device145to connect to server105, method200may advance to stage220where server105may send, in response to receiving the request, a query to first network device145for a serial number of any other network device connected to first network device145. First network device may have a first serial number. For example, server105may have implemented intelligent logic to query first network device145for all possible serial numbers from connecting network devices (e.g., second network device150). Correspondingly, first network device145may also have implemented intelligence to collect serial numbers for all booted stack switching unit members. Because first network device145may be the first to boot up, first network device145may become the “master” and the software agent running on the master may collect information about other connected members as and when they come up, including serial numbers. When the master (i.e., first network device145) connects to server105, server105may know that first network device145may be a device that could be part of potential stack. Accordingly, server105may query first network device145for further serial numbers and wait for other stack members (e.g., second network device150) to come online based on query information.

Once server105sends the query to first network device145in stage220, method200may continue to stage230where server105may receive, from first network device145, a response to the query. The response may include a second serial number corresponding to second network device150, which may be connected to first network device145forming first stack unit130.

After server105receives the response to the query in stage230, method200may proceed to stage240where server105may determine, based on the response, that first network device145and second network device150comprise a stack unit (i.e., first stack unit130). For example, server105may use the response in such a way that server105may detect that first network device145is part of a stack unit or not. When server105detects that this is possible stack unit, server105may collect all stack members' serial numbers and tag this device (i.e., first stack unit130) as a stack unit.

From stage240, where server105determines that first network device145and second network device150comprise the stack unit (i.e., first stack unit130), method200may advance to stage250where server105may provision the stack unit (i.e., first stack unit130). Provisioning the stack unit may comprise provisioning first network device145and then provisioning second network device150through first network device145. For example, all stack members can be provisioned automatically in a coherent fashion from the server105. An administrator may not need to provision them separately as individual serial numbers/devices.

When network devices (e.g., first network device145and second network device150) are ordered from a manufacturer, they may be each ordered as single devices. Later, they may be configured together to form a horizontal or vertical stack unit depending, for example, on front or back cabling. Since these network devices may be ordered as single devices, often times they come with different software images and software licenses on them. In addition, the stack unit master device and other individual stack member devices may be running different software images and/or software license level. Often times, these devices may also be pulled from shelves for re-use purposes, not knowing what image/licenses are running on them. When a stack unit is formed, stack unit members may not join a stack if they are not running homogenous software image or license level within a stack unit. The master device may show these other members in a member “mismatch” state and not part of functional stack unit yet.

With the process described above with respect toFIG. 2, server105may detect a stack as a single, coherent stack unit instead of a standalone switch. With this, server105may have full control of the active member (i.e., first network device145) that is connected to it. By default, this active member may be the member booted first and has become the master. Server105may query the master device to learn about stack member devices that may not be running the same software image and/or license levels as the master device. Moreover, the master device may also auto-correct this software image and licenses by pushing them from server105automatically when provisioning this stack unit (i.e., first stack unit130). This can bring up the entire first stack unit130as a coherent single unit with a uniform software image and license on each member device of first stack unit130(i.e., first network device145and second network device150).

Consistent with embodiments of the disclosure, a user (e.g., an administrator) may specify a version (e.g., software or license) that may be required for a master. After that, server105may detect if any of the stack member devices are not on that specified version and either upgrades or downgrades the version for the stack member devices automatically to make them join the stack unit fully. This may happen without requiring the user's intervention. Once server105provisions the stack unit (i.e., first stack unit130) in stage250, method200may then end at stage260. Consistent with embodiments of the disclosure, method200may be repeated for additional network devices in a stack unit.

FIG. 3shows a computing device300. As shown inFIG. 3, computing device300may include a processing unit310and a memory unit315. Memory unit315may include a software module320and a database325. While executing on processing unit310, software module320may perform processes for providing stack switching detection, including for example, any one or more of the stages from method200described above with respect toFIG. 2. Computing device300, for example, may provide an operating environment for any of server105, first network device145, second network device150, third network device155, fourth network device160, fifth network device165, sixth network device170, seventh network device175, eighth network device180, ninth network device182, tenth network device184, eleventh network device186, twelfth network device188, thirteenth network device190, and fourteenth network device192. Server105, first network device145, second network device150, third network device155, fourth network device160, fifth network device165, sixth network device170, seventh network device175, eighth network device180, ninth network device182, tenth network device184, eleventh network device186, twelfth network device188, thirteenth network device190, and fourteenth network device192may operate in other environments and are not limited to computing device300.

Computing device300may be implemented using a Wi-Fi access point, a cellular base station, a tablet device, a mobile device, a smart phone, a telephone, a remote control device, a set-top box, a digital video recorder, a cable modem, a personal computer, a network computer, a mainframe, a router, or other similar microcomputer-based device. Computing device300may comprise any computer operating environment, such as hand-held devices, multiprocessor systems, microprocessor-based or programmable sender electronic devices, minicomputers, mainframe computers, and the like. Computing device300may also be practiced in distributed computing environments where tasks are performed by remote processing devices. The aforementioned systems and devices are examples and computing device300may comprise other systems or devices.

While certain embodiments of the disclosure have been described, other embodiments may exist. Furthermore, although embodiments of the present disclosure have been described as being associated with data stored in memory and other storage mediums, data can also be stored on or read from other types of computer-readable media, such as secondary storage devices, like hard disks, floppy disks, or a CD-ROM, a carrier wave from the Internet, or other forms of RAM or ROM. Moreover, the semantic data consistent with embodiments of the disclosure may be analyzed without being stored. In this case, in-line data mining techniques may be used as data traffic passes through, for example, a caching server or network router. Further, the disclosed methods' stages may be modified in any manner, including by reordering stages and/or inserting or deleting stages, without departing from the disclosure.