DHCP layer 2 relay in vxlan overlay fabric

By using VTEP devices to intercept and encapsulate DHCP discovery requests in the VXLAN overlay structure and relaying them directly to the centralized gateway device, the problem of leaf VTEP devices being unable to relay DHCP requests is solved, broadcast traffic is reduced, and security is improved.

CN116420345BActive Publication Date: 2026-03-24CISCO TECHNOLOGY INC
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-10-01
Publication Date
2026-03-24

AI Technical Summary

Technical Problem

In traditional VXLAN coverage structures, leaf VTEP devices cannot directly relay DHCP requests, leading to increased broadcast traffic and security issues.

Method used

By intercepting DHCP discovery requests from host devices using VTEP devices, selecting a centralized gateway device as the destination, and encapsulating the request with a unicast VXLAN header before transmission, the request is directly relayed to the DHCP server, avoiding broadcasting.

Benefits of technology

It reduces broadcast traffic within EVPN coverage, improves network security, and ensures that information is transmitted directly to CGW devices and DHCP servers, avoiding broadcasts to all VTEPs and host devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116420345B_ABST
    Figure CN116420345B_ABST
Patent Text Reader

Abstract

The present technology implements dynamic host configuration protocol (DHCP) layer 2 relay in a virtual extensible local area network (VXLAN) overlay. A host device broadcasts a configuration request, such as a DHCP discover, on an Ethernet virtual private network (EVPN) overlay. The DHCP discover is intercepted by a VXLAN tunnel endpoint (VTEP) device having layer 2 bridging functionality. The VTEP device selects a centralized gateway (CGW) device having layer 3 relay functionality as a destination for the DHCP discover. The VTEP device encapsulates the DHCP discover with a unicast VXLAN header including a media access control (MAC) address of the CGW device and transmits the encapsulated DHCP discover to the CGW device resolving the destination address associated with the broadcast. The CGW device transmits the DHCP discover to an internet protocol (IP) address associated with a DHCP server external to the EVPN overlay.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to mechanisms for providing dynamic host configuration protocol (DHCP) layer 2 relay in a virtual extensible local area network (VXLAN) overlay fabric. BACKGROUND

[0002] In a traditional VXLAN overlay fabric with a centralized anycast gateway deployment, the fabric edge devices (or leaf devices) are VXLAN tunnel endpoint (VTEP) devices (leaf VTEPs) with layer 2 relay functionality. When a host device connects to the overlay fabric and sends a DHCP request, the leaf VTEP device cannot relay the DHCP request directly to an external DHCP server or a centralized gateway (CGW) device because the leaf VTEP device is a layer 2 device without a switch virtual interface (SVI) configuration.

[0003] Because the leaf VTEP device does not have a mechanism to directly relay the DHCP request, the DHCP request (e.g., DHCP discovery) is broadcast to all VTEP devices within the overlay fabric and to the host devices behind each VTEP device, resulting in a large amount of broadcast traffic. In addition to increasing network traffic, broadcasting the DHCP request to all VTEP devices and host devices within the overlay fabric, instead of directly relaying to an external server or CGW device, presents a security issue. BRIEF DESCRIPTION OF DRAWINGS

[0004] Figure 1 is a block diagram depicting a network system in accordance with certain examples.

[0005] Figure 2 is a block flow diagram depicting a method for implementing layer 2 relay in a virtual extensible local area network overlay fabric in accordance with certain examples.

[0006] Figure 3 is a block flow diagram depicting a method of selecting a centralized gateway device in accordance with certain examples.

[0007] Figure 4 is a block flow diagram depicting a method of transmitting an encapsulated unicast virtual extensible local area network dynamic host configuration protocol discovery to a centralized gateway device in accordance with certain examples.

[0008] Figure 5 is a block flow diagram depicting a method of transmitting a dynamic host configuration protocol offer to a host device in accordance with certain examples.

[0009] Figure 6 is a block flow diagram depicting a method of broadcasting a dynamic host configuration protocol request to a dynamic host configuration protocol server in accordance with certain examples.

[0010] Figure 7 is a block flow diagram depicting a method of transmitting a dynamic host configuration protocol acknowledgement to a host device according to certain examples.

[0011] Figure 8 is a block diagram depicting a computer machine and modules according to certain examples. DETAILED DESCRIPTION

[0012] OVERVIEW

[0013] Aspects of the application are set out in the independent claims, dependent claims set out preferred features. Features of one aspect can be applied to any aspect, alone or in combination with other aspects.

[0014] The present technology allows for dynamic host configuration protocol (DHCP) layer 2 relay in a virtual extensible local area network (VXLAN) overlay.

[0015] A host device broadcasts a configuration request, such as a DHCP discover, over an Ethernet virtual private network (EVPN) overlay. The DHCP discover is intercepted by a VXLAN tunnel endpoint (VTEP) device having layer 2 bridging functionality. The VTEP device selects a centralized gateway (CGW) device having layer 3 relay functionality as a destination for the DHCP discover. The VTEP device encapsulates the DHCP discover with a unicast VXLAN header including a media access control (MAC) address of the CGW device and transmits the encapsulated DHCP discover to the CGW device.

