# US 2018/0026873 A1 · Express route transmissions between virtual machines and cloud service computing devices

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

- Number: US 2018/0026873 A1
- Document ID: US20180026873A1
- Status: Published application
- Kind: A1
- Application number: 15/216,602
- Filed: 2016-07-21
- Published: 2018-01-25
- Earliest claimed: 2016-07-21
- Assignees: Alibaba Group Holding Limited
- Applicants: Alibaba Group Holding Limited
- Inventors: Gang Cheng; Jiesheng Wu
- Web page: https://patentgrep.com/patent/US20180026873A1

## CPC

- H04L 61/2514: between local and global IP addresses
- H04L 12/4633: {Interconnection of networks using encapsulation techniques, e.g. tunneling}
- H04L 12/4641: {Virtual LANs, VLANs, e.g. virtual private networks [VPN] (LAN interconnection over a bridge based backbone H04L12/462; encapsulation techniques H04L12/4633; routing of packets H04L45/00; packet switches H04L49/00; virtual private networks for security H04L63/0272)}
- H04L 45/243: using M+N parallel active paths
- H04L 67/1004: Server selection for load balancing
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

An apparatus includes a virtual machine (VM) that is accessible via a cloud service. The VM has a virtual switch via which data is routed to and from the VM. The virtual switch is configured to: access an express route flow table which indicates whether a particular front end computing device has previously received a first data packet from the VM, and determine, based on the express route flow table, whether to encapsulate a second data packet from the VM destined for the particular front end computing device for an express route so as to bypass a load balancer of the cloud service.

## Claims

### Claim 1

A system, comprising:
a plurality of front end computing devices of a cloud service;
a virtual machine (VM) having access to a virtual switch via which data is transmitted, the virtual switch being configured to route a first data packet that includes:
one or more fields, and
one or more encapsulation fields that encapsulate the one or more fields of the first data packet, the one or more encapsulation fields including a tunneling protocol identifier (ID) associated with the cloud service and a first destination internet protocol (IP) address associated with the cloud service; and
a load balancer configured to:
receive the first data packet,
perform a destination network address translation (DNAT) on the first data packet by replacing the first destination IP address with a second destination IP address to produce a DNAT first data packet, the second destination IP address being associated with a particular front end computing device of the plurality of front end computing devices, and
send the DNAT first data packet to the particular front end computing device,
wherein the virtual switch of the VM is configured to:
access an express route flow table which indicates that the particular front end computing device has previously received the first data packet from the VM, and
determine, based on the express route flow table, whether to encapsulate a second data packet from the VM destined for the particular front end computing device for an express route so as to bypass the load balancer.

### Claim 2 (depends on 1)

The system of claim 1, wherein the cloud tunneling protocol comprises Virtual Extensible Local Area Network (VXLAN) tunneling technology.

### Claim 3 (depends on 1)

The system of claim 1, wherein the VM sends the first data packet to the virtual switch.

### Claim 4 (depends on 3)

The system of claim 3, wherein the express route flow table further indicates one or more destination IP addresses that are mapped to one or more front end computing devices designated as express route destinations for data packets, and
wherein, when determined that the express route flow table does not indicate the destination IP address of a particular data packet, the virtual switch:
encapsulates the one or more fields of the particular data packet with the one or more encapsulation fields to produce an encapsulated particular data packet, the encapsulating including using, based at least in part on the determining that the express route flow table does not indicate the destination IP address of the particular data packet, a first IP address associated with the load balancer as the first destination IP address of the one or more encapsulation fields, and
sends the encapsulated particular data packet to the load balancer.

### Claim 5 (depends on 4)

The system of claim 4, wherein the front end computing device is configured to:
receive the DNAT first data packet from the load balancer during a first time period that occurs after the load balancer performs the DNAT on the first data packet, and
receive, during a second time period after the first time period, an encapsulated second data packet directly via the express route between the VM and the front end computing device.

### Claim 6

An apparatus, comprising:
a virtual machine (VM) that is accessible via a cloud service, the VM having a virtual switch via which data is routed to and from the VM,
wherein the virtual switch is configured to:
access an express route flow table which indicates whether a particular front end computing device has previously received a first data packet from the VM, and
determine, based on the express route flow table, whether to encapsulate a second data packet from the VM destined for the particular front end computing device for an express route so as to bypass a load balancer of the cloud service.

