IP allocation based on automatic detection
By sniffing ARP packets and using REST API to automatically detect network addresses and gateways, the problem of configuring IP addresses and network parameters in remote sites without DHCP was solved, achieving efficient and automated network configuration, reducing operating costs and improving deployment efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- DELL PROD LP
- Filing Date
- 2022-04-02
- Publication Date
- 2026-07-03
AI Technical Summary
At remote sites, especially without DHCP, it is difficult to automatically assign IP addresses and configure network parameters for new nodes, resulting in high operating costs and low deployment efficiency.
By sniffing Address Resolution Protocol (ARP) packets, potential network addresses and gateway addresses are automatically detected. Communication attempts are made using the REST API, and combined with dynamic configuration of the network mask, automatic network configuration of remote nodes is achieved.
It enables efficient and automated IP address and network parameter configuration in a DHCP-free environment, reducing operating costs and improving deployment efficiency.
Smart Images

Figure CN116938868B_ABST
Abstract
Description
Technical Field
[0001] This disclosure generally relates to information processing systems, and more specifically to technologies for allocating IP addresses. Background Technology
[0002] As the value and use of information continue to grow, individuals and businesses are seeking additional ways to process and store information. One option available to users is an information processing system. Information processing systems typically process, compile, store, and / or transmit information or data for business, personal, or other purposes, thereby allowing users to leverage the value of this information. Because technology and information processing needs vary across different users or applications, information processing systems may also differ in terms of: what information is processed, how it is processed, how much information is processed, stored, or transmitted, and how quickly and efficiently it can be processed, stored, or transmitted. Variations in information processing systems allow them to be general-purpose or configured for specific users or purposes (such as financial transaction processing, airline ticketing, enterprise data storage, or global communications). Furthermore, information processing systems can include a variety of hardware and software components that can be configured to process, store, and transmit information, and may include one or more computer systems, data storage systems, and networking systems.
[0003] Hyperconverged infrastructure (HCI) is an IT framework that combines storage, compute, and networking into a single system in an attempt to reduce data center complexity and improve scalability. A hyperconverged platform may include hypervisors for virtualized compute, software-defined storage, and virtualized networking, and these typically run on standard off-the-shelf servers. One type of HCI solution is Dell EMC VxRail. TM Systems. Some examples of HCI systems can be found in various environments (e.g., such as...). ESXi TM It runs in an HCI management system (such as an environment or any other HCI management system).
[0004] In the context of HCI (and other contexts), information processing systems may execute virtual machines (VMs) for various purposes. A VM generally includes any program or set of executable instructions configured to run a guest operating system on a hypervisor or host operating system. This allows the hypervisor / host operating system to manage and / or control the allocation and use of hardware resources such as memory, central processing unit time, disk space, and input / output devices, and to provide an interface between these hardware resources and applications hosted by the guest operating system.
[0005] In HCI (and other contexts), new information processing systems may sometimes need to be deployed at remote sites. These remote sites typically lack local maintenance engineers, so automated deployment solutions can significantly reduce operating costs. Such solutions may include generating network configurations, such as assigning Internet Protocol (IP) addresses to the system, configuring network masks, and configuring gateway IP addresses.
[0006] Therefore, embodiments of this disclosure can allow for remote deployment using flexible, automated network configuration without DHCP (which is not always available at remote sites). One embodiment allows for the automatic configuration of temporary IP parameters on a new remote node, which can then be used for further remote configuration. Some embodiments can be adopted in an HCI context, while others can be adopted in other contexts.
[0007] It should be noted that the technical discussions in the background section of this disclosure do not constitute an admission of the state of the prior art. Unless expressly and unambiguously indicated otherwise, no such admission is made herein. Summary of the Invention
[0008] Based on the teachings of this disclosure, the disadvantages and problems associated with remote configuration connected to a network can be reduced or eliminated.
[0009] According to embodiments of this disclosure, an information processing system may include a memory and at least one processor. The information processing system may be configured to receive multiple Address Resolution Protocol (ARP) packets based on requests transmitted from a pre-configured system to multiple network addresses; determine one of the multiple network addresses as a potential network address based on the content of the multiple ARP packets; determine a potential gateway address based on the content of the multiple ARP packets; and use the potential network address to attempt to communicate with the pre-configured system via the potential gateway address.
[0010] According to these and other embodiments of this disclosure, a computer-implemented method may include: an information processing system receiving a plurality of Address Resolution Protocol (ARP) packets based on requests transmitted from a pre-configured system to a plurality of network addresses; determining, based on the content of the plurality of ARP packets, one of the plurality of network addresses as a potential network address; determining, based on the content of the plurality of ARP packets, a potential gateway address; and the information processing system using the potential network address to attempt to communicate with the pre-configured system via the potential gateway address.
[0011] According to these and other embodiments of this disclosure, an article of manufacture may include a non-transitory computer-readable medium having computer-executable instructions that can be executed by a processor of an information processing system to: receive a plurality of Address Resolution Protocol (ARP) packets based on requests transmitted from a provisioning system to a plurality of network addresses; determine one of the plurality of network addresses as a potential network address based on the contents of the plurality of ARP packets; determine a potential gateway address based on the contents of the plurality of ARP packets; and attempt to communicate with the provisioning system via the potential gateway address using the potential network address.
[0012] The technical advantages of this disclosure will be readily understood by those skilled in the art based on the accompanying drawings, description, and claims included herein. The objectives and advantages of the embodiments will be realized and achieved, at least by the elements, features, and combinations specifically pointed out in the claims.
[0013] It should be understood that the foregoing general description and the following detailed description are exemplary and not intended to limit the claims set forth in this disclosure. Attached Figure Description
[0014] This embodiment and its advantages can be more fully understood by referring to the following description taken in conjunction with the accompanying drawings, wherein the same reference numerals indicate the same features, and wherein:
[0015] Figure 1 A block diagram of an exemplary information processing system according to an embodiment of the present disclosure is shown; and
[0016] Figure 2 An exemplary process flow according to an embodiment of this disclosure is shown. Detailed Implementation
[0017] By reference Figure 1 and Figure 2 To best understand the preferred embodiments and their advantages, the same numbering is used to indicate the same and corresponding parts.
[0018] For the purposes of this disclosure, the term "information processing system" can include any tool or set of tools operable to calculate, classify, process, transmit, receive, retrieve, generate, switch, store, display, indicate, detect, record, reproduce, dispose of, or utilize information, intelligence, or data of any form for commercial, scientific, control, entertainment, or other purposes. For example, an information processing system can be a personal computer, a personal digital assistant (PDA), a consumer electronic device, a network storage device, or any other suitable device, and can vary in size, shape, performance, functionality, and price. An information processing system can include memory, one or more processing resources, such as a central processing unit ("CPU"), or hardware or software control logic. Additional components of an information processing system can include one or more storage devices, one or more communication ports for communicating with external devices, and various input / output ("I / O") devices, such as a keyboard, mouse, and video display. An information processing system may also include one or more buses operable to transmit communication between various hardware components.
[0019] For the purposes of this disclosure, when two or more elements are referred to as being “coupled” to each other, such terminology indicates that such two or more elements are in electronic communication or mechanical connection, whether directly or indirectly connected, with or without an intermediate element.
[0020] When two or more elements are referred to as “coupleable” to each other, such a term indicates that they are able to couple together.
[0021] For the purposes of this disclosure, the term "computer-readable medium" (e.g., temporary or non-temporary computer-readable medium) can include any tool or set of tools that can retain data and / or instructions for a period of time. Computer-readable media can include, but is not limited to: storage media such as direct access storage devices (e.g., hard disk drives or floppy disks), sequential access storage devices (e.g., magnetic tape drives), optical discs, CD-ROMs, DVDs, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and / or flash memory; communication media such as wires, optical fibers, microwaves, radio waves, and other electromagnetic and / or optical carrier waves; and / or any combination of the foregoing.
[0022] For the purposes of this disclosure, the term "information processing resource" may be used broadly to refer to any component system, apparatus or device of an information processing system, including but not limited to processors, service processors, basic input / output systems, buses, memory, I / O devices and / or interfaces, storage resources, network interfaces, motherboards and / or any other components and / or elements of the information processing system.
[0023] For the purposes of this disclosure, the term "management controller" may be used broadly to refer to an information processing system that provides management functionality (typically out-of-band management functionality) to one or more other information processing systems. In some embodiments, the management controller may be a service processor, a baseboard management controller (BMC), a chassis management controller (CMC), or a remote access controller (e.g., a Dell Remote Access Controller (DRAC) or an integrated Dell Remote Access Controller (iDRAC)) (or may be a component thereof).
[0024] Figure 1 A block diagram of an exemplary information processing system 102 according to embodiments of the present disclosure is shown. In some embodiments, the information processing system 102 may include a server chassis configured to house multiple servers or "blades". In other embodiments, the information processing system 102 may include a personal computer (e.g., a desktop computer, laptop computer, mobile computer, and / or notebook computer). In still other embodiments, the information processing system 102 may include a storage enclosure configured to house multiple physical disk drives and / or other computer-readable media for storing data (which may generally be referred to as "physical storage resources"). Figure 1 As shown, the information processing system 102 may include a processor 103, a memory 104 communicatively coupled to the processor 103, a BIOS 105 (e.g., UEFI BIOS) communicatively coupled to the processor 103, a network interface 108 communicatively coupled to the processor 103, and a management controller 112 communicatively coupled to the processor 103.
[0025] In operation, processor 103, memory 104, BIOS 105, and network interface 108 may include at least a portion of the host system 98 of information processing system 102. In addition to the elements explicitly shown and described, information processing system 102 may include one or more other information processing resources.
[0026] Processor 103 may include any system, apparatus, or device configured to interpret and / or execute program instructions and / or process data, and may include, but is not limited to, microprocessors, microcontrollers, digital signal processors (DSPs), application-specific integrated circuits (ASICs), or any other digital or analog circuit configured to interpret and / or execute process instructions and / or program data. In some embodiments, processor 103 may interpret and / or execute program instructions and / or process data stored in memory 104 and / or another component of information processing system 102.
[0027] Memory 104 may be communicatively coupled to processor 103 and may include any system, apparatus, or device (e.g., computer-readable medium) configured to retain program instructions and / or data for a period of time. Memory 104 may include any suitable selection and / or array of RAM, EEPROM, PCMCIA card, flash memory, magnetic storage device, optical-magnetic storage device, or volatile memory or non-volatile memory that retains data after power failure of information processing system 102.
[0028] like Figure 1 As shown, an operating system 106 may be stored on memory 104. Operating system 106 may include any executable program (or set of executable programs) configured to manage and / or control the allocation and use of hardware resources such as memory, processor time, disk space, and input and output devices, and to provide an interface between such hardware resources and applications hosted by operating system 106. Additionally, operating system 106 may include all or part of a network stack for network communication via a network interface (e.g., network interface 108 for communication over a data network). Although operating system 106... Figure 1 The operating system 106 is shown as being stored in memory 104, but in some embodiments, the operating system 106 may be stored in a storage medium accessible to the processor 103, and the active portion of the operating system 106 may be transferred from such storage medium to memory 104 for execution by the processor 103.
[0029] Network interface 108 may include one or more suitable systems, devices, or apparatuses operable to act as an interface between information processing system 102 and one or more other information processing systems via an in-band network. Network interface 108 may enable information processing system 102 to communicate using any suitable transport protocol and / or standard. In these and other embodiments, network interface 108 may include a network interface card or “NIC”. In these and other embodiments, network interface 108 may be enabled as an onboard local area network (LAN) (LOM) card.
[0030] Management controller 112 can be configured to provide management functionality to the information processing system 102. This management can be performed by management controller 112 even when the information processing system 102 and / or host system 98 are powered off or powered to a standby state. Management controller 112 may include processor 113, memory, and a network interface 118 that is separate from and physically isolated from network interface 108.
[0031] like Figure 1As shown, the processor 113 of the management controller 112 can be communicatively coupled to the processor 103. This coupling can be made via a Universal Serial Bus (USB), a System Management Bus (SMBus), and / or one or more other communication channels.
[0032] Network interface 118 can be coupled to a management network, as shown, which can be decoupled from and physically isolated from the data network. Network interface 118 of management controller 112 can include any suitable system, device, or apparatus operable to act as an interface between management controller 112 and one or more other information processing systems via an out-of-band management network. Network interface 118 enables management controller 112 to communicate using any suitable transport protocol and / or standard. In these and other embodiments, network interface 118 can include a network interface card or "NIC". Network interface 118 can be a device of the same type as network interface 108, or in other embodiments it can be a different type of device.
[0033] As discussed above, embodiments of this disclosure allow for remote, automated configuration of network parameters. Some embodiments can operate with one or more new nodes already cabled and powered on, and network devices (e.g., routers, top-of-rack (ToR) switches, and / or other switches) already connected and configured. The provisioning system can operate (e.g., on the remote site itself, on an administrator's information processing system, or on a cloud system), and it can repeatedly send requests based on a Representational State Transfer Application Programming Interface (REST API) or some other API for provisioning requirements of a predefined target IP pool. The provisioning system can then collect information based on the results. The target IP pool can be based on any desired criteria (e.g., it can be selected based on one or more known IP addresses from existing systems at the remote site).
[0034] Furthermore, nodes at remote sites can be configured to run services with sniffing components (e.g., promiscuous networking components) to sniff packets, such as TCP / IP packets. Specifically, nodes can sniff Address Resolution Protocol (ARP) packets as described below. ARP is a communication protocol used to discover link-layer addresses (e.g., Media Access Control (MAC) addresses) associated with a given Internet layer address (e.g., IP address). The sniffing component can gather information to help determine the possible networking configuration settings of a new node (e.g., IP address, subnet, and / or gateway IP address). Additionally, nodes at remote sites can be configured to execute REST API services in response to calls from the provisioned system. This service can provide basic hardware information about the node.
[0035] According to one implementation, the detection of available IP addresses for new nodes and the detection of gateway IP addresses can be achieved as follows. When the provisioning system issues API polling requests within the identified IP pool range, these packets may then be routed to gateways connected to these nodes. Furthermore, because at least some of these IP addresses are not actually in use, the gateway will not have ARP cache entries for them, and therefore it may issue ARP requests to attempt to find the MAC addresses of such IP addresses.
[0036] The sniffing component mentioned above can sniff and analyze ARP queries triggered by this API polling. It can also record all source IP addresses that issue ARP requests to various target IP addresses. It can then be assumed that the source IP addresses in these ARP request packets are candidates for gateway addresses.
[0037] For example, if a sniffing component at a node repeatedly receives ARP request packets in the following order over a certain period of time, it can be assumed that address A is the gateway IP, and addresses X, Y, and Z are potentially usable IP addresses:
[0038] Packet 1, Type = ARP Request, Source Protocol Address = A, Destination Protocol Address = X
[0039] Packet 2, Type = ARP Request, Source Protocol Address = A, Destination Protocol Address = Y
[0040] Packet 2, Type = ARP Request, Source Protocol Address = A, Destination Protocol Address = X
[0041] …
[0042] Packet n, Type = ARP request, Source protocol address = A, Destination protocol address = Z
[0043] According to one implementation, the detection of a possible network mask can be achieved as follows. In some implementations, the goal of determining the network mask is to allow new nodes to communicate with the provisioned system via the gateway, and it may not be necessary to consider enabling communication with other nodes in the same subnet. Therefore, one implementation may choose the longest (e.g., most stringent) network mask given available data.
[0044] For example, if the gateway IP is 192.168.1.1 and the node IP is 192.168.1.10, the network mask can be set to 255.255.255.240. This may be the same as or different from the network mask value configured on the gateway's interface, but it can still be used to correctly route traffic between the new node and the provisioned system via the gateway.
[0045] After sniffing and configuring IP settings, a new node may still need to verify the configured IP address because the selected IP address or gateway may be incorrect. According to one implementation, this verification can be achieved as follows.
[0046] After the IP settings have been configured, when the provisioning system next attempts to call the REST API of the configured IP address, the new node can successfully respond to the REST call. This call and response can act as a "handshake" to confirm that the new IP address is available and correctly configured. If the new node fails to receive an API connection request within a configured duration, it can determine that a misconfiguration has occurred and release the currently configured IP settings. The new node can then wait for a selected duration (e.g., a random amount of time) before restarting the sniffing process. The benefit of waiting for a random duration is to avoid duplicate IP configurations caused by multiple hosts that may choose the same IP address and configure themselves identically at the same time.
[0047] Similarly, using this mechanism, if multiple hosts choose the same IP address and configure themselves simultaneously, these hosts may fail to respond to API polling and will have the opportunity to reselect a new IP address after waiting for the API connection to time out.
[0048] According to one implementation, the ARP broadcast probe mentioned above may fail after a predetermined amount of time, after which the ARP entry is considered incomplete. For example, on most Linux-based systems, the probe may fail after a number of attempts equal to the setting `mcast_solicit` (the maximum number of attempts to resolve the address via multicast / broadcast before marking the entry as unreachable, which may default to 3). The associated time interval can be based on the setting `retrans_time_ms` (the number of milliseconds delayed before retransmitting the request, which may default to 1000). Therefore, in the default configuration, an IP address resolution may take 3 * 1 seconds.
[0049] To reduce network bandwidth consumption, one implementation can be configured to send an API poll of addresses in the IP pool every 10 seconds. Therefore, if the user-defined IP pool contains 50 IP addresses, the provisioning system can be configured to send polling TCP packets at a rate of 10 packets per second for the first five seconds of the polling phase, so the gateway will send ARP requests at the same rate of 10 packets per second. The provisioning system can then poll the unconnected addresses again after 10 seconds. Ideally, a new node could complete its IP configuration within one minute of the provisioning system starting its polling.
[0050] Turn now Figure 2The diagram shows a flowchart of an exemplary method 200 for configuring network settings according to some implementation schemes.
[0051] At step 202, the provisioning system can identify one or more IP address pools to be tested. At step 204, the provisioning system can begin transmitting API requests to one or more of the identified pools of IP addresses.
[0052] This could cause the ToR switch to start issuing ARP queries at step 210, and one or more other nodes in the cluster could listen for responses and pool the results at step 212.
[0053] Simultaneously, the new node can be powered on at step 206 and can begin sniffing ARP packets in promiscuous mode at step 208. If a specific IP address does not respond at step 214, the new node can configure itself to use that IP address at step 216. Furthermore, the gateway IP address can be inferred based on the sniffed ARP packets discussed above. In some implementations, the new node can also configure the network mask based on the sniffed ARP packets discussed above.
[0054] At step 218, the new node can attempt to respond to the API polling. If the response is successful at steps 220 and 224, it can be confirmed that the IP and gateway settings are correct. Otherwise, the gateway address can be added to the list of failed gateway addresses at step 222, and sniffing can resume in the loop shown.
[0055] The method may continue until a set of successful networking settings is determined, or until a determination to stop polling is made at step 226 (e.g., based on a timeout).
[0056] Those skilled in the art who benefit from this disclosure will understand that, for Figure 2 The preferred initialization point and the order of steps constituting the method described herein may depend on the chosen implementation. In these and other embodiments, the method can be implemented as hardware, firmware, software, an application, a function, a library, or other instructions. Furthermore, although... Figure 2 The disclosure specifies a particular number of steps to be taken in the disclosed method, but the method can be performed with more or fewer steps than depicted. The method may utilize various components disclosed herein (such as...). Figure 1 The method can be implemented by any one of the components and / or any other system operable to implement the method.
[0057] This disclosure covers all changes, substitutions, variations, alterations, and modifications of the exemplary embodiments herein that will be understood by those skilled in the art. Similarly, where appropriate, the appended claims cover all changes, substitutions, variations, alterations, and modifications of the exemplary embodiments herein that will be understood by those skilled in the art. Furthermore, references in the appended claims to a device, system, or component adapted to, arranged to, capable of, configured to, enabled to, operable to, or operationally perform a particular function include said device, system, or component, whether or not said device, system, or component or said particular function is activated, turned on, or unlocked, provided that said device, system, or component is adapted to, arranged to, capable of, configured to, enabled to, operable to, or operationally performs the particular function.
[0058] All examples and conditional language described herein are intended to aid the reader in understanding the invention and to teach concepts contributed by the inventors to advance the field, and should be construed as not being limited to such specific examples and conditions. Although embodiments of the invention have been described in detail, it should be understood that various changes, substitutions, and modifications can be made therein without departing from the spirit and scope of this disclosure.
Claims
1. An information processing system, comprising: At least one processor; as well as Memory; The information processing system is configured as follows: Receive multiple Address Resolution Protocol (ARP) packets based on requests that have been repeatedly transmitted at fixed intervals by the pre-configuration system to multiple network addresses in a predefined target pool according to the pre-configuration requirements via the application programming interface. Based on the content of the multiple ARP packets, one of the multiple network addresses is identified as a potential network address; Based on the content of the multiple ARP packets, determine the potential gateway address; as well as Use the potential network address to attempt to communicate with the pre-configured system via the potential gateway address.
2. The information processing system according to claim 1, wherein the information processing system is a host system that has been added to a hyperconverged infrastructure (HCI) cluster.
3. The information processing system according to claim 1, wherein the reception of the ARP packet occurs in promiscuous networking mode.
4. The information processing system of claim 1, wherein the request from the pre-configured system is a Representational State Transition Application Programming Interface (REST API) request.
5. The information processing system according to claim 1, further configured to determine a network mask based on the content of the plurality of ARP packets.
6. The information processing system according to claim 1, wherein the network address is an Internet Protocol (IP) address.
7. A computer-implemented method, comprising: The information processing system receives multiple Address Resolution Protocol (ARP) packets based on requests that have been repeatedly transmitted at fixed intervals by the pre-configuration system to multiple network addresses in a predefined target pool according to pre-configuration requirements via an application programming interface. Based on the content of the multiple ARP packets, the information processing system determines one of the multiple network addresses as a potential network address; Based on the content of the multiple ARP packets, the information processing system determines the potential gateway address; as well as The information processing system uses the potential network address to attempt to communicate with the pre-configured system via the potential gateway address.
8. The method of claim 7, wherein the information processing system is a host system that has been added to a hyperconverged infrastructure (HCI) cluster.
9. The method of claim 7, wherein the reception of the ARP packet occurs in promiscuous networking mode.
10. The method of claim 7, wherein the request from the provisioning system is a Representational State Transition Application Programming Interface (REST API) request.
11. The method of claim 7, further comprising: The network mask is determined based on the contents of the multiple ARP packets.
12. The method of claim 7, wherein the network address is an Internet Protocol (IP) address.
13. A non-transitory computer-readable medium having computer-executable instructions thereon, the computer-executable instructions being executable by a processor of an information processing system to: Receive multiple Address Resolution Protocol (ARP) packets based on requests that have been repeatedly transmitted at fixed intervals by the pre-configuration system to multiple network addresses in a predefined target pool according to the pre-configuration requirements via the application programming interface. Based on the content of the multiple ARP packets, one of the multiple network addresses is identified as a potential network address; Based on the content of the multiple ARP packets, determine the potential gateway address; as well as Use the potential network address to attempt to communicate with the pre-configured system via the potential gateway address.
14. The non-transitory computer-readable medium of claim 13, wherein the information processing system is a host system that has been added to a hyperconverged infrastructure (HCI) cluster.
15. The non-transitory computer-readable medium of claim 13, wherein the reception of the ARP packet occurs in a promiscuous networking mode.
16. The non-transitory computer-readable medium of claim 13, wherein the request from the provisioning system is a Representational State Transition Application Programming Interface (REST API) request.
17. The non-transitory computer-readable medium of claim 13, wherein the instructions are further executable to determine a network mask based on the content of the plurality of ARP packets.
18. The non-transitory computer-readable medium of claim 13, wherein the network address is an Internet Protocol (IP) address.
Citation Information
Patent Citations
Configuring a protocol address of a network device using an address resolution protocol request
US20170180305A1