System and method for zero-touch configuration via aggregation / LACP ports
By using the DHCP vendor extension options to configure aggregation and/or LACP ports in network devices, the problem of manual setup or pre-configuration in the prior art is solved, and the automation and optimization of ZTP is realized, and the configuration efficiency of network devices is improved.
Patent Information
- Application Number
- CN202111266172.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-04-29
- Filing Date
- 2021-10-28
- Publication Date
- 2025-02-07
- Estimated Expiration
- 2041-10-28
AI Technical Summary
The prior art is difficult to seamlessly start the aggregation port and LACP port in network devices, resulting in the need for manual setup or pre-configuration, limiting the automation and optimization advantages of ZTP.
By leveraging DHCP vendor extension options 60 and 43, a vendor category identifier (VCI) is limited, allowing ZTP to automatically configure aggregation and/or LACP ports in network devices, eliminating the need for manual configuration.
The automated configuration of aggregation and/or LACP ports is realized, which improves the degree of automation and optimization of network equipment and reduces the time and cost of manual intervention.
Smart Images

Figure CN115277403B_ABST
Abstract
Description
Technical Field
[0001] Currently, cloud-based services are available for zero-touch provisioning (ZTP) of network devices and inventory management. Among its many benefits, ZTP technology eliminates the need for manual intervention in the configuration process. For example, by adopting ZTP, technical support personnel do not need to visit the installation site to configure network devices. Other benefits of ZTP technology include avoiding the need to reship network devices after configuration and optimizing resource usage. Configuration solutions using ZTP can enable networks such as wireless local area networks (WLANs) and virtual local area networks (VLANs) to be configured at unprecedented speeds without the need for on-site information technology (IT) support at any number of locations around the world. BRIEF DESCRIPTION OF THE DRAWINGS
[0002] According to one or more different embodiments, the present disclosure is described in detail with reference to the following figures. The figures are provided for illustration purposes only and depict only typical or example embodiments. These figures are provided to facilitate the reader's understanding of the various embodiments and should not be considered as limitations on the breadth, scope or applicability of the present disclosure. It should be noted that for clarity and ease of description, these figures are not necessarily drawn to scale.
[0003] Figure 1 An example network environment is shown in which the disclosed ZTP for trunking / LACP ports may be implemented.
[0004] Figure 2 An example system for implementing the disclosed ZTP for trunked ports in a network environment according to the present disclosure is shown.
[0005] Figure 3 An example system for implementing the disclosed ZTP for LACP ports in a network environment according to the present disclosure is shown.
[0006] Figure 4 is an operational flow chart illustrating an example method for implementing the disclosed ZTP for trunking and / or LACP ports according to an embodiment of the present disclosure.
[0007] Figure 5 is a block diagram of example computing components or devices for implementing the disclosed ZTP for aggregation and / or LACP port techniques according to one embodiment.
[0008] The drawings are not intended to be exhaustive or to limit the various embodiments to the precise form disclosed. It should be understood that the various embodiments can be implemented with modification and alteration. DETAILED DESCRIPTION
[0009] The systems and techniques disclosed herein relate to methods and systems that allow the use of "zero touch" configuration (ZTP) technology to seamlessly start devices such as gateways / access points / switches or any other network devices connected through different uplink types (such as aggregated links (static LAG, LACP), trunk ports, etc.). Currently, ZTP can be easily applied to ports commonly used in network environments, such as access ports on gateways and switches (acting as uplink ports). However, in current deployments, there is no solution that enables ZTP to start devices such as gateways / access points / switches or any other network devices connected through different uplink types (such as aggregated links (static LAG, LACP) and trunk ports) in the same direct and easy manner. Therefore, the technology disclosed herein is explicitly configured to adapt ZTP for specifically configuring trunk ports and link aggregation control protocol (LACP) ports in order to maintain the automation and optimization advantages typically provided by ZTP.
[0010] For example, in a software-defined wide area network (SD-WAN) network environment, ZTP is often a key method for configuring network devices such as gateways and virtual private network concentrators (VPNCs). In the case where the uplink ports on the gateway or VPNC are access ports, starting these network devices using ZTP can work seamlessly. However, in the case where the uplink ports are trunk ports or LACP / static LAG in access or aggregation mode, integrating ZTP may require a more cumbersome method, including: 1) manually setting up the device; 2) pre-configuring the device. For example, when trying to apply ZTP to start a trunk port, the network administrator may still be required to manually configure the network device using the settings dialog box. In addition, this manual configuration requires the network administrator to physically access the device console.
[0011] Alternatively, in another brute force approach, a network administrator may be required to pre-configure ZTP for network devices through access ports in a local setup. Subsequently, the required aggregation and / or LACP configurations can be pushed to the network devices from a network management service (e.g., Aruba Central). Once the network device receives the correct configuration, the device can be sent out for deployment (e.g., unplugged and sent to the branch location where it needs to be deployed). Although ZTP can be used in both of the above approaches, the manual setup and pre-configuration required to properly integrate ZTP with aggregation and / or LACP ports is suboptimal and ultimately hinders the automatic configuration capabilities provided by ZTP. Furthermore, the shortcomings of these brute force approaches are magnified in large-scale network environments, such as large SD-WAN deployments that may include thousands of branch sites. In such large-scale deployments, having to manually configure or pre-configure each network device is a fairly time-consuming task for network administrators, so much so that using ZTP to bring up aggregation and / or LACP ports (using a brute force approach) is not a viable scalable solution.
[0012] To address these issues, the disclosed technology adapts the configuration process with ZTP to be specifically used for aggregation and / or LACP ports. By leveraging DHCP vendor extensions (e.g., option 60 and option 43) and defining a vendor class identifier (VCI), the disclosed technology allows ZTP to efficiently and seamlessly start devices such as gateways / switches / access points or any other network devices connected via static LAG, LACP and / or aggregation ports like other ports. Therefore, the disclosed embodiments implement an automatic and efficient solution that eliminates the need to manually configure or pre-configure aggregation and / or LACP ports. This automation is achieved by: 1) configuring option codes to be specifically applicable to aggregation and / or LACP ports; 2) using these option codes during the ZTP phase; 3) programming the network device (e.g., branch gateway) with the correct configuration for aggregation and / or LACP ports indicated by the DHCP server; and 4) restarting ZTP to use the configured aggregation and / or LACP ports. In addition, the disclosed technology is agnostic to the deployment configuration and can be successfully used to start aggregation and / or LACP ports on a wide range of deployment models.
[0013] Before describing in detail embodiments of the disclosed ZTP for aggregation and / or LACP systems and methods, it will be advantageous to describe example network installations in which these systems and methods may be implemented in various applications. Figure 1An example of a network configuration 100 that can use ZTP with aggregation and / or LACP port technology as disclosed is shown. The network configuration 100 can be implemented for an organization such as an enterprise, an educational institution, a government entity, a healthcare institution, or other organization. The figure shows an example of a configuration implemented with an organization having multiple users (or at least multiple client devices 110) and possibly multiple physical or geographic sites 102, 132, 142. The network configuration 100 can include a primary site 102 in communication with a network 120. The network configuration 100 can also include one or more remote sites 132, 142 in communication with the network 120.
[0014] exist Figure 1 In the example deployment shown, the switch 108 is configured to use a link aggregation mechanism, such as trunking ports and / or LACP ports. As referred to herein, link aggregation refers to various methods of combining or aggregating multiple network connections in parallel. For example, the switch 138 can aggregate multiple links for uplink communications with an external network, such as a network at a remote site 132 including a gateway device 134, in order to increase throughput to a level that exceeds what a single connection can sustain and provide redundancy in the event that one of the links fails.
[0015] The primary site 102 may include a primary network, which may be, for example, an office network, a home network, or other network installation. The primary site 102 network may be a private network, such as a network that may include security and access controls to limit access to authorized users of the private network. Authorized users may include, for example, company employees at the primary site 102, residential residents, corporate customers, and the like.
[0016] In the example shown, the master site 102 includes a controller 104 that communicates with the network 120. The controller 104 can provide communication with the network 120 for the master site 102, although it may not be the only point of communication with the network 120 for the master site 102. A single controller 104 is shown, although the master site 102 may include multiple controllers and / or multiple points of communication with the network 120. In some embodiments, the controller 104 communicates with the network 120 through a router (not shown). In other embodiments, the controller 104 provides router functionality to devices in the master site 102.
[0017] The controller 104 can be used to configure and manage network devices, such as at the main site 102, and can also manage network devices at remote sites 132, 134. The controller 104 can be used to configure and / or manage switches, routers, access points, and / or client devices connected to the network. The controller 104 itself can be an access point or provide the functionality of an access point. According to an embodiment, the controller 104 can use ZTP to configure switches including aggregation and / or LACP ports, such as switch 108.
[0018] The controller 104 can communicate with one or more switches 108 and / or wireless access points (APs) 106a-c. The switches 108 and wireless APs 106a-c provide network connectivity to various client devices 110a-j. Using the connection to the switches 108 or APs 106a-c, the client devices 110a-j can access network resources, including the (primary site 102) network and other devices on the network 120.
[0019] As shown, switch 108 includes port 170. In the example shown, port 170 can be specifically configured as an aggregation port, which can transmit more than one VLAN's traffic through its aggregation link. As an aggregation port, port 170 can support up to eight physical links, which are assigned to a logical link (aggregation), which is used as a single high-speed link, providing significantly increased bandwidth. This performance is applicable to the connection between backbone devices and the connection in other network areas where there is a traffic bottleneck. In addition, port 170 can be configured as a part of the aggregation group on switch 108, wherein a group of up to eight ports (including port 170) can be configured as members of the same port aggregation. In some cases, the ports in the aggregation group do not have to be continuous. It may be advantageous to configure port 170 as an aggregation port because the aggregation link of port 170 allows a single port 170 to be used to transmit traffic for a group of VLANs. According to an embodiment, ZTP may be used to automatically configure switch 108 in a manner that allows port 170 to also be automatically configured, particularly as a trunk port capable of directing traffic on a first VLAN at site 102, a second VLAN at remote site 132, and a third VLAN at remote site 142.
[0020] Referring to the client devices 110a-j in the network configuration 100, examples of client devices may include: desktop computers, laptop computers, servers, network servers, authentication servers, authentication authorization accounting (AAA) servers, domain name system (DNS) servers, dynamic host configuration protocol (DHCP) servers, Internet Protocol (IP) servers, virtual private network (VPN) servers, network policy servers, mainframes, tablet computers, e-readers, netbooks, televisions and similar displays (e.g., smart TVs), content receivers, set-top boxes, personal digital assistants (PDAs), mobile phones, smart phones, smart terminals, dumb terminals, virtual terminals, video game consoles, virtual assistants, Internet of Things (IOT) devices, etc.
[0021] Within the primary site 102, a switch 108 is included as an example of an access point for wired client devices 110i-j to a network established within the primary site 102. The client devices 110i-j can connect to the switch 108 and can access other devices within the network configuration 100 through the switch 108. The client devices 110i-j can also access the network 120 through the switch 108. The client devices 110i-j can communicate with the switch 108 through a wired 112 connection. In the example shown, the switch 108 communicates with the controller 104 through the wired 112 connection, although the connection can also be wireless.
[0022] Wireless APs 106a-c are included as another example of access points for a network established by client devices 110a-h in the main site 102. Each of the APs 106a-c can be a combination of hardware, software, and / or firmware configured to provide wireless network connectivity to the wireless client devices 110a-h. In the example shown, the APs 106a-c can be managed and configured by the controller 104. The APs 106a-c communicate with the controller 104 and the network via a connection 112, which can be a wired or wireless interface.
[0023] The network configuration 100 may include one or more remote sites 132. The remote sites 132 may be located in a different physical or geographic location than the primary site 102. In some cases, the remote sites 132 may be located in the same geographic location as the primary site 102 or may be located in the same building, but lack direct connectivity to a network located within the primary site 102. Alternatively, the remote sites 132 may utilize connectivity over a different network (e.g., network 120). Figure 1The remote site 132 shown in FIG. 1 can be, for example, a satellite office, another floor or suite in a building, etc. The remote site 132 can include a gateway device 134 for communicating with the network 120. The gateway device 134 can be a router, a digital-to-analog modem, a cable modem, a digital subscriber line (DSL) modem, or some other network device configured to communicate with the network 120. The remote site 132 can also include a switch 138 and / or an AP 136 that communicate with the gateway device 134 via a wired or wireless connection. The switch 138 and the AP 136 provide connections to the network for various client devices 140a-d.
[0024] In various embodiments, the remote site 132 can communicate directly with the primary site 102, so that client devices 140a-d at the remote site 132 access network resources at the primary site 102 as if the client devices 140a-d were located at the primary site 102. In such embodiments, the remote site 132 is managed by the controller 104 at the primary site 102, and the controller 104 provides the necessary connectivity, security, and accessibility to enable the remote site 132 to communicate with the primary site 102. Once connected to the primary site 102, the remote site 132 can function as part of the private network provided by the primary site 102.
[0025] In various embodiments, the network configuration 100 may include one or more smaller remote sites 142 that include only a gateway device 144 and a wireless AP 146 for communicating with the network 120, and various client devices 150a-b access the network 120 through the wireless AP. Such a remote site 142 may represent, for example, a home or a temporary remote office of a single employee. The remote site 142 may also communicate with the main site 102, so that the client devices 150a-b at the remote site 142 access the network resources at the main site 102, as if these client devices 150a-b were located at the main site 102. The remote site 142 may be managed by the controller 104 at the main site 102 to make this transparency possible. Once connected to the main site 102, the remote site 142 may be used as part of the private network provided by the main site 102.
[0026] The network 120 may be a public wide area network (WAN), such as the Internet, or other communication networks that allow connections between the various sites 102, 130 to 142 and access to the servers 160a-b. The network 120 may include third-party telecommunication lines, such as telephone lines, broadcast coaxial cables, fiber optic cables, satellite communications, cellular communications, etc. The network 120 may include any number of intermediate network devices, such as switches, routers, gateways, servers, and / or controllers, which are not directly part of the network configuration 100, but facilitate communication between the various parts of the network configuration 100 and between the network configuration 100 and other network-connected entities. The network 120 may include various content servers 160a-b. The content servers 160a-b may include various providers of downloadable multimedia and / or streaming media content, including audio, video, graphics, and / or text content, or any combination thereof. Examples of content servers 160a-b include, for example, network servers, streaming broadcast and video providers, and cable and satellite television providers. Client devices 110a-j, 140a-d, 150a-b may request and access multimedia content provided by content servers 160a-b.
[0027] In LACP, LACP refers to another port type supported by the embodiment (in addition to Figure 1 Link Aggregation Groups (LAGs) are a group of physical ports that are grouped together. These umbrella terms include aggregation, bundling, bonding, channeling, or grouping. These umbrella terms include not only covering industry standard protocols such as LACP, but also various proprietary solutions.
[0028] According to LACP, once multiple ports in a system have the same participant system ID, participant key, partner system ID, and partner key, they belong to the same LAG. In some embodiments, the maximum number of port channels that can be supported via LACP is 8. In addition, LAGs can be created statically or dynamically via LACP. As disclosed herein, the configuration techniques are particularly suitable for enabling ZTP to be used to start devices that use LACP ports. Although embodiments are described with specific reference to aggregation and / or LACP ports, it should be understood that the present disclosure is not intended to be limiting. Therefore, the disclosed systems and methods can be applied to enable ZTP for ports that support other link aggregation mechanisms.
[0029] Figure 22 is an example of a network environment 200 implementing the disclosed technology to enable ZTP to boot a device through a trunked port. In this example, the network environment 200 may include a virtual local area network (VLAN) having a topology including a branch gateway 225 communicatively connected by a communication network 210, a cloud service shown as a cloud-based network manager 205, and a DHCP server 225. In this example, the branch gateway 220 may be deployed at a location such as a branch office with a switch 215 that is capable of communicating with other network devices distributed at locations remote from the branch gateway 220 and the switch 215. For example, the branch gateway 220 is communicatively connected to the DHCP server 225 via the switch 215. In addition, the branch gateway 220 is communicatively connected to the DHCP server 225 via the switch 215, shown as a WAN (e.g., the Internet). In addition, the switch 215 is communicatively connected to the network manager 205, which may be remote from the switch 215 and the branch gateway 220. In general, the network manager 205 can be a cloud-based server that provides unified network management for wired, wireless, and SD-WAN deployments and supports various management tasks, such as ZTP. In this example, the branch gateway 220 is implemented to include uplink ports 0 / 0 / 0, 0 / 0 / 1, which are aggregation ports for VLAN 10, VLAN 11.
[0030] ZTP is a feature implemented by network devices, such as switches, that allows devices to be automatically provisioned and configured, eliminating much of the manual labor involved in joining devices to the network. ZTP allows hardware to be installed directly into the environment with the last hands-on experience. When the hardware is powered on (post-deployment), the network device makes a request via DHCP (Dynamic Host Configuration Protocol) or TFTP (Trivial File Transfer Protocol) for the location of its centrally stored image and configuration, downloads it, and runs it. Thereafter, ZTP automates steps such as updating the operating system, deploying patches and bug fixes, and implementing additional features before the network device is connected to the network. The tool performs basic configuration, after which the switch can be deployed in an environment where custom configuration changes are made. Through user-provided scripts, ZTP can connect to a configuration management platform where custom configuration changes are made.
[0031] Network switches are still typically configured one at a time through a command line interface, which must be done on a single system or switch at a time. In a data center where there may be dozens or hundreds of switches that need to be provisioned and configured, the process is time-consuming. Each automated step saves time across countless systems. This advancement in network automation helps optimize configurations in sync with similar improvements in server technology.
[0032] According to an embodiment, the configuration process is adapted to use predefined extensions and defined vendor class identifiers (VCIs) in a manner that allows for the adoption of ZTP while alleviating the need to manually configure or pre-provision the branch gateway 220. These predefined extensions may be implemented as DHCP vendor extensions option 60 and option 43. For any trunk port, a native VLAN is part of the trunk port configuration. This native VLAN is utilized in the disclosed technology in order to contact the DHCP server 225 and obtain all information required to discover the associated uplink relay information, as well as information indicating whether the uplink port is a LACP port.
[0033] In the example shown, the branch gateway 220 sends a DHCP discover message 211 (or a DHCP request message) to the DHCP server 225. As can be seen, the DHCP discover message 211 includes option 60. Option 60 is a code that is part of the DHCP standard. According to the standard, option 60 is used by the DHCP client to identify itself to the DHCP server. Herein, option 60 is used by the branch gateway 220 as a mechanism to notify the DHCP server 225 that uplink details are being requested. The VCI of option 60 can be defined. In the example shown, the VCI of option 60 is defined as "ArubaGw". In response to receiving the DHCP discover message 211, the DHCP server 225 can check the VCI to determine whether option 60 matches the VCI defined on the DHCP server 225. If the VCI of the received option (i.e., option 60 and VCI ArubaGw) matches the VCI on the DHCP server 225, the DHCP server 225 will return a return message 226 including option 43. In an embodiment, the return message 226 is specifically configured to include the configuration information required to start the branch gateway 220, and further uses option 43 to convey the following information, which specifically indicates the type of uplink port on the branch gateway 225. Option 43 is a code that is part of the DHCP standard. According to the standard, when a DHCP server sees an identifiable VCI in a DHCP discovery from a DHCP client, it returns the mapped vendor-specific information in its DHCP offer to the client as option 43. In an embodiment, option 43 is explicitly configured to include a "type" indication, where the "type" indicates the type of port implemented on the corresponding device. The "type" indication can be set to a value, which can be defined to indicate the type of port. For example, the value used to implement the "type" indication can be defined as:
[0034] Type = 1, aggregation port only
[0035] Type = 2, aggregation and LACP
[0036] Type = 3, aggregation and static LAG
[0037] Type = 4, access port and LACP
[0038] Type = 5, access port and static LAG.
[0039] Return to reference Figure 2 For example, the return message 226 including option 43 may include "Type: 1; VLAN: 10; Port: 0 / 0 / 0; VLAN: 11; Port 0 / 0 / 1." Therefore, option 43 with "Type" set to a value of "1" indicates that the branch gateway 220 only includes trunk ports. By analyzing the return message 226 including option 43, the branch gateway 220 has the information required to determine the configuration and port type to be started with ZTP. In response to the branch gateway 220 receiving the response message 226 including option 43 from the DHCP server 225, the branch gateway 220 will process the VCI and may program its ports as trunk ports, as indicated by option 43. The branch gateway 220 may transmit this information to the network manager 205 as part of the setup configuration. Thereafter, the network manager 205 may push this information back to the branch gateway 220 via ZTP as part of a full configuration synchronization. Ultimately, ZTP can be implemented in the network environment 200 by adjusting option 60 and option 43 to automatically transmit the information required for port types in a seamless manner.
[0040] In another example, the branch gateway 220 can be implemented to include uplink ports 0 / 0 / 0, 0 / 0 / 1 to include trunk ports and static LAG ports for VLANs 10, 11. Therefore, in this example, option 43 included in the response message can be configured to set the "Type" parameter to a value of "3", indicating that the branch gateway 220 will be configured to enable trunk ports and static LAG ports. As described above, employing a static LAG allows multiple physical links between two endpoints to be treated as a single logical link. For example, if the physical links corresponding to these ports operate in full-duplex mode at the same speed, it may be beneficial to set uplink port 0 / 0 / 0 to a static LAG, which is optimal for configuration as a LAG to increase bandwidth and redundancy. Return to reference Figure 2 For example, the return message 226 including option 43 may include "Type: 3; VLAN: 10; Port: 0 / 0 / 0; VLAN: 11; Port 0 / 0 / 1."
[0041] In yet another example, the branch gateway 220 may be implemented with uplink ports 0 / 0 / 0, 0 / 0 / 1, which include access ports and LACP ports with VLANs 10, 11. Thus, in this example, option 43 in the response message may be configured to have its "type" parameter set to a value of "4", which indicates that the branch gateway 220 includes an access port and a LACP port. In this case, the return message 226 may include option 43 configured as "type: 4; VLAN: 10; port: 0 / 0 / 0; VLAN: 11; port 0 / 0 / 1."
[0042] In yet another example, the branch gateway 220 may be implemented to include uplink ports 0 / 0 / 0, 0 / 0 / 1, where the ports include access ports and static LAG ports with VLANs 10, 11. In this case, option 43 included in the response message may be configured to include "Type" set to a value of "5", which indicates that the branch gateway 220 includes access ports and static LAG ports. For example, the return message 226 may include option 43 configured as "Type: 5; VLAN: 10; Port: 0 / 0 / 0; VLAN: 11; Port 0 / 0 / 1."
[0043] refer to Figure 3 , shows another example of a network environment 300 implementing the disclosed technology to enable ZTP. Figure 3 The example network environment 300 includes the same Figure 2 300. Therefore, details about the topology of network environment 300 and its elements are not described in detail. However, branch gateway 320 is implemented to include uplink ports 0 / 0 / 0, 0 / 0 / 1, which are part of the aggregation configuration of LACP ports and VLAN 10. Therefore, the technology in network environment 300 is specifically implemented to enable ZTP to start the LACP port.
[0044] Since the branch gateway 320 has a different configuration (with Figure 2 The return message 326 including option 43 has information specific to that deployment. Figure 3As shown, the return message 326 includes "Type: 2; LACP: 0 / 0 / 1, 0 / 0 / 1; VLAN: 10." Therefore, option 43 with "Type" set to the value "2" indicates that the branch gateway 320 includes trunk ports and LACP ports. By analyzing the return message 326 including option 43, the branch gateway 320 has the information required to determine the configuration and port type to be started with ZTP. In response to the branch gateway 320 receiving the response message 326 including option 43 from the DHCP server 325, the branch gateway 320 will process the VCI and can program its ports as LACP ports and trunk ports, as shown in option 43. The branch gateway 320 can transmit this information to the network manager 305 as part of the setup configuration. Thereafter, the network manager 305 can push this information back to the branch gateway 320 via ZTP as part of a full configuration synchronization.
[0045] Figure 4 A flow chart of a process 400 for implementing the disclosed ZTP for aggregation and / or LACP port technology is shown. Figure 4 Process 400 is shown as a series of executable operations stored on machine-readable storage medium 404 performed by hardware processor 402, which may be a main processor of computing component 400. For example, computing component 400 may be a network device, such as at least one of the devices described in the accompanying drawings. Figure 2 and Figure 3 In operation, hardware processor 402 performs the operations of process 400, thereby implementing the disclosed technology.
[0046] In this example, process 400 begins at operation 406, where a discovery message is sent to a server. According to some embodiments, the server is a DHCP server, and the discovery message is a DHCP discovery message. It should be understood that the embodiments are not limited to the use of a DHCP server, and can be implemented using servers of other types for configuring network devices and discovery messages. The network device may initially assume that its uplink port is an access port. In other words, the network device may assume that each of its ports has a port type of "access port" before receiving specific information from the DHCP server. Therefore, the network device sends a DHCP request on its uplink port. According to an embodiment, the DHCP discovery message includes a predefined extension and defines a VCI. In particular, the predefined extension may be implemented as a DHCP vendor extension option 60.
[0047] In the case where the uplink switch acts as an intermediary between the network device (e.g., a branch gateway) and the external network, operation 406 may involve forwarding the DHCP request to the remote DHCP server using the uplink switch (in addition to the initial network device). In this case, operation 406 may involve the uplink switch (e.g., a switch supporting uplink traffic from the branch gateway) initially receiving the DHCP discover message from the network device and, because there is no VLAN tag information, assuming that the DHCP discover message is received on the local VLAN. Therefore, the uplink switch will relay the DHCP discover message to the DHCP server.
[0048] In response to the DHCP server receiving the DHCP discover message in operation 406, the DHCP server may check the received DHCP discover message. Specifically, the DHCP server may check whether option 60 is included in the DHCP message. If option 60 is present, the DHCP server may further analyze the message to determine whether the VCI in the received DHCP discover message matches the VCI configured on the DHCP server. If there is a match between the VCIs, the DHCP server will respond with a response message including option 43. In other words, the DHCP server may generate a response message (based on the DHCP discover message) and transmit it back to the network device. According to an embodiment, the response message includes a predefined extension. Specifically, the predefined extension may be implemented as a DHCP vendor extension option 43 and a virtual local area network (VLAN) configuration. Subsequently, operation 408 involves the network device receiving a response message including option 43 sent from the DHCP server. As described in detail above, option 43 may include a "type" indication set to a specific value by the DHCP server. According to an embodiment, the value used to implement the "type" indication may be defined as:
[0049] Type = 1, aggregation port only
[0050] Type = 2, aggregation and LACP
[0051] Type = 3, aggregation and static LAG
[0052] Type = 4, access port and LACP
[0053] Type = 5, access port and static LAG.
[0054] Since the response message including option 43 includes information specific to a particular deployment and the network device being configured, there are various different configurations of the response message that the network device can receive in operation 408. In the example deployment, the network device is a gateway, whose uplink ports are implemented as static LAG ports 0, 1 and part of aggregated vlan 10, and have no native VLAN 5. In this example, to indicate the configuration of the aforementioned uplink ports, option 43 can be configured as:
[0055] Option 43: Type: 3; SLAG: 0 / 0 / 1, 0 / 0 / 2; VLAN: 10
[0056] As mentioned above, the value of option 43 can have many different combinations depending on the deployment. Therefore, the disclosed embodiments provide a solution that is agnostic to the specific deployment used and has the flexibility to be applied to a wide range of deployments.
[0057] Thereafter, in response to receiving the response message including option 43, process 400 may proceed to operation 410. At operation 410, the network device may examine the response message from the DHCP server to perform a check to determine whether option 43 is indeed included in the message.
[0058] When option 43 is detected (in Figure 4 43 (shown as "yes" in the figure), process 400 continues to operation 412. In operation 412, the network device can process the information conveyed by option 43 and ultimately restart ZTP in a manner that enables the device ports, even if they are aggregated and / or LACP ports. Operation 412 can include the network device automatically performing configuration based on the option 43 information. That is, the network device can configure its ports based on the information conveyed by option 43. The network device can initiate DHCP discovery on these configured ports to restart ZTP. For example, when the gateway receives option 43, it can process the VCI and program its ports according to the "type" indication. For example, if the "type" indication is set to a value of "2", the gateway will program its ports accordingly as aggregate ports and LACP ports in operation 412. In addition, operation 412 can involve the network device sending this configuration information back to the cloud-based service as part of setting the configuration. The cloud-based service can then push this information back to the gateway as part of a full configuration synchronization.
[0059] Referring back to operation 410, or if the check determines that option 43 is not detected in the response message (in Figure 4If the option 43 information is not present, the network device does not have the information required to enable its own ports and configure itself. Therefore, at operation 410, the network device must continue with traditional ZTP, where it may need to contact a configuration server.
[0060] Figure 5 A block diagram of an example computer system 500 is depicted in which ZTP for aggregation and / or LACP ports as disclosed herein may be implemented. For example, the computer system 500 may be a network device such as a branch gateway (e.g., Figure 2 and Figure 3 500 includes a structure 502 or other communication mechanism for transmitting information, and one or more hardware processors 404 coupled to the structure 502 for processing information. The hardware processor 504 can be, for example, one or more general-purpose microprocessors.
[0061] The computer system 500 also includes a main memory 506, such as a random access memory (RAM), cache, and / or other dynamic storage device, coupled to the structure 502 for storing information and instructions to be executed by the processor 504. The main memory 506 may also be used to store temporary variables or other intermediate information during execution of instructions to be executed by the processor 504. Such instructions, when stored in a storage medium accessible to the processor 504, present the computer system 500 as a special-purpose machine customized to perform the operations specified in the instructions.
[0062] Computer system 500 also includes a storage device 510, such as a read-only memory (ROM) or other static storage device coupled to structure 502, for storing static information and instructions for processor 504. Storage device 510, such as a magnetic disk, optical disk, or USB thumb drive (flash drive), etc., is configured and coupled to structure 502 for storing information and instructions.
[0063] Computer system 500 may be coupled to a display 512, such as a liquid crystal display (LCD) (or touch screen), via structure 502 for displaying information to a computer user. Input device 514, including alphanumeric and other keys, is coupled to structure 502 for communicating information and command selections to processor 504. Another type of user input device is cursor controller 416, such as a mouse, trackball, or cursor direction keys, for communicating direction information and command selections to processor 504 and for controlling cursor movement on display 512. In some embodiments, the same direction information and command selections as cursor control may be achieved by receiving touches on a touch screen without a cursor.
[0064] The computing system 500 may include a user interface module for implementing a GUI, which may be stored in a mass storage device as executable software code executed by one or more computing devices. As examples, this module and other modules may include components, such as software components, object-oriented software components, class components, and task components, processes, functions, properties, procedures, subroutines, program code segments, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables.
[0065] Generally, as used herein, the words "component", "engine", "system", "database", "data storage", etc. may refer to logic contained in hardware or firmware, or to a collection of software instructions, which may have entry points and exit points, written in a programming language, such as Java, C or C++. Software components may be compiled and linked into an executable program, installed in a dynamic link library, or may be written in an interpreted programming language (such as BASIC, Perl or Python). It should be understood that software components can be called from other components or from themselves, and / or can be called in response to detected events or interrupts. Software components configured for execution on a computing device may be provided on a computer-readable medium, such as a compact disc, digital video disc, flash drive, disk, or any other tangible medium, or as a digital download (and may be initially stored in a compressed or installable format that requires installation, decompression or decryption before execution). Such software code may be stored in part or in whole on a memory device of an executing computing device for execution by the computing device. The software instructions may be embedded in firmware, such as an EPROM. It should also be understood that hardware components may be composed of connected logic units, such as gates and flip-flops, and / or may be composed of programmable units, such as programmable gate arrays or processors.
[0066] Computer system 500 may implement the techniques described herein using custom hardwired logic, one or more ASICs or FPGAs, firmware, and / or program logic that, in combination with the computer system, makes computer system 500 a special purpose machine or programs computer system 500 as a special purpose machine. According to one embodiment, the techniques herein are performed by computer system 500 in response to processor 504 executing one or more sequences of one or more instructions contained in main memory 406. Such instructions may be read into main memory 506 from another memory medium, such as storage device 510. Execution of the sequences of instructions contained in main memory 506 causes processor 504 to perform the process steps described herein. In alternative embodiments, hardwired circuitry may be used in place of or in combination with software instructions.
[0067] As used herein, any form of hardware, software or combination thereof can be utilized to implement a circuit. For example, one or more processors, controllers, ASIC, PLA, PAL, CPLD, FPGA, logic components, software routines or other mechanisms can be implemented to form a circuit. In an embodiment, the various circuits described herein can be implemented as discrete circuits, or the described functions and features can be partially or completely shared between one or more circuits. Although various features or functional elements can be described or claimed separately as separate circuits, these features and functions can be shared between one or more common circuits, and such descriptions should not require or imply that separate circuits are needed to implement such features or functions. In the case of using software to implement the circuit in whole or in part, such software can be implemented as operating together with a computing or processing system that can perform the functions described therein, such as computer system 500.
[0068] As used herein, the term "or" may be interpreted as inclusive or exclusive. In addition, descriptions of resources, operations, or structures in the singular should not be understood to exclude the plural. Conditional language, such as "can," "may," "perhaps," or "might," unless otherwise specifically stated or otherwise understood in the context of use, is generally intended to convey that certain embodiments include certain features, elements, and / or steps, while other embodiments do not include these features, elements, and / or steps.
[0069] Terms and phrases used in this document, and variations thereof, unless expressly stated otherwise, should be construed as open ended and not limiting. Adjectives such as "conventional," "traditional," "normal," "standard," "known," and terms of similar meaning should not be construed to limit the items described to a given time period or to items available at a given time. Rather, they should be construed to encompass conventional, traditional, normal, or standard technology available or known at any time now or in the future. In certain cases, the presence of broad words and phrases such as "one or more," "at least," "but not limited to," or other similar phrases should not be construed to mean that a narrower context is intended or required where such broad phrases may not be present.
Claims
1. A method for network configuration, comprising: receiving, by a Dynamic Host Configuration Protocol (DHCP) server, a DHCP discover message from an uplink port of a gateway, wherein the DHCP discover message is sent by the gateway and includes a vendor class identifier (VCI); In response to receiving the DHCP discover message, determining whether the DHCP discover message includes a first DHCP-defined option code identifying a configured device; In response to determining that the DHCP discover message includes the first DHCP-restricted option code, determining that the VCI in the DHCP discover message matches a VCI for the configured device; as well as In response to determining the match between the VCI in the DHCP discover message and the VCI for the configured device, automatically sending configuration information for the configured device, the configuration information including a predefined extension and a virtual local area network (VLAN) configuration, wherein the predefined extension includes a second DHCP-restricted option code for returning mapped vendor-specific information corresponding to the VCI for the configured device and identifying a port type, so that the configuration information is automatically processed, and the uplink port is programmed as a trunk port, or an LACP port, or both the trunk port and the LACP port based on the port type identified by the predefined extension, and the uplink port is configured according to the VLAN configuration, and wherein the port type indicated by the predefined extension includes a first type indicating only a trunk port, or a second type indicating a LACP port, or a third type indicating both a trunk port and a LACP port.
2. The method of claim 1, wherein an uplink switch associates the DHCP discover message with a native VLAN and relays the DHCP discover message to the DHCP server.
3. The method according to claim 1, further comprising: receiving, by the gateway, the second DHCP-restricted option code; Processing, by the gateway, the VCI in the DCP discovery message; automatically programming, by the gateway, the uplink port as the trunk port, the LACP port, or both the trunk port and the LACP port based on the port type; and The programming is applied by the gateway as part of a setup configuration. 4 . The method of claim 1 , further comprising automatically deploying one or more devices in a network corresponding to the gateway. 5 . The method of claim 4 , wherein automatically deploying the one or more devices comprises performing zero touch provisioning (ZTP).
6. A method for network configuration, comprising: A Dynamic Host Configuration Protocol DHCP discover message is sent by a network device on an uplink port; Receiving, by the network device, a response message based on the DHCP discovery message; determining that a predefined extension is included in the response message, wherein the predefined extension indicates a port type and a virtual local area network (VLAN) configuration, and the predefined extension includes a DHCP-defined option code to return mapped vendor specific information, and wherein the port type indicated by the predefined extension includes one of: Indicates only the first type of aggregation port; Indicates a second type of a Link Aggregation Control Protocol (LACP) port; or Indicates a third type of a trunk port and a LACP port; and In response to determining that a predefined extension is included in the response message, automatically configuring one or more ports of the network device and a VLAN associated with the network device based on the port type and the VLAN configuration indicated by the predefined extension; as well as Restarting zero touch provisioning ZTP for the network device according to the configuration of the one or more ports of the network device and the VLAN associated with the network device.
7. The method according to claim 6, further comprising: Receiving, by the network device, the DHCP restricted option code; automatically programming, by the network device, the uplink port as the trunk port, the LACP port, or both the trunk port and the LACP port based on the port type; and The programming is applied by the network device as part of a setup configuration.
8. The method of claim 6, further comprising automatically deploying one or more devices in a network corresponding to the network device.
9. The method of claim 8, wherein automatically deploying the one or more devices comprises performing zero touch provisioning (ZTP).
10. A Dynamic Host Configuration Protocol DHCP server, comprising: Hardware processor; as well as a non-transitory computer-readable storage medium storing instructions that, when executed by the hardware processor, cause the DHCP server to: receiving, at the DHCP server, a DHCP discover message from an uplink port of a gateway, wherein the DHCP discover message is sent by the gateway and includes a vendor class identifier (VCI); In response to receiving the DHCP discover message, determining whether the DHCP discover message includes a first DHCP-defined option code identifying a configured device; In response to determining that the DHCP discover message includes the first DHCP-restricted option code, determining whether the VCI in the DHCP discover message matches a VCI for the configured device; as well as In response to determining a match between the VCI in the DHCP discover message and the VCI for the configured device, automatically sending configuration information for the configured device, the configuration information including a predefined extension and a virtual local area network (VLAN) configuration, wherein the predefined extension includes a second DHCP-restricted option code for returning mapped vendor-specific information corresponding to the VCI of the configured device for the configured device and identifying a port type, so that the configuration information is automatically processed, and the uplink port is programmed as a trunk port, or a Link Aggregation Control Protocol (LACP) port, or both the trunk port and the LACP port based on the port type identified by the predefined extension, and the uplink port is configured according to the VLAN configuration, and wherein the port type indicated by the predefined extension includes a first type indicating only a trunk port, or a second type indicating a LACP port, or a third type indicating both a trunk port and a LACP port.
11. The DHCP server of claim 10, wherein the DHCP discover message is relayed by a switch.
12. A network device comprising: Hardware processor; as well as a non-transitory computer-readable storage medium storing instructions that, when executed by the hardware processor, cause the network device to: Sending a Dynamic Host Configuration Protocol (DHCP) discovery message from the network device on an uplink port; receiving, at the network device, a response message based on the DHCP discover message; determining whether a predefined extension is included in the response message, wherein the predefined extension indicates a port type and a virtual local area network (VLAN) configuration, and the predefined extension includes a DHCP-defined option code for returning mapped vendor specific information, and wherein the port type indicated by the predefined extension includes at least one of: Indicates only the first type of aggregation port; Indicates a second type of a Link Aggregation Control Protocol (LACP) port; or Indicates a third type of a trunk port and a LACP port; and In response to determining that the predefined extension is included in the response message, automatically configuring one or more ports of the network device and a VLAN associated with the network device based on the port type and the VLAN configuration indicated by the predefined extension; as well as Restarting zero touch provisioning ZTP for the network device according to the configuration of the one or more ports of the network device and the VLAN associated with the network device.
Citation Information
Patent Citations
Automatic ICCP provisioning and VLAN provisioning on an inter-chassis link in a MC-LAG
US10554494B1
Zero touch configuration and synchronization of a service appliance in a network environment
US20160094394A1