The present invention relates generally to network communication and, more specifically, to a system and method for assigning Internet protocol (IP) addresses from a centrally located domain host configuration protocol (DHCP) server.
Since computers were invented, users have been inventing ways to connect them together. Advantages to computer connectivity are numerous and increasing in numbers. For example, computers connected to each other can share data and applications as well as resources such as printers and communication connections. One big leap forward in the area of computer connectivity is the Internet, a collection of computers that span the world and share a common communication protocol. Typically, each computer that accesses the resources of the Internet is assigned an internet protocol (IP) address that uniquely identifies that computer and enables information to be transmitted and received from other computers.
Although there are billions of possible IP addresses available, sometimes to is advantageous for groups of computers to share a particular IP address or group of IP addresses. For example, a local area network (LAN) may have a range of defined IP addresses that are assigned to individual computers as needed. To automatically implement this functionality, DHCP has been developed.
A DHCP server assigns an IP address to a requesting computer for the purpose of communicating both locally within a LAN and to other computers across the Internet. For example, a computer such as a laptop typically connects to a particular LAN, requests an IP address from a DHCP server also connected to the LAN and then employs the assigned IP address to communicate locally and across the Internet. Each IP addressed is assigned to a requesting computer for a specific period of time, typically ranging from an hour to several months, although the period may also be set to not expire. The specific period of time a particular IP address is assigned to a device is referred to as a “lease” for the device. The DHCP server does not assign the same IP address to a second computer while a first computer is “leasing” the address. In this manner, a limited number of IP address can be used by a larger number of computers, thus enabling a network to provide connectivity to multiple devices using fewer IP addresses than would otherwise be necessary.
What is wanted and needed is a system and method for assigning IP addresses across multiple LANs from a centrally administered DHCP server. In other words, a business with multiple LANs would benefit from a system in which a DHCP service is centrally located. Further, it would be beneficial for centralized IP addressing to be based upon criteria such as the physical location of a requesting computer or some other feature. For example, a salesman who connects to a LAN at a remote office may be assigned an IP address corresponding to a LAN at the remote office rather than an IP address based upon the home location of the laptop or vice versa. Under different circumstances, the laptop may be assigned an IP address corresponding to the LAN of the home office.
Provided is a method for centrally assigning branch specific network addresses in a domain host control protocol (DHCP) environment. A local router receives requests for IP address assignment from a computing device at one location and forwards the request to a centralized DHCP (CDHCP) server at a different location. The CDHCP server evaluates information associated with the request to determine the location of the requesting computer and assigns a location-dynamic IP address based upon the location, user-defined parameters or some other feature. In addition, the CDCHP server correlates location specific data to the IP address entry. An example of address specific data includes, but is not limited to, printer and router information corresponding to the location. In this manner, a centralized DHCP server is able to administer IP address for multiple locations and assign location specific data to the requesting computer based upon the current location of the computer.
A requesting computer may be assigned multiple IP address, each address tailored for a single purpose. For example, an application that functions as a print server may be assigned an IP address associated with the location of a particular printer while an application that uses a remote database may be assigned an IP address associated with the location of the corresponding database server. This type of IP address assignment enables an enterprise to centralize control over which computers are attached to a network, reduces the number of DHCP servers necessary to administer a network and enables the implementation of a hardware based media access control (MAC) security system.
The determination of a location of a particular computer is based on information such as, but not limited to, a reverse look-up of the originating signal and analysis of network traffic. The disclosed technology provides centralized control of a networking infrastructure.
This summary is not intended as a comprehensive description of the claimed subject matter but, rather, is intended to provide a brief overview of some of the functionality associated therewith. Other systems, methods, functionality, features and advantages of the invention will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description.
A better understanding of the present invention can be obtained when the following detailed description of the disclosed embodiments is considered in conjunction with the following figures, in which:
Although described with particular reference to a computing system that implements dynamic host configuration protocol (DHCP), the claimed subject matter can be implemented in any information technology (IT) system in which centralized control of network addresses is desirable. Those with skill in the computing arts will recognize that the disclosed embodiments have relevance to a wide variety of computing environments in addition to those described below. In addition, the methods of the disclosed invention can be implemented in software, hardware, or a combination of software and hardware. The hardware portion can be implemented using specialized logic; the software portion can be stored in a memory and executed by a suitable instruction execution system such as a microprocessor, personal computer (PC) or mainframe.
In the context of this document, a “memory” or “recording medium” can be any means that contains, stores, communicates, propagates, or transports the program and/or data for use by or in conjunction with an instruction execution system, apparatus or device. Memory and recording medium can be, but are not limited to, an electronic, magnetic, optical, electromagnetic or semiconductor system, apparatus or device. Memory and recording medium also include, but is not limited to, for example the following: a portable computer diskette, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), and a portable compact disk read-only memory or another suitable medium upon which a program and/or data may be stored.
One embodiment, in accordance with the claimed subject, is directed to a programmed method for centralized network address assignment. The term “programmed method”, as used herein, is defined to mean one or more process steps that are presently performed; or, alternatively, one or more process steps that are enabled to be performed at a future point in time. The term “programmed method” anticipates three alternative forms. First, a programmed method comprises presently performed process steps. Second, a programmed method comprises a computer-readable medium embodying computer instructions, which when executed by a computer performs one or more process steps. Finally, a programmed method comprises a computer system that has been programmed by software, hardware, firmware, or any combination thereof, to perform one or more process steps. It is to be understood that the term “programmed method” is not to be construed as simultaneously having more than one alternative form, but rather is to be construed in the truest sense of an alternative form wherein, at any given point in time, only one of the plurality of alternative forms is present.
Turning now to the figures,
Computing system 102 includes a central processing unit (CPU) 104, coupled to a monitor 106, a keyboard 108 and a mouse 110, which together facilitate human interaction with computer 102. Also included in computer 102 and attached to CPU 104 is a data storage component 112, which may either be incorporated into CPU 104 i.e. an internal device, or attached externally to CPU 104 by means of various, commonly available connection devices such as but not limited to, a universal serial bus (USB) port (not shown). Computing system 102 is one example of a device that may take advantage of the claimed subject matter although the following description focuses on an implementation by laptop 116. Although not shown, laptop 116 also includes a monitor, keyboard and a touch pad for human interaction, all of which are typically integrated into such a device rather than stand-alone components.
LAN 134 includes a centralized DHCP (CDHCP) server 136 that implements the claimed subject matter. CDHCP server 136 is explained in more detail below in conjunction with
Processor 142 executes logic associated with modules 144, 146, 148, 150, 152 and 154 to implement the claimed subject matter. Memory 144 provides storage for data and executables employed by processor 142. CDHCP configuration module 146 provides non-volatile storage for information employed in the claimed subject matter. Simply stated, module 146 stores information related to the configuration of CDHCP server 136 itself including, but not limited to, parameters for default lease times and the priority execution order of available location determination processes (see
Network config. module 148 stores information relating to LAN 114 (
Input/Output (I/O) module 150 handles communication between CDHCP server 136 and other devices such as laptop computer 116 (
Process 200 starts in a “Begin Request Address” block 202 and proceeds immediately to a “Configure Request” block 204. During block 204, logic associated with the claimed subject matter in laptop 116 determines whether or not to transmit a standard IP address request or a location-dynamic IP address request. In other words, in one embodiment, a particular computing system may elect whether or not to participate in the location dynamic IP address assignment of the claimed subject matter. In another embodiment, whether or not a particular computer elects to request a typical or location-dynamic IP address may be based upon configuration parameters corresponding to the particular computer stored in CDHCP configuration module 146 (
During a “Broadcast Request” block 206, laptop 116 transmits via LAN 114 (
During a “Receive Offer” block 208, laptop 116 may receives one or more potential IP addresses because the broadcast request transmitted during block 206 may be received by multiple DHCP servers, each of which transmit a reply. During a “Select Offer” block 210, process 200 chooses one of the offers received during block 208. In addition, the various communication tables and parameters on laptop 116 are updated to reflect the assigned IP address. During a “Transmit Selection” block 212, process 200 broadcasts a message indicating the IP address selected during block 210. In this manner, other servers and computers may update tables that enable each to know how to communicate with each other,
During a “Receive Acknowledgement (Ack)” block 214, process 200 receives an acknowledgement message from the particular DHCP server from which the IP address selected during block 210 originated so that the particular server may update tables to ensure proper maintenance of the IP address. Finally, process 200 proceeds to an “End Request Address” block 219 in which process 200 is complete.
Process 230 starts in a “Begin Retrieve Address” block 232 and proceeds immediately to a “Receive Request” block 234. During block 234, router 118 receives a request for an IP address from laptop computer 116. In a typical scenario, when a user of computer 116 plugs into LAN 114, a program associated with computer 116 attempts to establish a connection to LAN 114 for computer 116 so that computer 116 may send and receive messages across LAN 114. In this example, the request received corresponds to the request broadcast during Broadcast Request block 206 of IP Request Address process 200, described above in conjunction with
During a “Dynamic Request?” block 236, process 230 determines whether of not the IP address request received during block 234 is a dynamic address request in accordance with the claimed subject matter. In other words, some devices attempting to connect to LAN 114 may take advantage of the disclosed technology and some may not. The determination of whether or not a particular device is making a typical or a dynamic IP address request may be based upon several factors. In one embodiment, the IP request includes data explicitly indicating that the request is a dynamic IP address request. In another embodiment, router 118 makes the determination based either upon data associated with the request, such as, but not limited to, the specific device making the request. For example, a determination based upon the specific device may be predicated upon the type of device, a list of specific devices that are authorized to submit dynamic IP address requests or both.
In the event that the requesting device is not taking advantage of the claimed subject matter, process 230 proceeds to an “Assign IP Address” block 238 during which router 118 assigns an IP address according to standard IP address allocation procedures, as described above in the Background. If, during block 236, process 230 determines that the IP address received during block 234 should be handled in a dynamic fashion in accordance with the disclosed technology, control proceeds to a “Locate CDHCP” block 240. During block 240, process 230 determines the location, or IP address, of CDHCP server 136 (
Once CDHCP server 136 is located during block 240, process 230 proceeds to a “Transmit Request” block 242. During block 242, process 230 transmits a request for an IP address to CDHCP server 136, which process the request as described below in conjunction with
Process 260 starts in a “Begin Assign Address” block 262 and proceeds immediately to a “Receive Request” block 264. During block 264, process 260 receives the request transmitted by router 118 (
Once a source has been identified during block 268 or process 260 has determined during block 266 that the address request is for a specific LAN or router, process 260 proceeds to an “Assign Address” block 270. During block 270, CDHCP server 136 assigns a location-dynamic IP address based upon either the source of the request as determined during block 268 or based upon the specific request as determined during block 266. During a “Transmit Address” block 272, process 260 transmits the IP address assigned during block 270 to the router from which the request originated. Finally, process 260 proceeds to an “End Assign Address” block 279 in which process 260 is complete.
Process 280 starts in a “Begin Identify Source” block 282 and proceeds immediately to a “Parse Request” block 284. During block 284, process 280 scans an IP address request transmitted to CDHCP server 136 during Transmit Request block 242 (
During a “Correlate Request with Source” block 288, process 280 determines the router associated with the source as determined during block 286. Finally, process 280 proceeds to an “End Identify Source” block 289 in which process 280 is complete.
While the invention has been shown and described with reference to particular embodiments thereof, it will be understood by those skilled in the art that the foregoing and other changes in form and detail may be made therein without departing from the spirit and scope of the invention, including but not limited to additional, less or modified elements and/or additional, less or modified blocks performed in the same or a different order.