[0016] The CGW device receives the encapsulated DHCP discover from the VTEP device. The CGW device decapsulates the transmission to retrieve the DHCP discover. The CGW device transmits the DHCP discover to a preconfigured internet protocol (IP) address associated with a DHCP server. The DHCP server is external to the EVPN overlay.

[0017] The DHCP server receives the DHCP discover and transmits a DHCP offer including an IP address to the host device via the CGW device and the VTEP device. Because the host device can receive multiple DHCP offers, the host device broadcasts a DHCP request accepting the IP address of the offer to the DHCP server via the VTEP device and the CGW device. To complete the configuration process, the DHCP server transmits a DHCP acknowledgement to the host device via the CGW device and the VTEP device.

[0018] The present technology allows for DHCP layer 2 relay in VXLAN overlay. This technology allows intercepting VTEP devices to convert broadcast DHCP discovery into unicast requests and relay the DHCP discovery to a selected CGW device. Because the DHCP discovery is converted into unicast requests, the present technology reduces broadcast traffic across the EVPN overlay, eliminating flooding of VTEP and host devices in the EVPN overlay. This technology improves security because information associated with the host device is transmitted directly from the VTEP device to the CGW device and DHCP server, without the need to broadcast this information to all VTEP and host devices in the EVPN overlay.

[0019] These and other aspects, goals, features, and advantages of the technology disclosed herein will become readily apparent to those of ordinary skill in the art in view of the following detailed description of illustrative examples.

[0020] Example System Architecture

[0021] Turning now to the drawings, where like numbers designate like (but not necessarily identical) elements throughout the several views, detailed descriptions of examples of the present technology are presented.

[0022] Figure 1 is a block diagram depicting a network system 100 in accordance with certain examples. As Figure 1 depicted, the network system 100 includes an Ethernet Virtual Private Network (EVPN) overlay 110, centralized gateway (CGW) devices 120-1 through 120-n, Virtual Extensible Local Area Network (VXLAN) Tunnel End Point (VTEP) devices 130-1 through 130-n, host devices 140-1 through 140-n, and external services 150.

[0023] The network system 100 includes the EVPN overlay 110. The EVPN overlay 110 is a VXLAN fabric overlay. VXLAN is a Media Access Control (MAC) in User Datagram Protocol (UDP) (MAC-in-UDP) encapsulation technology with a 24-bit segment identifier (ID) in the form of a VXLAN ID. VXLAN provides a method to extend Layer 2 networks over Layer 3 infrastructure using MAC-in-UDP encapsulation and tunneling technology. EVPN is an extension of VXLAN fabric overlays that implements Border Gateway Protocol (BGP) within the overlay. BGP is an Internet Engineering Task Force (IETF) standard that is a routing protocol for the Internet and service provider private networks and routes multicast, Internet Protocol version 6 (IPv6), Virtual Private Networks (VPNs), and various other types of data.

[0024] The network system 100 includes one or more CGW devices 120-1 through 120-n. The CGW devices 120 are network nodes configured as relay agents that act as access points to other parts of the network system 100 or to devices and / or systems external to the network system 100. In an example, each CGW device 120 is a VTEP device to which network traffic between subnets is routed. In this example, each CGW device 120 has Layer 3 or routing functionality, such as asymmetric inter-subnet routing (IRB) functionality. The use of the CGW deployment model enables policies and firewalls to be enforced at the central distribution switch for cross-subnet traffic, east-west traffic, and north-south traffic.

[0025] The network system 100 includes one or more VTEP devices 130-1 through 130-n. The VTEP devices 130 are devices that originate or terminate VXLAN traffic. The VTEP devices are Layer 2 devices that have Layer 2 or have bridging overlay functionality. There are two main types of VTEP devices 130: 1) hardware VTEP devices that process VXLAN packets in hardware; and 2) software VTEP devices that process VXLAN packets in software. The VTEP devices 130 can be virtual bridges, VXLAN-aware virtual machine (VM) applications, VXLAN-capable switching hardware, routers, servers, hypervisors, or any other device suitable for originating or terminating VXLAN traffic.

[0026] The VTEP devices 130 are used by the EVPN overlay 110 to map end devices, such as host devices 140, to VXLAN segments, and to perform encapsulation and decapsulation of VXLANs. In an example, each VTEP device 130 has two interfaces: a switch interface that communicates with local end hosts supported by the bridge, and an IP interface to the transport IP network. The IP interface has a specific IP address that identifies each VTEP device 130 on the transport IP network. Each VTEP device 130 utilizes the IP address to encapsulate Ethernet frames and transmit the encapsulated packets to the transport network. Each VTEP device 130 can also discover remote VTEP devices for a particular VTEP VXLAN segment and learn a mapping of remote MAC addresses to VTEPs through the IP interface. In an example, the VTEP device 130-1 can discover the VTEP device 130-4 and learn a mapping of the MAC address of the VTEP device 130-4 to a VTEP.

[0027] The network system 100 includes one or more host devices 140-1 through 140-n. The host devices 140 are computers or other devices that are connected to the EVPN overlay 110 via wired or wireless telecommunication mechanisms. The host devices 140 can function as servers, providing information resources, services, and applications to other users or hosts in the EVPN overlay 110, or to users or hosts outside the EVPN overlay 110. Each host device 140 can communicate with the VTEP devices 130 via wired or wireless telecommunication mechanisms.

