# US 10,313,178 B2 · Virtual network inter-container communication

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

- Number: US 10,313,178 B2
- Document ID: US10313178B2
- Status: Granted
- Kind: B2
- Application number: 15/228,471
- Filed: 2016-08-04
- Published: 2017-07-27
- Granted: 2019-06-04
- Earliest claimed: 2016-01-22
- Assignees: Equinix, Inc.
- Applicants: Equinix, Inc.
- Inventors: Parveen Kumar; Venkatachalam Rangasamy; Jaganathan Jeyapaul; Brian J. Lillie
- Web page: https://patentgrep.com/patent/US10313178B2

## CPC

- H04L 41/0654: using network fault recovery (ring fault isolation or reconfiguration in loop networks without recovery actions by a network management system H04L12/437)
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- H04L 12/4679: {Arrangements for the registration or de-registration of VLAN attribute values, e.g. VLAN identifiers, port VLAN membership}
- H04L 12/4683: {characterized by the protocol used}
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 41/5045: {Making service definitions prior to deployment}
- H04L 43/0817: by checking functioning
- H04L 43/10: Active monitoring, e.g. heartbeat, ping or trace-route
- H04L 43/20: the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
- H04L 45/021: Ensuring consistency of routing table updates, e.g. by using epoch numbers
- H04L 61/3015: Name registration, generation or assignment
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/51: Discovery or management thereof, e.g. service location protocol [SLP] or web services
- H04L 69/40: for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06)
- G06F 8/60: Software deployment
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- H04L 61/45: Network directories; Name-to-address mapping
- 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 disclosed for facilitating inter-container communications, via a cloud exchange, for containers executing at logically isolated networks. In one example, the techniques of the disclosure provide a method including sending, by a container to a cloud exchange via an application programming interface exposed by an interconnection platform of the cloud exchange, container registration data for the container, the container registration data including a network address for a host that executes the container and a container identifier for the container.

## Claims

### Claim 1

A method comprising:
sending, by a container executed by processing circuitry of a host computing device and to a cloud exchange via an application programming interface exposed by an interconnection platform of the cloud exchange, container registration data for the container, the container registration data comprising a network address for the host computing device that executes the container and a container identifier for the container.

### Claim 2 (depends on 1)

The method of claim 1, wherein the container identifier comprises one of a Transmission Control Protocol (TCP) port and a User Datagram Protocol (UDP) port.

### Claim 3 (depends on 1)

The method of claim 1, wherein the container comprises a user-space instance from a plurality of user-space instances that share an operating system executing on the host computing device.

### Claim 4 (depends on 1)

The method of claim 1, wherein the container executes at an enterprise network coupled to the cloud exchange to receive, via one or more virtual circuits, cloud services from one or more cloud service providers coupled to the cloud exchange.

### Claim 5 (depends on 4)

The method of claim 4, wherein the sending the container registration data comprises sending the container registration data via the one or more virtual circuits.

### Claim 6 (depends on 1)

The method of claim 1, wherein the container executes at a cloud service provider network coupled to the cloud exchange to provide, via one or more virtual circuits, a cloud service to one or more customers coupled to the cloud exchange.

### Claim 7 (depends on 6)

The method of claim 6, wherein the sending the container registration data comprises sending the container registration data via the one or more virtual circuits.

### Claim 8 (depends on 1)

The method of claim 1,
wherein the container comprises a first container, and
wherein the container registration data comprises first container registration data, the method further comprising:
receiving, by the first container from the cloud exchange, second container registration data for a second container; and
sending, by the first container to the second container based on the second container registration data, a data communication.

### Claim 9 (depends on 8)

The method of claim 8,
wherein the first container executes at a first private network coupled to the cloud exchange, and
wherein the second container executes at a second private network coupled to the cloud exchange.

### Claim 10 (depends on 9)

The method of claim 9,
wherein the first private network comprises an enterprise network for an enterprise customer of a cloud exchange provider for the cloud exchange, and
wherein the second private network comprises a cloud service for a cloud service provider customer of the cloud exchange provider for the cloud exchange.

### Claim 11 (depends on 9)

The method of claim 9,
wherein the first private network comprises a cloud service for a first cloud service provider customer of a cloud exchange provider for the cloud exchange, and
wherein the second private network comprises a cloud service for a second cloud service provider customer of the cloud exchange provider for the cloud exchange.

