US 12,381,807 B2
Host routing with virtual machine mobility
Alton Lo, Freemont, CA (US); Ian McCloghrie, Santa Clara, CA (US); and Navdeep Bhatia, Santa Clara, CA (US)
Assigned to Arista Networks, Inc., Santa Clara, CA (US)
Filed by Arista Networks, Inc., Santa Clara, CA (US)
Filed on Oct. 21, 2021, as Appl. No. 17/507,289.
Prior Publication US 2023/0132016 A1, Apr. 27, 2023
Int. Cl. H04L 45/02 (2022.01); G06F 9/455 (2018.01); H04L 61/103 (2022.01); H04L 61/59 (2022.01); H04L 101/622 (2022.01)
CPC H04L 45/02 (2013.01) [G06F 9/45558 (2013.01); H04L 45/04 (2013.01); H04L 61/103 (2013.01); H04L 61/59 (2022.05); G06F 2009/45595 (2013.01); H04L 2101/622 (2022.05)] 20 Claims
OG exemplary drawing
 
1. A method for supporting virtual machine (VM) mobility between network devices connected to a network, the method being executed by a first network device among the network devices that is connected to a first VM executing on a first server and comprising:
receiving, from a second network device among the network devices that is connected to a second VM executing on a second server, a route establishment request comprising an internet protocol (IP) address of the second VM, a media access control (MAC) address of the second VM, and a MAC address of the second network device;
initiating, in response to receiving the route establishment request, programming of a connection to the second VM, wherein the programming of the connection to the second VM comprises:
removing, from a network address table stored by the first network device, all entries matching the MAC address of the second VM; and
programming a route to the second VM, wherein the programmed route contains the MAC address of the second network device;
intercepting, after the programming of the connection to the second VM, a broadcast request transmitted by the first VM;
transmitting, in response to intercepting the broadcast request, a MAC address of the first network device to the first VM;
receiving from the first VM, in response to transmitting the MAC address of the first network device to the first VM, network traffic comprising:
the IP address of the second VM as an IP destination address; and
the MAC address of the first network device as a MAC destination address;
initiating, in response to receiving the network traffic, execution of a routing lookup to:
rewrite, based on the programmed route, the MAC destination address from the MAC address of the first network device to the MAC address of the second network device; and
encapsulate the network traffic with a tunnel header to generate encapsulated network traffic; and
transmitting the encapsulated network traffic to the second network device.