### Claim 7 (depends on 6)

The apparatus of claim 6, wherein, when determined that the second data packet is destined for the particular front end computing device via the express route, the virtual switch is further configured to perform encapsulation of the second data packet, with Virtual Extensible Local Area Network (VXLAN) tunneling technology, using an IP address of the VM and an IP address of the particular front end computing device.

### Claim 8 (depends on 6)

The apparatus of claim 6, wherein the VM sends the first data packet to the virtual switch.

### Claim 9 (depends on 6)

The apparatus of claim 6, wherein the express route flow table further indicates one or more destination IP addresses that are mapped to one or more front end computing devices designated as express route destinations for data packets, and
wherein, when determined that the express route flow table does not indicate the destination IP address of a particular data packet, the virtual switch:
encapsulates one or more fields of the particular data packet with one or more encapsulation fields to produce an encapsulated particular data packet, the encapsulating including using, based at least in part on the determination that the express route flow table does not indicate the destination IP address of the particular data packet, a first IP address associated with the load balancer as the first destination IP address of the one or more encapsulation fields, and
sends the encapsulated particular data packet to the load balancer.

### Claim 10 (depends on 6)

The apparatus of claim 6, wherein the load balancer of the cloud service is configured to:
receive the first data packet,
perform a destination network address translation (DNAT) on the first data packet by replacing a first destination IP address with a second destination IP address to produce a DNAT first data packet, the second destination IP address being associated with the particular front end computing device of a plurality of front end computing devices, and
send the DNAT first data packet to the particular front end computing device.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein the particular front end computing device is configured to:
receive the DNAT first data packet from the load balancer during a first time period that occurs after the load balancer performs the DNAT on the first data packet, and
receive, during a second time period after the first time period, an encapsulated second data packet directly via the express route between the VM and the particular front end computing device.

### Claim 12

A method, comprising:
accessing, via a virtual switch, an express route flow table which indicates whether a particular front end computing device has previously received a first data packet from a virtual machine (VM) in a cloud service, and
determining, based on the express route flow table, whether to encapsulate a second data packet from the VM destined for the particular front end computing device for an express route so as to bypass one or more load balancers of the cloud service.

### Claim 13 (depends on 12)

The method of claim 12, wherein the first data packet has one or more fields including a source internet protocol (IP) address associated with the VM and a first destination IP address associated with the cloud service, and
wherein the method further comprises:
receiving the first data packet;
encapsulating, based at least in part on a tunneling protocol, the second data packet to produce an encapsulated data packet that has one or more encapsulation fields including a second destination IP address corresponding to the particular front end computing device; and
sending, based at least in part on the tunneling protocol, the encapsulated data packet to the particular front end computing device via the express route that bypasses the one or more load balancers.

### Claim 14 (depends on 13)

The method of claim 13, wherein the tunneling protocol comprises Virtual Extensible Local Area Network (VXLAN) tunneling technology.

### Claim 15 (depends on 14)

The method of claim 14, wherein the one or more encapsulation fields further include a VXLAN identifier (ID) associated with the public cloud service.

### Claim 16 (depends on 13)

The method of claim 13, wherein the encapsulating is performed by a virtual switch.

### Claim 17 (depends on 13)

The method of claim 13, wherein:
in the one or more fields of the first data packet, the source IP address is a private IP address of the VM and the first destination IP address is a public IP address of the cloud service,
in the one or more encapsulation fields of the encapsulated data packet, the second destination IP address is a private IP address of the computing device, and
the one or more encapsulation fields of the encapsulated data packet further include a tunneling protocol identifier (ID) associated with the cloud service.

### Claim 18 (depends on 12)

The method of claim 12, further comprising determining that the particular front end computing device has been designated as an express route destination.

### Claim 19 (depends on 18)

The method of claim 18, wherein the express route flow table further indicates one or more IP addresses that are mapped to one or more computing devices designated as express route destinations for data packets, and
wherein the determining that the particular front end computing device has been designated as an express route destination is based at least in part on the accessing the express route flow table.

### Claim 20 (depends on 12)

The method of claim 12, further comprising:
receiving, via the virtual switch, a response data packet that indicates a private IP address of the particular front end computing device as a source of the response data packet; and
designating the particular front end computing device as an express route destination based at least partly in response to the receiving the response data packet.
