# US 11,121,968 B2 · Systems and methods for dynamic routing on a shared IP address

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

- Number: US 11,121,968 B2
- Document ID: US11121968B2
- Status: Granted
- Kind: B2
- Application number: 16/389,338
- Filed: 2019-04-19
- Published: 2019-08-08
- Granted: 2021-09-14
- Earliest claimed: 2015-09-07
- Assignees: Citrix Systems, Inc.
- Applicants: Citrix Systems, Inc.
- Inventors: Sharvari Mithyantha
- Web page: https://patentgrep.com/patent/US11121968B2

## CPC

- H04L 45/46: {Cluster building}
- H04L 45/02: Topology update or discovery
- H04L 45/42: Centralised routing
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 43/00: Arrangements for monitoring or testing data switching networks
- H04L 43/0823: Errors, e.g. transmission errors
- H04L 43/0852: Delays
- H04L 43/0864: Round trip delays
- H04L 43/0876: Network utilisation, e.g. volume of load or congestion level
- H04L 43/10: Active monitoring, e.g. heartbeat, ping or trace-route
- H04L 45/74: Address processing for routing
- H04L 61/2514: between local and global IP addresses
- H04L 61/4511: using domain name system [DNS]
- H04L 61/5007: Internet protocol [IP] addresses
- H04L 67/00: Network arrangements or protocols for supporting network services or applications (user-to-user messaging H04L51/00; network arrangements, protocols or services for supporting real-time applications in data packet communications networks H04L65/00)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The present disclosure is directed towards systems and methods for dynamic routing on an IP address shared by a cluster of nodes. In an implementation, a first node of a cluster of nodes can receive a unicast routing protocol packet from a peer router. The unicast routing protocol packet can be addressed to a shared IP address established across the cluster of nodes. The cluster of nodes can be intermediary to a plurality of clients and a plurality of servers. The first node can identify a second node identified as a routing leader. The first node can steer the packet to the second node in response to determining that the routing protocol packet is a unicast routing protocol packet. The second node can be configured to advertise virtual IP address routes to the network over the routing adjacency and maintain routing adjacencies.

## Claims

### Claim 1

A method, comprising:
identifying, by a first device of a cluster of devices having a shared Internet protocol (IP) address, a routing leader among the cluster of devices, the routing leader configured to maintain routing adjacencies for the cluster of devices;
receiving, by the first device from a router, a packet addressed to the shared IP address, the packet transmitted from the router to at least two devices of the cluster of devices including the first device;
determining, by the first device, that the packet is a multicast IP routing protocol packet;
determining, by the first device, from routing tables maintained by the first device, that the multicast IP routing protocol packet was transmitted from the router to the at least two devices of the cluster of devices and not to the routing leader; and
forwarding, by the first device responsive to determining that the routing leader did not receive the multicast IP routing protocol packet, the multicast IP routing protocol packet to the routing leader of the cluster of devices to update the routing adjacencies based on the multicast IP routing protocol packet.

### Claim 2 (depends on 1)

The method of claim 1, further comprising advertising, by the routing leader to other devices not in the cluster of devices, the shared IP address as a next hop.

### Claim 3 (depends on 2)

The method of claim 2, wherein determining that the routing leader did not receive the multicast IP routing protocol packet comprises determining, by the first device, that routing information maintained by the first device indicates that the router is not directly connected to the routing leader; and
wherein forwarding the multicast IP routing protocol packet is responsive to determining that the routing information maintained by the first device indicates that the router is not directly connected to the routing leader.

### Claim 4 (depends on 1)

The method of claim 1, wherein the routing leader communicates with other devices of the cluster of devices to update respective routing tables to include information in the multicast IP routing protocol packet.

### Claim 5 (depends on 1)

The method of claim 1, further comprising receiving, by the first device, a response generated by the routing leader responsive to the multicast IP routing protocol packet and communicating, by the first device, the response to the router.

### Claim 6 (depends on 1)

The method of claim 1, further comprising determining, by the first device, that a second packet received by the first device and addressed to the shared IP address is a unicast IP routing protocol packet; and
forwarding, by the first device, the unicast IP routing protocol packet to the routing leader of the cluster of devices.

### Claim 7 (depends on 1)

