The present disclosure relates generally to communication networks, and more particularly, to IP (Internet Protocol) address allocation.
In conventional IP networks, an end host IP address is used as a host identifier and a location identifier. This has simplified routing but has made mobility and multihoming more complicated. For example, when a host opens a TCP (Transmission Control Protocol) connection, the host identifies the remote end of the connection by the remote IP address and port. If the remote host changes its IP address mid-way (e.g., as a result of a virtual machine move across subnets or a roaming mobile device), the TCP connection will not survive since the transport layer identifier at the remote end of the connection is no longer the same.
Corresponding reference characters indicate corresponding parts throughout the several views of the drawings.
Overview
In one embodiment, a method generally comprises receiving at a network device operating as a relay agent, a Dynamic Host Configuration Protocol (DHCP) request from an end host, inserting a group identifier into the DHCP request and forwarding the DHCP request to a DHCP server, the end host associated with a group identified by the group identifier, receiving a response from the DHCP server, and forwarding the response to the end host. The response comprises configuration information for the end host, at least some of the configuration information selected based on the group identifier.
In another embodiment, an apparatus generally comprises a relay agent for receiving a Dynamic Host Configuration Protocol (DHCP) request from an end host associated with a group identified by a group identifier, inserting the group identifier into the DHCP request, forwarding the DHCP request to a DHCP server, receiving a response from the DHCP server, and forwarding the response to the end host. The apparatus further comprises memory for storing the group identifier. The response comprises configuration information for the end host, at least some of the configuration information selected based on the group identifier.
Example Embodiments
The following description is presented to enable one of ordinary skill in the art to make and use the embodiments. Descriptions of specific embodiments and applications are provided only as examples, and various modifications will be readily apparent to those skilled in the art. The general principles described herein may be applied to other applications without departing from the scope of the embodiments. Thus, the embodiments are not to be limited to those shown, but are to be accorded the widest scope consistent with the principles and features described herein. For purpose of clarity, details relating to technical material that is known in the technical fields related to the embodiments have not been described in detail.
In networks, such as data centers, VDI (virtual desktop infrastructure) deployments, cloud infrastructures, and mobile networks, end client mobility is an important and desired property. One of the enabling technologies for achieving mobility is the use of disjoint route locators and end host identifiers (e.g., as proposed in HIP (Host Identity Protocol) and LISP (Locator Identifier Separation Protocol)). HIP uses IP addresses purely as route locators and proposes using 128-bit ORCHIDs (Overlay Routable Cryptographic Hash Identifiers) as end host identifiers. LISP uses end host IP addresses purely as host identifiers.
When an end client moves across subnets (e.g., virtual machine moves from one host to another host in a different subnet), even though LISP takes care of routing to the new location, problems arise when the host needs to renew its IP address. This may be as a result of an impending lease expiry, for example. In conventional networks, a DHCP (Dynamic Host Configuration Protocol) server will automatically assign a new address from the range assigned to the new subnet if there is no subnet specified in the request. This jeopardizes existing TCP (Transmission Control Protocol) connections since the end host IP address is no longer the same. In order for the end host to obtain an IP address from a subnet that is different from the relay agent's subnet, the end host needs to specify a subnet in the request. In conventional networks, there is no efficient mechanism to dynamically provision IP addresses from a single pool or configure other policy parameters for a group of end hosts that need to be uniformly administered and managed irrespective of their actual geographical locations. It is desired to keep mobile devices and virtual machines in the same subnet regardless of their mobility or the underlying physical hosts (for virtual machines).
The embodiments described herein simplify IP address allocation and management in environments that use layer 3 mobility and rely on DHCP for IP assignment. The embodiments may be implemented, for example, in settings wherein DHCP is used to auto configure IP addresses for end hosts. The DHCP servers become mobility aware while the end hosts are essentially mobility unaware. The embodiments provide a simplified configuration at the DHCP server and prevent IP address flapping when clients move across subnets, therefore helping existing TCP sessions. The end hosts can retain their IP addresses and request the same address even after moving to different physical hosts across subnets. The DHCP server may also allocate other policy parameters uniformly to all clients belonging to the same group. There is no change required to the end host stack.
The embodiments described herein operate in the context of a data communication system including multiple network elements (nodes). Referring now to the drawings, and first to
When the end host 12 connects to the network 16, it sends a broadcast query (DHCP request 18) requesting necessary information from the DHCP server 14. As described in detail below, when the relay agent 10 receives the DHCP request 18, it inserts a group identifier assigned to the end host 12. The group identifier identifies the end host 12 as being part of a group. The group may be, for example, a group of end hosts associated with a common set of policies or an organization, or a type of end host. The group may include, for example, LISP clients. The DHCP server 14 assigns policies and IP addresses based on the group identifier.
As shown in
In one embodiment, the above functionality is introduced through a virtual switch 24 that resides in the physical host hosting a virtual machine (end host) 13 (
As shown in
The VSM 28 is configured to provide control plane functionality for the virtual machines 13. The virtual switch 24 provides switching capability at the server 25 and operates as a data plane associated with the control plane of the VSM 28. The VSM 28 and virtual switch (VEM) 24 operate together to form a distributed virtual switch as viewed by the management station 29. It is to be understood that the distributed virtual switch shown in
In the example shown in
The virtual machines 13 are in communication with the virtual switch 24 via virtual network interface cards (VNICs) which connect to a virtual Ethernet interface at the virtual switch. The server 25 includes an Ethernet port for each physical network interface card. The Ethernet ports may be aggregated at a port channel. The virtual switches 24 are in communication with the network via the physical Ethernet interfaces. The virtual switch 24 switches traffic between the virtual machines and the physical network interface cards.
The group identifier may be configured by a network administrator as part of a port profile configuration that is applied when the end host joins the network (e.g., virtual machine instantiated on a physical host). The port profile is a container used to define a common set of configuration policies (attributes) for multiple interfaces. The port profiles are associated with port configuration policies defined by the network administrator and applied automatically to a large number of ports as they come online in a virtual environment. The network administrator may, for example, assign a port profile, which has a group tag configured on it, to a virtual Ethernet port connected to the virtual machine 13. A port profile name may also be used as a group tag.
The mobile device 37 moves between a set of network devices 35 configured to identify the mobile device as belonging to a particular group. The network device 35 may identify the mobile device 37 as belonging to a particular group based on information exchanged between the mobile device and network device when the mobile device connects to the network device, or by virtue of how and where the mobile device connects to the network. For example, the group may be identified based on a MAC (media access control) address of the mobile device 37, through IEEE 802.1X (port based network access control), SSID (service set identifier) (e.g., which local area network the device connects), or other means.
It is to be understood that the networks shown in
An example of a network device 40 that may be used to implement embodiments described herein is shown in
Logic may be encoded in one or more tangible computer readable media for execution by the processor 42. For example, the processor 42 may execute codes stored in a computer readable medium such as memory 44. The computer readable medium may be, for example, electronic (e.g., RAM (random access memory), ROM (read-only memory), EPROM (erasable programmable read-only memory)), magnetic, optical (e.g., CD, DVD), electromagnetic, semiconductor technology, or any other suitable medium.
The network interface 46 may comprise one or more interfaces (linecards, ports) for receiving data or transmitting data to other devices. The interface 46 may include, for example, an Ethernet interface for connection to a computer or network.
It is to be understood that the network device shown in
If the DHCP server is not configured to recognize the group identifier, it will ignore this information and will not echo it back to the relay agent 10. In this case, the DHCP server may assign an IP address from a subnet corresponding to the relay agent's IP address, for example.
It is to be understood that the process illustrated in
The DHCP request packet 20 comprises a number of fields, including, for example, Op (specifies generally type of message (e.g., request, reply)), Htype (hardware type), Hlen (hardware address length), Hops (used by relay agent to control forwarding), XID (transaction identifier), Secs (time elapsed), Flags, Addresses (client address, your address, server address, gateway address (GIADDR) (contains relay agent address)), client hardware address, and options. One or more of the options may be used to identify the vendor and functionality of the DHCP client. In one embodiment, the options include a relay agent information option that contains any number of sub-options used to convey information known by the relay agent, including the group identifier. The sub-option may be, for example, a sub-option of the relay agent information option 82, as described in IETF (Internet Engineering Task Force) RFC (Request for Comments) 3046 (“DHCP Relay Agent Information Option”, M. Patrick, January 2001).
The sub-options may include, for example, a circuit ID which identifies the circuit connecting the end host to the relay agent, and a remote ID, which identifies the relay agent. These two sub-options help to identify individual end hosts, but do not identify a group that the client belongs. Another sub-option is used to identify the group to which the end host 12 belongs. In addition to using the group identifier in address assignment, the DHCP server may also use the group identifier in assigning other server options, class options, etc. The group identifier simplifies configuration of DHCP servers by providing uniform policies and provisioning uniform pools of IP addresses for each of these groups of end nodes. The group identifier may also be interpreted differently by different DHCP servers, if required. These benefits are not provided by the first two sub-options.
Although the method and apparatus have been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations made without departing from the scope of the embodiments. Accordingly, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.