[0028] The network system 100 can communicate with an external service system 150. While the external service system 150 is represented in this architecture by one instance of the external service system 150, multiple instances can be used. The external service system 150 includes one or more of the following: a firewall 151, a DHCP server 152, and other network services not depicted (e.g., security services, storage services, and computing resource services).

[0029] The external service system 150 includes a firewall 151, which is a security platform that acts as a barrier or filter for traffic entering the external service system 150. The firewall 151 is used to block and mitigate detected threats to the external service system 150.

[0030] The external service system 150 also includes a Dynamic Host Configuration Protocol (DHCP) server 152. The DHCP server 152 includes one or more computing devices and assigns IP addresses, default gateways, and other network configuration parameters to network devices, such as the host devices 140. In an example, the DHCP server 152 assigns an IP address to the host device 140-1 upon receiving a DHCP discovery from the host device 140-1. The DHCP server 152 automatically sends the required network parameters to network devices to communicate correctly on a network.

[0031] Each network system 100 includes wired or wireless telecommunication mechanisms by which the network devices (including the EVPN overlay 110, the devices 120, the devices 130, and the devices 140, as well as the external service system 150) can communicate and exchange data. Each network system 100 can include, be implemented as, or be part of a wired or wireless communication network, a cloud computing environment, or any other appropriate architecture or system that facilitates the communication of signals, data, and / or messages, often referred to as data. For example, the network 100 can include one or more of the following: a local area network (LAN), a wide area network (WAN), an intranet, the Internet, a storage area network (SAN), a personal area network (PAN), a metropolitan area network (MAN), a wireless local area network (WLAN), a virtual private network (VPN), a cellular or other mobile communication network, Wireless connectivity, near field communication (NFC) connectivity, any combination thereof, and any other suitable architecture or system that facilitates the communication of signals, data, and / or messages. Throughout the discussion of the example embodiments, it should be understood that the terms “data” and “information” are used interchangeably herein to refer to text, images, audio, video, or any other form of information that may exist in a computer-based environment.

[0032] The network computing devices and any other computing machines associated with the technologies presented herein can be any type of computing machine, for example, but not limited to those described herein. Figure 8 The computing machines discussed in more detail herein. For example, each device may include a server, desktop computer, laptop computer, tablet computer, television set embedded with one or more processors and / or coupled thereto, smartphone, handheld computer, PDA, router, switch, hub, gateway, modem, access point, bridge, or any other wired or wireless processor-driven device. The computing machines discussed herein can communicate with each other and can also communicate with other computing machines or communication systems through one or more networks. Each network may include various types of data or communication networks, including those related to… Figure 8 Any network technologies discussed.

[0033] Furthermore, any module associated with any of these computing machines (e.g., the module described herein), or any other module (script, network content, software, firmware, or hardware) associated with the techniques proposed herein, can be related to... Figure 8 Any modules discussed in more detail.

[0034] The network connection shown is an example, and other modules can be used to establish a communication link between a computer and a device. Furthermore, those skilled in the art who benefit from this disclosure will understand that... Figure 1 The device shown can have any of several other suitable computer system configurations.

[0035] Example process

[0036] Figures 2 to 7 The method shown is described below with respect to the components of network system 100. Figures 2 to 7 This method can also be executed on other systems and in other environments. Regarding... Figures 2 to 7The described operations can be implemented as executable code stored on a computer or machine readable non-transitory tangible storage medium (e.g., floppy disks, hard disks, ROMs, EEPROMs, nonvolatile RAMs, CD-ROMs, etc.) that is executed by a processor circuit using one or more integrated circuits; the operations described herein can also be implemented as executable logic encoded on one or more non-transitory tangible media for execution (e.g., programmable logic arrays or devices, field programmable gate arrays, programmable array logic, application specific integrated circuits, etc.).

[0037] Figure 2 is a block flow diagram depicting a method 200 of implementing layer 2 relay in a virtual extensible local area network (VXLAN) overlay, according to certain examples.

[0038] In block 210, the host device 140 broadcasts a dynamic host configuration protocol (DHCP) discover. The DHCP discover is the first step in a configuration process that provides configuration parameters such as an IP address to the host device 140. In examples, the host device 140 can be any of the host devices 140-1 through 140-n. The DHCP discover is a broadcast request for an internet protocol (IP) address or other configuration parameters provided by a DHCP server. In examples, the DHCP server is the DHCP server 152. In examples, the host device 140 uses the following addresses in the DHCP discover: source = transmitter's MAC; destination = FF:FF:FF:FF:FF:FF; IP: source = 0.0.0.0; destination = 255.255.255.255.

[0039] In block 220, a virtual extensible local area network (VXLAN) tunnel end point (VTEP) device 130 intercepts the broadcast DHCP discover. In examples, the VTEP device 130 can be any of the VTEP devices 130-1 through 130-n.

[0040] In block 230, the VTEP device 130 selects a centralized gateway (CGW) device 120. Block 230 is described in more detail herein with reference to the method 230 of Figure 3 .

[0041] Figure 3 is a block flow diagram depicting a method 230 of selecting a centralized gateway device, according to certain examples.