### Claim 12 (depends on 8)

The method of claim 8, further comprising:
determining, by the first container, a health of the second container at least in part by sending the data communication; and
redirecting application traffic from the second container to a third container in response to determining the health of second container.

### Claim 13

A method comprising:
receiving, by a cloud exchange executed by processing circuitry of at least one computing device and from a container executing at a private network coupled to the cloud exchange, container registration data for the container, the container registration data comprising a network address for a host computing device that executes the container and a container identifier for the container; and
storing, by the cloud exchange, the container registration data.

### Claim 14 (depends on 13)

The method of claim 13,
wherein the container comprises a first container, and
wherein the private network comprises a first private network, the method further comprising:
sending, by the cloud exchange to a second container executing at a second private network, the container registration data.

### Claim 15 (depends on 14)

The method of claim 14, further comprising:
storing data indicating an association between the first container and the second container,
wherein sending the container registration data comprises sending the container registration data based on data indicating the association.

### Claim 16 (depends on 14)

The method of claim 14, further comprising:
receiving, by the cloud exchange, an indication of the association from an enterprise.

### Claim 17 (depends on 13)

The method of claim 13, further comprising:
determining, by the cloud exchange, a health of the container at least in part by sending a data communication to the container, the data communication including the container registration data.

### Claim 18 (depends on 17)

The method of claim 17, further comprising:
in response to determining the container is not healthy, migrating the container to another private network.

### Claim 19 (depends on 17)

The method of claim 17, further comprising:
in response to determining the container is not healthy, redirecting application traffic from the container to another container executing at a different private network.

### Claim 20 (depends on 17)

The method of claim 17, further comprising:
storing, by the cloud exchange, state for the container indicating a state of one or more applications executing on the container,
wherein migrating the container to another private network comprising sending the state for the container to the another private network.

### Claim 21 (depends on 13)

The method of claim 13, further comprising:
configuring, by the cloud exchange, a virtual circuit to the private network, wherein receiving the container registration data comprises receiving the container registration data via the virtual circuit.

### Claim 22 (depends on 13)

The method of claim 13, further comprising:
sending, by the cloud exchange to the container based on the container registration data, a data communication.

### Claim 23

A host computing device comprising:
at least one processor operably coupled to a memory;
a kernel configured for execution by the at least one processor; and
a container configured for execution by the kernel, wherein the container comprises a network module configured to output container registration data to a cloud exchange via an application programming interface exposed by an interconnection platform of the cloud exchange, the container registration data comprising a network address for the host computing device that executes the container and a container identifier for the container.

### Claim 24

A cloud exchange comprising:
at least one computing device comprising processing circuitry;
at least one memory operably coupled to the processing circuitry;
a network; and
an interconnection platform configured for execution by the processing circuitry to configure the network to interconnect a plurality of private networks,
wherein the cloud exchange is configured for execution by the processing circuitry to receive, from a container executing at a private network of the plurality of private networks and via the interconnection platform, container registration data for the container, the container registration data comprising a network address for a host computing device that executes the container and a container identifier for the container, and
wherein the cloud exchange is configured for execution by the processing circuitry to store the container registration data in the memory.

### Claim 25

A method comprising:
transmitting, by a first container of a first private network of a plurality of private networks coupled to a cloud exchange, the first container executed by processing circuitry of a host computing device, and to a router of the cloud exchange, a first data communication to request an indication of a health of a second container of a second private network of the plurality of private networks coupled to the cloud exchange; and
receiving, by the first container and from the router, a second data communication originated by the second container of the second private network of the plurality of private networks coupled to the cloud exchange, the second data communication indicating the health of the second container.

### Claim 26 (depends on 25)

The method of claim 25, further comprising:
determining, by the first container based on the second data communication, the health of the second container; and
deploying, by the first container, a third container upon determining that the second container is unhealthy.

### Claim 27 (depends on 26)

The method of claim 26, wherein:
the first data communication comprises an echo request packet;
the second data communication comprises an echo response packet; and
determining, by the first container, the health of the second container comprises determining, by the first container, that the second container is unhealthy if the first container does not receive the echo response packet within a pre-determined time.

### Claim 28 (depends on 25)

The method of claim 25, wherein the first data communication comprises:
a container identifier of the second container; and
a network address for the host computing device executing at the second private network and hosting the second container.
