# US 2021/0243250 A1 · Efficient virtual ip address management for service clusters

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

- Number: US 2021/0243250 A1
- Document ID: US20210243250A1
- Status: Published application
- Kind: A1
- Application number: 17/135,084
- Filed: 2020-12-28
- Published: 2021-08-05
- Earliest claimed: 2020-02-04
- Assignees: Nutanix, Inc.
- Applicants: Nutanix, Inc.
- Inventors: Harshit Agarwal; Tabrez Parvez Memon
- Web page: https://patentgrep.com/patent/US20210243250A1

## CPC

- H04L 41/0893: Assignment of logical groups to network elements
- H04L 41/0668: by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
- H04L 43/0817: by checking functioning
- H04L 43/12: Network monitoring probes
- H04L 61/103: across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
- H04L 61/5007: Internet protocol [IP] addresses
- H04L 67/1034: Reaction to server failures by a load balancer
- H04L 67/1036: Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
- H04L 69/321: Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
- H04L 69/324: in the data link layer [OSI layer 2], e.g. HDLC
- H04L 69/325: in the network layer [OSI layer 3], e.g. X.25 (H04L69/16 takes precedence)
- H04L 61/58: Caching of addresses or names
- H04L 67/563: Data redirection of data network streams
- H04L 2101/622: Layer-2 addresses, e.g. medium access control [MAC] addresses
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

One embodiment of the present invention provides a system that can manage access to a service from a cluster of computing nodes. An instance of the system can operate on a respective computing node. During operation, the system instance can identify an Internet Protocol (IP) address, which provides access to the service from the cluster of computing nodes to a client device at a client site. The system instance can select the computing node for hosting the IP address in the cluster of computing nodes based on a set of selection criteria. The selection is performed independently at the computing node. The system instance can then assign the IP address to the computing node. The assignment allows a request for the service to be directed to the computing node. Subsequently, the system instance can facilitate the service from the cluster of computing nodes based on the request.

## Claims

### Claim 1

A method for managing access to a service from a cluster of computing nodes, comprising:
identifying an Internet Protocol (IP) address, which provides access to the service from the cluster of computing nodes to a client device at a client site;
selecting a first computing node in the cluster of computer nodes for hosting the IP address in the cluster of computing nodes based on a set of selection criteria, wherein the selection is performed independently at the first computing node;
assigning the IP address to the first computing node, thereby allowing a request for the service to be directed to the first computing node; and
facilitating the service from the cluster of computing nodes based on the request.

### Claim 2 (depends on 1)

The method of claim 1, wherein assigning the IP address to the first computing node further comprises determining that the IP address is not duplicated in the cluster of computing nodes and the client site by sending a probe message.

### Claim 3 (depends on 1)

The method of claim 1, further comprising sending a gratuitous address resolution protocol (ARP) request with the IP address to the client site for clearing a respective local ARP cache.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
monitoring the service at the first computing node based on a monitoring service that monitors operational status of a respective service provided by the cluster of computing nodes; and
in response to determining a disruption to the service, un-hosting the IP address from the first computing node, thereby allowing a second computing node in the cluster of computing nodes to host the IP address.

### Claim 5 (depends on 4)

The method of claim 4, wherein the first computing node is operational and accessible from the client site while the service is disrupted.

### Claim 6 (depends on 4)

The method of claim 4, further comprising:
determining a disruption to the monitoring service; and
performing a fail-safe operation comprising one or more of:
restarting the monitoring service; and
un-hosting the IP address from the first computing node.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
determining that a second computing node in the cluster of computing nodes is selected as a service leader for the service, wherein the service leader is responsible for responding to a respective request for the service; and
un-hosting the IP address from the first computing node, thereby allowing the second computing node to host the IP address.

### Claim 8 (depends on 1)

The method of claim 1, wherein facilitating the service from the cluster includes one or more of:
providing the service from the first computing node and operating the first computing node on a service path of the request; and
redirecting the request to a second computing node capable of providing the service.

### Claim 9 (depends on 1)

The method of claim 1, wherein the IP address is a virtual IP address floating among the cluster of computing nodes; and
wherein the method further comprises:
receiving an ARP request for the IP address; and
sending an ARP response comprising a media access control (MAC) address of the first computing node.

### Claim 10 (depends on 1)

The method of claim 1, wherein the IP address is associated with one of:
the service, wherein a respective service provided by the cluster of computing nodes is associated with a corresponding IP address; and
a respective service provided by the cluster of computing nodes, wherein the IP address unifies service access from the cluster of computing nodes.

### Claim 11

A computing node in a cluster of computing nodes, comprising:
a processor;
a storage device; and
a memory coupled to the processor and storing instructions, which when executed by the processor cause the processor to perform a method managing access to a service from the cluster of computing nodes, the method comprising:
identifying an Internet Protocol (IP) address, which provides access to the service from the cluster of computing nodes to a client device at a client site;
selecting the computing node for hosting the IP address in the cluster of computing nodes based on a set of selection criteria, wherein the selection is performed independently at the computing node;
assigning the IP address to the computing node, thereby allowing a request for the service to be directed to the computing node; and
facilitating the service from the cluster of computing nodes based on the request.

### Claim 12 (depends on 11)

The computing node of claim 11, wherein assigning the IP address to the computing node further comprises determining that the IP address is not duplicated in the cluster of computing nodes and the client site by sending a probe message.

### Claim 13 (depends on 11)

The computing node of claim 11, wherein the method further comprises sending a gratuitous address resolution protocol (ARP) request with the IP address to the client site for clearing a respective local ARP cache.

### Claim 14 (depends on 11)

The computing node of claim 11, wherein the method further comprises:
monitoring the service at the computing node based on a monitoring service that monitors operational status of a respective service provided by the cluster of computing nodes; and
in response to determining a disruption to the service, un-hosting the IP address from the computing node, thereby allowing a second computing node in the cluster of computing nodes to host the IP address.

### Claim 15 (depends on 14)

The computing node of claim 14, wherein the computing node is operational and accessible from the client site while the service is disrupted.

### Claim 16 (depends on 14)

The computing node of claim 14, wherein the method further comprises:
determining a disruption to the monitoring service; and
performing a fail-safe operation comprising one of:
restarting the monitoring service; and
un-hosting the IP address from the computing node.

### Claim 17 (depends on 11)

The computing node of claim 11, wherein the method further comprises:
determining that a second computing node in the cluster of computing nodes is selected as a service leader for the service, wherein the service leader is responsible for responding to a respective request for the service; and
un-hosting the IP address from the computing node, thereby allowing the second computing node to host the IP address.

### Claim 18 (depends on 11)

The computing node of claim 11, wherein facilitating the service from the cluster includes one or more of:
providing the service from the computing node and operating the computing node on a service path of the request; and
redirecting the request to a second computing node capable of providing the service.

### Claim 19 (depends on 11)

The computing node of claim 11, wherein the IP address is a virtual IP address floating among the cluster of computing nodes; and
wherein the method further comprises:
receiving an ARP request for the IP address; and
sending an ARP response comprising a media access control (MAC) address of the computing node.

### Claim 20 (depends on 11)

The computing node of claim 11, wherein the IP address is associated with one of:
the service, wherein a respective service provided by the cluster of computing nodes is associated with a corresponding IP address; and
a respective service provided by the cluster of computing nodes, wherein the IP address unifies service access from the cluster of computing nodes.