[0042] In block 310, the VTEP device 130 discovers the CGW device 120 using Border Gateway Protocol (BGP) Ethernet Virtual Private Network (EVPN). BGP EVPN is a control protocol for VXLAN. BGP EVPN utilizes a control plane for learning for end hosts behind remote VTEPs. BGP EVPN provides separation of control and data planes and provides a unified control plane for Layer 2 and Layer 3 forwarding in overlay networks, such as the EVPN overlay 110. The VTEP device 130 accesses remote Media Access Control (MAC) addresses, including the MAC address of the CGW device 120, via BGP using control plane learning / distribution.

[0043] In block 320, the VTEP device 130 determines the amount of DHCP discovery traffic transmitted to each centralized gateway device 120. In an example, each VTEP device 130 can record each DHCP discovery packet transmitted to each CGW device 120 to determine the amount of DHCP discovery traffic to each CGW device 120.

[0044] In block 330, the VTEP device 130 selects a centralized gateway device 120. In an example, the VTEP device 130 uses a hashing mechanism to load balance the amount of DHCP discovery traffic to each CGW device 120 as determined in block 320. The VTEP device 130 selects a particular CGW device 120, such as the CGW device 120-1, that has the least amount of DHCP discovery traffic. In an alternative example, the VTEP device 130 selects a particular CGW device 120 based on the time that a DHCP discovery packet is received to distribute network traffic among the CGW devices 120 based on the time of day. In an alternative example, the VTEP device 130 selects the CGW devices 120 in a sequence to distribute network traffic among the CGW devices 120. Any other suitable method can be used to select the CGW devices 120.

[0045] The method 230 returns from block 330 to block 240 of the method 200. Figure 2

[0046] In block 240, the VTEP device 130 transmits the encapsulated unicast VXLAN DHCP discovery to the centralized gateway device 120. Block 240 is described in more detail herein with reference to the method 240 of Figure 4

[0047] Figure 4 is a block flow diagram depicting a method 240 of transmitting an encapsulated unicast VXLAN DHCP discovery to a centralized gateway device 120 according to certain examples.

[0048] ​​In block 410, the VTEP device 130 changes the Destination MAC (DMAC) to correspond to the centralized gateway device 120. Referring back to block 210, the DMAC address from the DHCP discover packet is: Destination = FF:FF:FF:FF:FF:FF. This DMAC is a broadcast MAC address that will transmit the DHCP discover to all VTEP devices 130 and host devices 140 within the EVPN overlay 110. The VTEP device 130 changes the DMAC address (Destination = FF:FF:FF:FF:FF:FF) to the MAC address of the CGW device 120 selected in method 230. Figure 2 Figure 3

[0049] In block 420, the VTEP device 130 encapsulates the DHCP discover with a unicast VXLAN header. Encapsulating is the process of placing a header and sometimes a trailer around data. In an example, the data is the DHCP discover. The unicast VXLAN header includes an outer MAC header, where the outer MAC header is the MAC associated with the CGW device 120.

[0050] In block 430, the VTEP device 130 transmits the encapsulated broadcast DHCP discover to the centralized gateway device 120. The VTEP device 130 transmits the encapsulated broadcast DHCP discover to the CGW device 120 with the MAC address associated with the CGW device 120.

[0051] Method 240 returns from block 430 to block 250 of method 200. Figure 2 In block 250, the centralized gateway device 120 transmits the DHCP discover to the DHCP server 152. The CGW device 120 decapsulates the DHCP discover to retrieve the broadcast DHCP discover. In an example, the CGW device 120 is configured to transmit the DHCP discover to a DHCP server, such as the DHCP server 152. In an example, the CGW 120 is configured using the "ip dhcp relay server" command. In this example, the CGW 120 is configured as follows: host1 / administrator(config)# ip dhcp relay enable; host1 / administrator(config)# ip dhcp relay server 192.168.20.1, where the IP address 192.168.20.1 corresponds to the IP address of the DHCP server 152. The CGW device 120 can be configured in any suitable method to transmit the DHCP discover to the DHCP server 152.

[0052] In block 260, the DHCP server 152 transmits a DHCP offer to the host device 140. Block 260 is described in more detail with reference to method 260 of Figure 5 In block 260, the DHCP server 152 transmits a DHCP offer to the host device 140. Block 260 is described in more detail with reference to method 260 of​​

[0053] Figure 5 is a block flow diagram depicting a method 260 of transmitting a DHCP offer to a host device 140 according to certain examples.

[0054] In block 510, the DHCP server 152 transmits a unicast DHCP offer to the centralized gateway device 120. In response to receiving the DHCP discovery described with reference to Figure 2 block 250, the DHCP server 152 generates a DHCP offer message. The DHCP offer message is an offer to provide an IP address to the host device 140 that broadcast the DHCP discovery. The DHCP offer message includes the MAC address of the host device 140, an IP address offered by the DHCP server 152, and other information including, but not limited to, a subnet mask, a lease period associated with the offered IP address, and an IP address of the DHCP server 152. In an example, the DHCP server 152 utilizes the following addresses in the DHCP offer: source = sender's MAC; destination = client's MAC address; IP: source = 192.168.20.1; destination = 255.255.255.255; YIADDR (your IP address) 0xC0A80164 (192.168.1.100); SIADDR (server IP address) 0xC0A80101 (192.168.20.1). In this example, YIADDR (192.168.1.100) is the IP address offered to the host device 140. The DHCP server 152 transmits the unicast DHCP offer to the IP address associated with the CGW device 120.

