IP Library Granted Patent US 11,658,933
Granted Patent B2
US 11,658,933 · App. 17/247,957 · Granted May 23, 2023

Dynamically learning media access control and internet protocol addresses

Inventors: Sangarshan Pillareddy (Bangalore, IN); Yuvaraja Mariappan (San Jose, CA); James Nicholas Davey (San Jose, CA); Prasad Miriyala (San Jose, CA); Richard Roberts (Rennes, FR); Margarida Correia (Suffolk, GB); Nagendra E S (Bangaluru, IN); Haji Mohamed Ashraf Ali (Bangalore, IN)
Assignee: Juniper Networks, Inc.
H04L61/103G06N20/00H04L12/4641H04L45/745H04L61/5007H04L2101/622
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,658,933
App. No.
17/247,957
Granted
May 23, 2023
Kind
B2
Abstract

Techniques are described for learning an unknown virtual network information, such as an virtual Internet Protocol (IP) address, of a pod in a virtual network. In some examples, a virtual router executing at a computing device may receive an Address Resolution Protocol (ARP) packet from a virtual execution element in the virtual network, the virtual execution element executing at the computing device. The virtual router may determine, based at least in part on the ARP packet, whether virtual network information for the virtual execution element in a virtual network is known to the virtual router. The virtual router may, in response to determining that the virtual network information of the virtual execution element in the virtual network is not known to the virtual router, perform learning of the virtual network information for the virtual execution element.

Claims (59)

1. A method comprising:

receiving, by a virtual router at a computing device in a virtualized computing infrastructure, an Address Resolution Protocol (ARP) packet from a virtual execution element in a virtual network, the virtual execution element executing at the computing device;

determining, by the computing device and based at least in part on the ARP packet, whether a virtual network information for the virtual execution element in the virtual network is known to the virtual router, including determining, by the virtual router, whether the virtual network information for the virtual execution element in the virtual network is stored in one or more tables of the virtual router for the virtual network, and in response to determining that the virtual network information for the virtual execution element in the virtual network is not stored in the one or more tables of the virtual router for the virtual network, determining, by the virtual router, that the virtual network information for the virtual execution element in the virtual network is not known to the virtual router; and

in response to determining that the virtual network information of the virtual execution element in the virtual network is not known to the virtual router, performing learning, by the virtual router at the computing device, of the virtual network information for the virtual execution element.

2. The method of claim 1 , further comprising:

establishing, by a virtual router agent at the computing device, a bidirectional forwarding and detection (BFD) session with the virtual execution element; and

determining, by the computing device and based on the BFD session, that the virtual execution element is unreachable.

3. The method of claim 1 , wherein the virtual execution element comprises a Kubernetes pod executed by a virtual machine.

4. The method of claim 1 , wherein the virtual network information for the virtual execution element comprises a virtual Internet Protocol (IP) address for the virtual execution element and a Media Access Control (MAC) address for the virtual execution element.

5. The method of claim 4 , further comprising:

storing, by the computing device, an association of the virtual IP address for the virtual execution element and the MAC address for the virtual execution element in one or more tables of the virtual router for the virtual network.

6. The method of claim 4 , further comprising:

receiving, by the virtual router at the computing device a second ARP packet from a second virtual execution element executing at the computing device;

determining, by the computing device and based at least in part on the second ARP packet, the virtual IP address for the second virtual execution element in the virtual network and the MAC address for the second virtual execution element in the virtual network; and

in response to determining that the virtual IP address for the second virtual execution element matches the virtual IP address for the virtual execution element and that the MAC address for the second virtual execution element does not match the MAC address for the virtual execution element, determining that the virtual execution element has been deleted.

7. The method of claim 4 , further comprising:

receiving, by the computing device from a network controller for the virtualized computing infrastructure, a request to add a route associated with a second virtual IP address and a second MAC address in the virtual network; and

in response to determining that the second virtual IP address matches the virtual IP address for the virtual execution element and that the second MAC address does not match the MAC address for the virtual execution element, determining that the virtual execution element has been deleted.

8. The method of claim 4 , further comprising:

periodically sending, by a virtual router agent at the computing device, ARP requests to the virtual IP address for the virtual execution element and the MAC address for the virtual execution element; and

in response to not receiving ARP replies to a specified number of consecutive ARP requests sent to the virtual IP address for the virtual execution element and the MAC address for the virtual execution element, determining, by the computing device, that the virtual execution element is unreachable.

9. A method comprising:

receiving, by a virtual router at a computing device in a virtualized computing infrastructure, an Address Resolution Protocol (ARP) packet from a virtual execution element in a virtual network, the virtual execution element executing at the computing device;

determining, by the computing device and based at least in part on the ARP packet, whether a virtual network information for the virtual execution element in the virtual network is known to the virtual router; and

in response to determining that the virtual network information of the virtual execution element in the virtual network is not known to the virtual router, performing learning, by the virtual router at the computing device, of the virtual network information for the virtual execution element, including generating one or more routes for the virtual network information for the virtual execution element and advertising the one or more routes to a network controller for the virtualized computing infrastructure.

10. A computing device in a virtualized computing infrastructure, comprising:

