# US 12,010,093 B1 · Allocating addresses from pools

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,010,093 B1
- Document ID: US12010093B1
- Status: Granted
- Kind: B1
- Application number: 18/343,883
- Filed: 2023-06-29
- Granted: 2024-06-11
- Earliest claimed: 2018-09-28
- Assignees: Juniper Networks, Inc.
- Applicants: Juniper Networks, Inc.
- Inventors: Aniket J. Gawade; Sachchidanand Vaidya; Yuvaraja Mariappan
- Web page: https://patentgrep.com/patent/US12010093B1

## CPC

- H04L 61/5084: Providing for device mobility (network addressing or numbering for mobility support in wireless networks H04W8/26; mobile IP H04W80/04)
- G06F 9/455: Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 11/2025: {using centralised failover control functionality}
- H04L 61/5007: Internet protocol [IP] addresses
- H04L 61/5061: Pools of addresses
- G06F 11/202: {where processing functionality is redundant (redundant communication control functionality G06F11/2005, redundant storage control functionality G06F11/2089)}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F 2201/815: Virtual
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques are described for creating isolated pools of external, failover, and/or floating IP addresses. In one example, this disclosure describes a method including creating a plurality of virtual networks, creating a plurality of pools of external IP addresses, detecting a request to instantiate an object that identifies a specific pool from the plurality of pools of external IP addresses; and instantiating the object and configuring the object with an external IP address drawn from the specific pool. The pools of external IP addresses may be created and isolated on a per-namespace, per-service, or per-ingress basis.

## Claims

### Claim 1

A computing system comprising a storage device and processing circuitry, wherein the processing circuitry has access to the storage device and is configured to:
create a plurality of objects in a virtualized computing infrastructure, each of the plurality of objects being inaccessible to any other object in the plurality of objects, and wherein the plurality of objects includes a first object and a second object;
for each of the plurality of objects, associate a different pool of addresses having a range of addresses for use by the object;
configure the first object with an address drawn from a pool of addresses associated with the first object;
enable the first object to service a request sent to the address;
configure the second object with the address; and
enable, after configuring the second object with the address, the second object to service a later request sent to the address.

### Claim 2 (depends on 1)

The computing system of claim 1, wherein to configure the second object with the address, the processing circuitry is further configured to:
determine that the first object has failed; and
based on determining that the first object has failed, configure the second object with the address to transfer the address to the second object.

### Claim 3 (depends on 1)

The computing system of claim 1, wherein to enable the first object to service a request sent to the address, the processing circuitry is further configured to:
direct network traffic to the first object.

### Claim 4 (depends on 1)

The computing system of claim 1, wherein to enable the second object to service a later request sent to the address, the processing circuitry is further configured to:
direct network traffic to the second object.

### Claim 5 (depends on 1)

The computing system of claim 1, wherein the processing circuitry is further configured to:
detect a request to instantiate a new object; and
instantiate the new object with an address drawn from a pool of addresses associated with the new object.

### Claim 6 (depends on 5)

The computing system of claim 5, wherein to instantiate the new object, the processing circuitry is further configured to:
determine that the request includes information enabling identification of the pool of addresses associated with the new object.

### Claim 7 (depends on 6)

The computing system of claim 6,
wherein the information enabling identification of the pool of addresses includes an annotation.

### Claim 8 (depends on 1)

The computing system of claim 1,
wherein each of the plurality of objects is associated with at least one of a plurality of virtual networks.

### Claim 9 (depends on 1)

The computing system of claim 1,
wherein each of the plurality of objects is associated with a different namespace.

### Claim 10 (depends on 1)

The computing system of claim 1, wherein to configure the first object with the address drawn from the pool of addresses associated with the first object includes:
identifying the address pool associated with the first object based on information included in an annotation.

### Claim 11

A method comprising:
creating a plurality of objects in a virtualized computing infrastructure, each of the plurality of objects being inaccessible to any other object in the plurality of objects, and wherein the plurality of objects includes a first object and a second object;
for each of the plurality of objects, associating a different pool of addresses having a range of addresses for use by the object;
configuring the first object with an address drawn from a pool of addresses associated with the first object;
enabling the first object to service a request sent to the address;
configuring the second object with the address; and
enabling, after configuring the second object with the address, the second object to service a later request sent to the address.

### Claim 12 (depends on 11)

The method of claim 11, wherein configuring the second object with the address includes:
determining that the first object has failed; and
based on determining that the first object has failed, configuring the second object with the address to transfer the address to the second object.

### Claim 13 (depends on 11)

The method of claim 11, wherein enabling the first object to service a request sent to the address includes:
directing network traffic to the first object.

### Claim 14 (depends on 11)

The method of claim 11, wherein enabling the second object to service a later request sent to the address includes:
directing network traffic to the second object.

### Claim 15 (depends on 11)

The method of claim 11, further comprising:
detecting a request to instantiate a new object; and
instantiating the new object with an address drawn from a pool of addresses associated with the new object.

### Claim 16 (depends on 15)

The method of claim 15, wherein instantiating the new object includes:
determining that the request includes information enabling identification of the pool of addresses associated with the new object.

### Claim 17 (depends on 16)

The method of claim 16,
wherein the information enabling identification of the pool of addresses includes an annotation.

### Claim 18 (depends on 11)

The method of claim 11,
wherein each of the plurality of objects is associated with at least one of a plurality of virtual networks.

### Claim 19 (depends on 11)

The method of claim 11,
wherein each of the plurality of objects is associated with a different namespace.

### Claim 20

A non-transitory computer-readable medium comprising instructions that, when executed, configure processing circuitry of a computing system to:
create a plurality of objects in a virtualized computing infrastructure, each of the plurality of objects being inaccessible to any other object in the plurality of objects, and wherein the plurality of objects includes a first object and a second object;
for each of the plurality of objects, associate a different pool of addresses having a range of addresses for use by the object;
configure the first object with an address drawn from a pool of addresses associated with the first object;
enable the first object to service a request sent to the address;
configure the second object with the address; and
enable, after configuring the second object with the address, the second object to service a later request sent to the address.