[0055] In block 520, the centralized gateway device 120 encapsulates the DHCP offer with a unicast VXLAN header. The DHCP offer is encapsulated with a unicast VXLAN header that includes an outer MAC header that is the MAC associated with the VTEP device 130.

[0056] In block 530, the centralized gateway device 120 transmits the encapsulated DHCP offer to the VTEP device 130. The CGW device 120 transmits the encapsulated DHCP offer to the VTEP device 130 with the MAC address associated with the VTEP device 130.

[0057] In block 540, the VTEP device 130 transmits the unicast DHCP offer to the host device 140. The VTEP device 130 decapsulates the DHCP offer received from the CGW device 120. The VTEP device 130 transmits the unicast DHCP offer to the MAC address associated with the host device 140 within the DHCP offer. From block 510, the MAC address of the host device 140 is transmitted with the DHCP offer as "Destination = Client MAC Address."

[0058] The method 260 returns from block 540 to Figure 2 block 270 of the method 270. In block 270, the host device 140 broadcasts a DHCP request to the DHCP server 152. This is described in more detail with reference to the method 270 of Figure 6 the method 270 of

[0059] Figure 6 is a block flow diagram of a method 270 of broadcasting a DHCP request to the DHCP server 152 according to certain examples.

[0060] In block 610, the host device 140 broadcasts a DHCP request. In response to receiving the DHCP offer in Figure 5 block 540, the host device 140 broadcasts a DHCP request message to the DHCP server 152 requesting the address of the offer. In examples, the host device 140 can receive multiple DHCP offers from DHCP servers other than the DHCP server 152. The host device 140 can accept only one DHCP offer. In a continuing example, the host device 140 accepts the DHCP offer from the DHCP server 152. In this example, the host device 140 utilizes the following addresses in the DHCP request: Source = Sender's MAC; Destination = FF:FF:FF:FF:FF:FF; IP: Source = 0.0.0.0; Destination = 255.255.255.255, as previously described with reference to block 210 of Figure 2 the method 270. The DHCP request also includes the following information: CIADDR (Client IP Address) 0xC0A80164 (192.168.1.100); SIADDR (Server IP Address) 0xC0A80101 (192.168.20.1). Continuing the example from block 510 of Figure 5 the method 270, the IP address 192.168.1.100 is the address provided to the host device 140 from the DHCP server 152.

[0061] In block 620, the VTEP device 130 intercepts the DHCP request.

[0062] In block 630, the VTEP device 130 transmits the encapsulated unicast VXLAN DHCP request to the centralized gateway device 120. The VTEP device 130 encapsulates the DHCP request with a unicast VXLAN header. The unicast VXLAN header includes an outer MAC header, where the outer MAC header is a MAC associated with the CGW device 120. In an example, the VTEP device 130 transmits the encapsulated unicast VXLAN DHCP request to the same CGW device 120 selected in block 330 of the method 270. Figure 3 In an alternative example, the method 270 returns to the method 230 of Figure 3 and the steps of the method 230 are repeated to select an alternative CGW device 120.

[0063] In block 640, the centralized gateway device 120 transmits the DHCP request to the DHCP server 152. The CGW 120 decapsulates the VXLAN encapsulated DHCP discovery to retrieve the broadcast DHCP request. As described in more detail previously with reference to block 250 of the method 270, the CGW device 120 is configured to transmit the DHCP request. Figure 2

[0064] The method 270 returns from block 640 to block 280 of the method 270. In block 280, the DHCP server 152 transmits a DHCP acknowledgement (DHCPacknowledgement) to the host device 140. Block 280 is described in more detail here with reference to the method 280 of Figure 2 Figure 7

[0065] In block 710, the DHCP server 152 transmits the unicast DHCP acknowledgement to the centralized gateway device 120. In response to receiving the DHCP request described with reference to the method 270, the DHCP server 152 generates a DHCP acknowledgement message. The DHCP acknowledgement is the final stage of the configuration process to provide the host device 140 with an IP address. In an example, the DHCP acknowledgement includes a lease period associated with the offered IP address and any other configuration information that the host device 140 can have requested. Figure 6

[0066] In block 720, the centralized gateway device 120 encapsulates the DHCP acknowledgement with a unicast VXLAN header. The DHCP acknowledgement is encapsulated with a unicast VXLAN header that includes an outer MAC header, where the outer MAC header is a MAC associated with the VTEP device 130.

[0067] ​​​​In block 730, the centralized gateway device 120 transmits the encapsulated DHCP acknowledgement to the VTEP device 130. The CGW device 120 transmits the encapsulated DHCP acknowledgement to the VTEP device 130 with the MAC address associated with the VTEP device 130.

[0068] In block 740, the VTEP device 130 transmits the unicast DHCP acknowledgement to the host device 140. The VTEP device 130 decapsulates the DHCP acknowledgement received from the CGW device 120. The VTEP device 130 transmits the unicast DHCP offer to the MAC address within the DHCP acknowledgement associated with the host device 140.

[0069] After the method 280 is complete, the methods described herein end until a new DHCP discovery is broadcast from the host device 140.

[0070] Other Examples