The method of claim 1, further comprising selecting, by the cluster of devices, a second device of the cluster of devices as the routing leader based at least on a number of linksets to which the second device is a member.

### Claim 8 (depends on 1)

The method of claim 1, wherein the cluster of devices is configured to appear as a single routing entity on a network.

### Claim 9 (depends on 1)

The method of claim 1, wherein the routing leader is configured to advertise routing information of the cluster of devices to the router.

### Claim 10

A system, comprising:
a first device of a cluster of devices having a shared Internet protocol (IP) address, wherein the first device is configured to:
identify a routing leader among the cluster of devices, the routing leader configured to maintain routing adjacencies for the cluster of devices;
receive, from a router, a packet addressed to the shared IP address;
determine that the packet is a multicast IP routing protocol packet;
determine, from routing tables maintained by the first device, that the multicast IP routing protocol packet was transmitted from the router to the at least two devices of the cluster of devices and not to the routing leader; and
forward, responsive to determining that the routing leader did not receive the multicast IP routing protocol packet, the multicast IP routing protocol packet to the routing leader of the cluster of devices to update the routing adjacencies based on the multicast IP routing protocol packet.

### Claim 11 (depends on 10)

The system of claim 10, wherein the routing leader is further configured to advertise the shared IP address to other devices not in the cluster of devices as a next hop.

### Claim 12 (depends on 10)

The system of claim 10, wherein the routing leader is further configured to communicate with other devices of the cluster of devices to update respective routing tables to include information in the multicast IP routing protocol packet.

### Claim 13 (depends on 10)

The system of claim 10, wherein the first device is further configured to receive a response generated by the routing leader responsive to the multicast IP routing protocol packet, and communicate the response to the router.

### Claim 14 (depends on 10)

The system of claim 10, wherein the first device is further configured to:
determine that a second packet received by the first device and addressed to the shared IP address is a unicast IP routing protocol packet and not the multicast IP routing protocol packet; and
forward the unicast IP routing protocol packet to the routing leader of the cluster of devices.

### Claim 15 (depends on 10)

The system of claim 10, wherein the cluster of devices are configured to select a second device of the cluster of devices as the routing leader based at least on a number of linksets to which the second device is a member.

### Claim 16 (depends on 10)

The system of claim 10, wherein the cluster of devices is configured to appear as a single routing entity on a network.

### Claim 17 (depends on 10)

The system of claim 10, wherein the routing leader is further configured to advertise routing information of the cluster of devices to the router.

### Claim 18 (depends on 10)

The system of claim 10, wherein the first device is further configured to determine that the routing leader did not receive the multicast IP routing protocol packet by determining that routing information maintained by the first device indicates that the router is not directly connected to the routing leader; and
wherein the first device is further configured to forward the multicast IP routing protocol packet to the routing leader responsive to determining that the routing information maintained by the first device indicates that the router is not directly connected to the routing leader.

### Claim 19

A method, comprising:
identifying, by a first device of a cluster of devices having a shared Internet protocol (IP) address, a routing leader among the cluster of devices, the routing leader configured to maintain routing adjacencies for the cluster of devices;
receiving, by the first device from a router, a packet addressed to the shared IP address;
determining, by the first device, that the packet is a multicast IP routing protocol packet;
determining, by the first device, that the routing leader did not receive the multicast IP routing protocol packet by determining that the first device did not receive a broadcast message from the routing leader in response to the multicast IP routing protocol packet within a time period; and
forwarding, by the first device, the multicast IP routing protocol packet to the routing leader responsive to determining that the first device did not receive the broadcast message from the routing leader in response to the multicast IP routing protocol packet within the time period.

### Claim 20

A system, comprising:
a first device of a cluster of devices having a shared Internet protocol (IP) address, wherein the first device is configured to:
identify a routing leader among the cluster of devices, the routing leader configured to maintain routing adjacencies for the cluster of devices;
receive, from a router, a packet addressed to the shared IP address;
determine that the packet is a multicast IP routing protocol packet;
determine that the routing leader did not receive the multicast IP routing protocol packet by determining that the first device did not receive a broadcast message from the routing leader in response to the multicast IP routing protocol packet within a time period; and
forward the multicast IP routing protocol packet to the routing leader responsive to determining that the first device did not receive the broadcast message from the routing leader in response to the multicast IP routing protocol packet within the time period.
