IP Library › Granted Patent US 11,716,309
Granted Patent B1
US 11,716,309 · App. 17/657,478 · Granted Aug 1, 2023

Allocating external IP addresses from isolated pools

Inventors: Aniket J. Gawade (Fremont, CA); Sachchidanand Vaidya (Santa Clara, CA); Yuvaraja Mariappan (San Jose, CA)
Assignee: Juniper Networks, Inc.
H04L61/5084G06F9/45558G06F11/2025H04L61/5061G06F2009/45595G06F2201/815
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,716,309
App. No.
17/657,478
Granted
Aug 1, 2023
Kind
B1
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 (64)

1. A method comprising:

creating, by a controller, a plurality of objects in a virtualized computing infrastructure, each of the objects being isolated from other objects to prevent access by any other object in the plurality of objects;

associating, by the controller, a different pool of floating IP addresses with each of the plurality of objects, wherein each different pool of floating IP addresses includes a range of addresses that are exclusive to the associated object;

configuring, by the controller, a first object of the objects with a floating IP address drawn from a pool of floating IP addresses associated with the first object;

servicing, by the first object, requests sent to the floating IP address;

configuring, by the controller, a second object of the objects with the floating IP address; and

servicing, by the second object and after configuring the second object with the floating IP address, requests sent to the floating IP address.

2. The method of claim 1 , wherein configuring the second object includes:

determining that the first object has failed; and

responsive to determining that the first object has failed, configuring the second object with the floating IP address to thereby transfer the floating IP address to the second object.

3. The method of claim 1 , the method further comprising:

detecting, by the controller, a request to create a new pool of floating IP addresses for a new object;

causing, by the controller, an IP address module to generate a range of addresses; and

creating, by the controller, the new pool of floating IP addresses using the range of addresses.

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

5. The method of claim 4 , the method further comprising:

detecting, by the controller, a request to create a new pool of floating IP addresses for a virtual network of the plurality of virtual networks;

causing, by the controller, an IP address module associated with the virtual network to generate a range of addresses; and

creating, by the controller, the new pool of floating IP addresses for the virtual network using the range of addresses.

6. The method of claim 1 , wherein configuring the first object with the floating IP address drawn from the pool of floating IP addresses associated with the first object includes:

identifying the floating IP address pool associated with the first object based on information included in an annotation.

7. The method of claim 1 , wherein configuring the first object with the floating IP address drawn from the pool of floating IP addresses associated with the first object includes:

identifying the floating IP address pool associated with the first object based on a notation included within a request.

8. The method of claim 1 , the method further comprising:

detecting, by the controller, a request to instantiate a new object; and

instantiating, by the controller, the new object and configuring the new object with an external IP address drawn from a pool of floating IP addresses associated with the new object.

9. The method of claim 8 , wherein instantiating the new object includes:

determining that the request includes information enabling identification of the pool of floating IP addresses associated with the new object.

10. The method of claim 9 ,

wherein the information enabling identification of the pool of floating IP addresses includes an annotation.

11. The method of claim 1 ,

wherein each of the plurality of objects includes one or more virtual networks, each of the virtual networks being associated with a different one of a plurality of tenants in a multitenant virtualized data center.

12. The method of claim 1 ,

wherein each of the plurality of objects is associated with a different namespace.

13. The method of claim 1 ,

wherein each of the plurality of objects includes one or more pods of one or more containers.

14. A 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 objects being isolated from other objects to prevent access by any other object in the plurality of objects;

associate a different pool of floating IP addresses with each of the plurality of objects, wherein each different pool of floating IP addresses includes a range of addresses that are exclusive to the associated object;

configure a first object of the objects with a floating IP address drawn from a pool of floating IP addresses associated with the first object;

service, by the first object, requests sent to the floating IP address;

configure a second object of the objects with the floating IP address; and

service, by the second object and after configuring the second object with the floating IP address, requests sent to the floating IP address.

15. The system of claim 14 , wherein to configure the second object, the processing circuitry is further configured to:

determine that the first object has failed; and

responsive to determining that the first object has failed, configure the second object with the floating IP address to thereby transfer the floating IP address to the second object.

16. The system of claim 14 , wherein the processing circuitry is further configured to:

detect a request to create a new pool of floating IP addresses for a new object;

cause an IP address module to generate a range of addresses; and

create the new pool of floating IP addresses using the range of addresses.

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

18. The system of claim 17 , wherein the processing circuitry is further configured to:

detect a request to create a new pool of floating IP addresses for a virtual network of the plurality of virtual networks;

cause an IP address module associated with the virtual network to generate a range of addresses; and

create the new pool of floating IP addresses for the virtual network using the range of addresses.

19. The system of claim 14 , wherein to configure the first object with the floating IP address drawn from the pool of floating IP addresses associated with the first object, the processing circuitry is further configured to:

identify the floating IP address pool associated with the first object based on information included in an annotation.

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 objects being isolated from other objects to prevent access by any other object in the plurality of objects;

associate a different pool of floating IP addresses with each of the plurality of objects, wherein each different pool of floating IP addresses includes a range of addresses that are exclusive to the associated object;

configure a first object of the objects with a floating IP address drawn from a pool of floating IP addresses associated with the first object;

service, by the first object, requests sent to the floating IP address;

configure a second object of the objects with the floating IP address; and

service, by the second object and after configuring the second object with the floating IP address, requests sent to the floating IP address.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2023
From: GAWADE, ANIKET J.; VAIDYA, SACHCHIDANAND; MARIAPPAN, YUVARAJA
To: JUNIPER NETWORKS, INC
Reel/Frame 064641/0276 →
Continuity (1)
Continuation 16145609 · Sep 28, 2018
Cited By (2)
US 12,250,080 US 12,368,694