[0071] Figure 8 A computer machine 2000 and modules 2050 are depicted in accordance with certain examples. The computer machine 2000 can correspond to any of the various computers, servers, mobile devices, embedded systems, or computing systems presented herein. The modules 2050 can include one or more hardware or software elements configured to facilitate the computer machine 2000 to perform the various methods and processing functions presented herein. The computer machine 2000 can include various internal or attached components, for example, a processor 2010, a system bus 2020, a system memory 2030, a storage media 2040, an input / output interface 2060, and a network interface 2070 for communicating with a network 2080.

[0072] The computer machine 2000 can be implemented as a conventional computer system, an embedded controller, a laptop, a server, a mobile device, a smartphone, a set-top box, a kiosk, a router or other network node, an in-vehicle information system, one or more processors associated with a television, a custom machine, any other hardware platform, or any combination or number of these. The computer machine 2000 can be a distributed system configured to function using multiple computer machines interconnected via a data network or bus system.

[0073] The processor 2010 can be configured to execute code or instructions to perform the operations and functionality described herein, manage request flow and address mappings, and to perform calculations and generate commands. The processor 2010 can be configured to monitor and control the operation of the components of the computing machine 2000. The processor 2010 can be a general purpose processor, a processor core, a multiprocessor, a reconfigurable processor, a microcontroller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a graphics processing unit (GPU), a field programmable gate array (FPGA), a programmable logic device (PLD), a controller, a state machine, gated logic, discrete hardware components, any other processing unit, or any combination or multiplicity thereof. The processor 2010 can be a single processing unit, multiple processing units, a single processing core, multiple processing cores, specialized processing cores, co-processors or any combination thereof. The processor 2010, along with the other components of the computing machine 2000, can be a virtualized computing machine executing within one or more other computing machines.

[0074] The system memory 2030 can include non-volatile memory, such as read only memory (ROM), programmable read only memory (PROM), erasable programmable read only memory (EPROM), flash memory, or any other device capable of storing program instructions or data in a non-volatile memory. The system memory 2030 can also include volatile memory, such as random access memory (RAM), static random access memory (SRAM), dynamic random access memory (DRAM), and synchronous dynamic random access memory (SDRAM). Other types of RAM can also be used to implement the system memory 2030. The system memory 2030 can be implemented using a single memory module or multiple memory modules. While the system memory 2030 is depicted as being part of the computing machine 2000, those skilled in the art will recognize that the system memory 2030 can be separate from the computing machine 2000 without departing from the scope of the subject technology. It should also be appreciated that the system memory 2030 can include or operate in conjunction with a non-volatile storage device, such as the storage media 2040.

[0075] The storage media 2040 can include a hard disk, a floppy disk, a Compact Disc Read Only Memory (CD-ROM), a Digital Versatile Disc (DVD), a Blu-ray disc, a magnetic tape, a flash memory, other non-volatile storage device, a Solid State Drive (SSD), any magnetic storage device, any optical storage device, any electrical storage device, any semiconductor storage device, any physical-based storage device, any other data storage device, or any combination or multiplicity thereof. The storage media 2040 can store one or more operating systems, application programs and program modules (e.g., the modules 2050), data, or any other information. The storage media 2040 can be part of, or connected to, the computing machine 2000. The storage media 2040 can also be part of one or more other computing machines that are in communication with the computing machine 2000, such as servers, database servers, cloud storage, network attached storage, and so on.

[0076] The modules 2050 can include one or more hardware or software elements configured to facilitate the computing machine 2000 to perform various methods and processing functions presented herein. The modules 2050 can include one or more instruction sequences stored as software or firmware in association with the system memory 2030, the storage media 2040, or both. Accordingly, the storage media 2040 can represent a machine or computer- readable medium on which instructions or code can be stored for execution by the processor(s) 2010. A machine or computer- readable medium can generally refer to any medium or means that can be accessed by a computer, processor, or the like, to provide instructions to the processor(s) 2010. Such a machine or computer-readable medium can include a computer software product that comprises a computer software program or other computer instructions. It will be appreciated that a computer software product, including the modules 2050, can also employ one or more processes or methods for delivering the modules 2050 to the computing machine 2000 via the network 2080, any signal-bearing medium, or any other communication or delivery technology. The modules 2050 can also include hardware circuits or information for configuring hardware circuits such as microcode or configuration information for FPGAs or other PLDs.

[0077] The input / output (I / O) interface 2060 can be configured to couple the computer machine 2000, or processor 2010, to one or more external devices, to receive data from the one or more external devices, and to send data to the one or more external devices. Such external devices can also be known as peripheral devices. The I / O interface 2060 can include both electrical and physical connections for operably coupling the various peripheral devices to the computer machine 2000 or processor 2010. The I / O interface 2060 can be configured to communicate data, addresses, and control signals between the peripheral devices, the computer machine 2000, or processor 2010. The I / O interface 2060 can be configured to implement any standard interface, such as a small computer system interface (SCSI), serial-attached SCSI (SAS), Fibre Channel, peripheral component interconnect (PCI), peripheral component interconnect express (PCIe), serial bus, parallel bus, advanced technology attached (ATA), serial ATA (SATA), universal serial bus (USB), Thunderbolt, FireWire, various video buses, etc. The I / O interface 2060 can be configured to implement only one interface or bus technology. Alternatively, the I / O interface 2060 can be configured to implement multiple interface or bus technologies. The I / O interface 2060 can be configured as part of, all of, or to operate in conjunction with the system bus 2020. The I / O interface 2060 can include one or more buffers for buffering transmissions between the one or more external devices, the various internal devices, the computer machine 2000, or the processor 2010.