processing circuitry coupled to a memory device;

a virtual router configured for execution by the processing circuitry to:

receiving an Address Resolution Protocol (ARP) packet from a virtual execution element in a virtual network, the virtual execution element executing at the computing device; and

determine, based at least in part on the ARP packet, whether a virtual network information for the virtual execution element in the virtual network is known to the virtual router; and

a virtual router agent configured for execution by the processing circuitry to:

in response to determining that the virtual network information of the virtual execution element in the virtual network is not known to the virtual router, perform learning of the virtual network information for the virtual execution element, including generating one or more routes for the virtual network information for the virtual execution element and advertising the one or more routes to a network controller for the virtualized computing infrastructure.

11. A computing device in a virtualized computing infrastructure, comprising:

processing circuitry coupled to a memory device;

a virtual router configured for execution by the processing circuitry to:

receiving an Address Resolution Protocol (ARP) packet from a virtual execution element in a virtual network, the virtual execution element executing at the computing device; and

determine, based at least in part on the ARP packet, whether a virtual network information for the virtual execution element in the virtual network is known to the virtual router, including determining whether the virtual network information for the virtual execution element in the virtual network is stored in one or more tables of the virtual router for the virtual network, and in response to determining that the virtual network information for the virtual execution element in the virtual network is not stored in the one or more tables of the virtual router for the virtual network, determining that the virtual network information for the virtual execution element in the virtual network is not known to the virtual router; and

a virtual router agent configured for execution by the processing circuitry to:

in response to determining that the virtual network information of the virtual execution element in the virtual network is not known to the virtual router, perform learning of the virtual network information for the virtual execution element.

12. The computing device of claim 11 , wherein the virtual router agent is further configured for execution by the processing circuitry to:

periodically send ARP requests to the virtual IP address for the virtual execution element and the MAC address for the virtual execution element; and

in response to not receiving ARP replies to a specified number of consecutive ARP requests sent to the virtual IP address for the virtual execution element and the MAC address for the virtual execution element, determine that the virtual execution element is unreachable.

13. The computing device of claim 11 , wherein the virtual router agent is further configured for execution by the processing circuitry to:

establish a bidirectional forwarding and detection (BFD) session with the virtual execution element; and

determine, based on the BFD session, that the virtual execution element is unreachable.

14. The computing device of claim 11 , wherein the virtual network information for the virtual execution element comprises a virtual Internet Protocol (IP) address for the virtual execution element and a Media Access Control (MAC) address for the virtual execution element.

15. The computing device of claim 14 , wherein the virtual router agent is further configured for execution by the processing circuitry to:

store an association of the virtual IP address for the virtual execution element and the MAC address for the virtual execution element in one or more tables of the virtual router.

16. The computing device of claim 14 , wherein the virtual router is further configured for execution by the processing circuitry to:

receive a second ARP packet from a second virtual execution element executing at the computing device;

determine, based at least in part on the second ARP packet, the virtual IP address for the second virtual execution element in the virtual network and the MAC address for the second virtual execution element in the virtual network; and

in response to determining that the virtual IP address for the second virtual execution element matches the virtual IP address for the virtual execution element and that the MAC address for the second virtual execution element does not match the MAC address for the virtual execution element, determine that the virtual execution element has been deleted.

17. The computing device of claim 14 , wherein the virtual router is further configured for execution by the processing circuitry to:

receive, from a network controller for the virtualized computing infrastructure, a request to add a route associated with a second virtual IP address and a second MAC address in the virtual network; and

in response to determining that the second virtual IP address matches the virtual IP address for the virtual execution element and that the second MAC address does not match the MAC address for the virtual execution element, determine that the virtual execution element has been deleted.

18. A non-transitory computer-readable medium comprising instructions for causing a programmable processor of a computing device in a virtualized computing infrastructure to:

receive, by a virtual router executing at the computing device, an Address Resolution Protocol (ARP) packet from a virtual execution element in a virtual network, the virtual execution element executing at the computing device;

determine, based at least in part on the ARP packet, whether a virtual network information for the virtual execution element in the virtual network is known to the virtual router, including determining whether the virtual network information for the virtual execution element in the virtual network is stored in one or more tables of the virtual router for the virtual network, and in response to determining that the virtual network information for the virtual execution element in the virtual network is not stored in the one or more tables of the virtual router for the virtual network, determining that the virtual network information for the virtual execution element in the virtual network is not known to the virtual router; and

in response to determining that the virtual network information of the virtual execution element in the virtual network is not known to the virtual router, perform learning of the virtual network information for the virtual execution element.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2021
From: PILLAREDDY, SANGARSHAN; MARIAPPAN, YUVARAJA; DAVEY, JAMES NICHOLAS; MIRIYALA, PRASAD; ROBERTS, RICHARD; CORREIA, MARGARIDA; E S, NAGENDRA; ALI, HAJI MOHAMED ASHRAF
To: JUNIPER NETWORKS, INC.
Reel/Frame 054958/0328 →
Continuity (1)
Related Publication 20220210113A1 · Jun 30, 2022
Cited By (1)
US 12,665,787