[0078] The I / O interface 2060 can couple the computer machine 2000 to various input devices including mice, touch screens, scanners, electronic digitizers, sensors, receivers, touchpads, trackballs, cameras, microphones, keyboards, any other pointing devices, or any combinations thereof. The I / O interface 2060 can couple the computer machine 2000 to various output devices including video displays, speakers, printers, projectors, tactile feedback devices, automation control, robotic components, actuators, motors, fans, solenoids, valves, pumps, transmitters, signal emitters, lights, and so forth.

[0079] The computer machine 2000 can operate in a networked environment using logical connections to one or more other systems or computer machines across a network 2080. The network 2080 can include a WAN, LAN, intranet, Internet, wireless access network, wired network, mobile network, telephone network, optical network, or combinations thereof. The network 2080 can be packet-switched, circuit-switched, of any topology, and can use any communication protocol. Communication links within the network 2080 can involve various digital or analog communication media, such as fiber optic cables, free-space optics, waveguides, electrical conductors, wireless links, antennas, radio-frequency communications, and so forth.

[0080] The processor 2010 can be connected to the other elements of the computing machine 2000 or various peripheral devices discussed herein through a system bus 2020. It is appreciated that the system bus 2020 can be internal to the processor 2010, external to the processor 2010, or both. Any of the processor 2010, other elements of the computing machine 2000, or various peripheral devices discussed herein can be integrated into a single device, such as a system on a chip (SOC), system in a package (SIP), or ASIC device.

[0081] Examples can include computer program that embodies the functions described and illustrated herein, wherein the computer program is implemented in a computer system that includes instructions stored in a machine-readable medium and a processor that executes the instructions. However, it is understood that there are many different ways to implement the examples described herein, and that the examples should not be limited to any particular computer program language or computer program. Furthermore, a skilled programmer can readily write such computer programs based on the attached flow charts and accompanying descriptions of the examples as per the disclosed examples. Therefore, the disclosed examples are not limited to the specific, set of computer program instructions illustrated in the flow charts. Additionally, it is understood that the functions imparted in the examples described herein can be executed in either hardware, software, or a combination of both, as can be embodied in one or more computing systems. Furthermore, any references to a computer executing an action should not be construed as a reference to a single computer because the action can be performed in distributed fashion on a plurality of computers.

[0082] The examples described herein can be used with computer hardware and software that perform the methods and processing functions described herein. The systems, methods, and procedures described herein can be embodied in a programmable computer, computer-executable software, or digital circuitry. The software can be stored on computer-readable media. Computer-readable media can include a floppy disk, a RAM, a ROM, a hard disk, a removable media, a flash memory, a memory stick, an optical media, a magneto-optical media, a CD-ROM, and so forth. Digital circuitry can include integrated circuits, gate arrays, building block logic, field programmable gate arrays (FPGA), and the like.

[0083] In summary, the present technology implements dynamic host configuration protocol (DHCP) layer 2 relay in a virtual extensible local area network (VXLAN) overlay. A host device broadcasts a configuration request, such as a DHCP discover, on an Ethernet virtual private network (EVPN) overlay. The DHCP discover is intercepted by a VXLAN tunnel endpoint (VTEP) device having layer 2 bridging functionality. The VTEP device selects a centralized gateway (CGW) device having layer 3 relay functionality as a destination for the DHCP discover. The VTEP device encapsulates the DHCP discover with a unicast VXLAN header that includes a media access control (MAC) address of the CGW device, and transmits the encapsulated DHCP discover to the CGW device, resolving the destination address associated with the broadcast. The CGW device transmits the DHCP discover to an internet protocol (IP) address associated with a DHCP server external to the EVPN overlay.

[0084] The systems, methods, and acts described in the examples presented previously are illustrative and can be altered in a variety of ways. Certain acts can be performed in a different order, parallel, omitted, and / or combined, and / or certain additional acts can be performed, without departing from the scope and spirit of the various examples. Thus, this application is not intended to be limited to the examples described herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein including modifications and equivalent structures and acts. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and acts.

[0085] While specific examples have been described above, the description is merely intended to illustrate and not to limit the scope of the examples. Thus, it will be understood that many of the aspects described above are not intended to be essential elements. Modifications to examples disclosed herein, which become apparent to persons of ordinary skill in the art upon reading the foregoing description, are intended to be within the scope of the examples defined by the appended claims, which are to be construed in the broadest sense allowed by law, to encompass all equivalent structures and acts.

Claims

1. A method performed at least in part by a Layer 2 computing device of a network system having Layer 2 relay functionality, comprising: Receive Dynamic Host Configuration Protocol (DHCP) discovery packets from the host computing device in the network system; A third-layer computing device is selected from other computing devices located within the network system as the destination of the DHCP discovery packet. The selection is based at least in part on the fact that the third-layer computing device has a third-layer relay function as the destination of the DHCP discovery packet, wherein the third-layer computing device communicates with the DHCP server. The DHCP discovery packet is transmitted to the Layer 3 computing device; Receive from the third-layer computing device a DHCP offer including an IP address to be used by the host computing device; and The DHCP offer is sent to the host computing device. The transmission of the DHCP discovery packet includes: Replace the destination address associated with the DHCP discovery packet with the address of the third-layer computing device; The DHCP discovery packet is encapsulated using a unicast Virtual Extensible Local Area Network (VXLAN) header to generate an encapsulated packet, wherein the VXLAN header includes an external MAC header address corresponding to the Layer 3 computing device; and The encapsulated packets are transmitted to the third-layer computing device.

2. The method according to claim 1, further comprising: The following operations are performed by the third-layer computing device: Receive the DHCP discovery packet from the second-layer computing device; The packet is transmitted to the DHCP server outside the network system; as well as Receive the DHCP offer associated with the packet from the DHCP server outside the network system.

3. The method according to claim 1 or 2, wherein, Selecting the third-layer computing device includes: Determine the corresponding amount of network traffic to each of the other computing devices; and Select the third-layer computing device with the lowest possible network traffic.

4. The method according to claim 1 or 2, wherein, The other computing devices are Layer 3 devices with Layer 3 relay functionality.

5. The method according to claim 1 or 2, wherein, The DHCP discovery packet also includes a request for one or more configuration parameters.

6. The method according to claim 1, wherein, The second-layer computing device is the Virtual Scalable Local Area Network (VXLAN) Tunnel Endpoint (VTEP) device.

7. The method according to claim 6, further comprising: The VTEP device avoids transmitting the DHCP discovery packet to other VTEP devices in the network system.

8. The method according to claim 1, wherein, The DHCP discovery packet is broadcast over the Ethernet Virtual Private Network (EVPN) overlay of the network system.

9. The method according to claim 1, further comprising: Modify the existing destination Media Access Control MAC address of the DHCP discovery packet to a new destination MAC address associated with the Layer 3 computing device.

10. A computing device located in a network system, comprising: One or more processors; as well as A non-transitory computer-readable medium having contained computer-readable program instructions thereon, which, when executed by the one or more processors, cause the computing device to: Receive Dynamic Host Configuration Protocol (DHCP) discovery packets from the host computing device in the network system; A third-layer computing device is selected from other computing devices located within the network system as the destination of the DHCP discovery packet. The selection is based at least in part on the fact that the third-layer computing device has a third-layer relay function as the destination of the DHCP discovery packet, wherein the third-layer computing device communicates with the DHCP server. The DHCP discovery packet is transmitted to the Layer 3 computing device; Receive from the third-layer computing device a DHCP offer including an IP address to be used by the host computing device; and The DHCP offer is sent to the host computing device. The transmission of the DHCP discovery packet includes: Replace the destination address associated with the DHCP discovery packet with the address of the third-layer computing device; The DHCP discovery packet is encapsulated using a unicast Virtual Extensible Local Area Network (VXLAN) header to generate an encapsulated packet, wherein the VXLAN header includes an external MAC header address corresponding to the Layer 3 computing device; and The encapsulated packets are transmitted to the third-layer computing device.

11. The computing device according to claim 10, wherein, Selecting the third-layer computing device includes: Determine the corresponding amount of network traffic to each of the other computing devices; and Select the third-layer computing device with the lowest possible network traffic.

12. The computing device according to claim 10, wherein, The DHCP discovery packet is broadcast over the Ethernet Virtual Private Network (EVPN) overlay of the network system.

13. A computing system, comprising: Storage devices; as well as A processor, communicatively coupled to the storage device, wherein the processor executes application code instructions stored in the storage device to enable the computing system to: Receive Dynamic Host Configuration Protocol (DHCP) discovery packets from host computing devices in the network system; A third-layer computing device is selected from other computing devices located within the network system as the destination of the DHCP discovery packet. The selection is based at least in part on the fact that the third-layer computing device has a third-layer relay function as the destination of the DHCP discovery packet, wherein the third-layer computing device communicates with the DHCP server. The DHCP discovery packet is transmitted to the Layer 3 computing device; Receive from the third-layer computing device a DHCP offer including an IP address to be used by the host computing device; and The DHCP offer is sent to the host computing device. The transmission of the DHCP discovery packet includes: Replace the destination address associated with the DHCP discovery packet with the address of the third-layer computing device; The DHCP discovery packet is encapsulated using a unicast Virtual Extensible Local Area Network (VXLAN) header to generate an encapsulated packet, wherein the VXLAN header includes an external MAC header address corresponding to the Layer 3 computing device; and The encapsulated packets are transmitted to the third-layer computing device.

14. The computing system according to claim 13, wherein, Selecting the third-layer computing device includes: Determine the corresponding amount of network traffic to each of the other computing devices; and Select the third-layer computing device with the lowest possible network traffic.

15. A computer program product or computer-readable medium comprising instructions that, when executed by a computer, cause the computer to perform the steps of the method according to any one of claims 1 to 9.

Citation Information

Patent Citations

  • Method and router for avoiding attack of ARP (address resolution protocol) report

    CN102420748A

  • Data center ethernet switch fabric

    US20150172222A1

  • Implementing logical DHCP servers in logical networks

    US20170317969A1