IP Library Granted Patent US 10,164,822
Granted Patent B2
US 10,164,822 · App. 15/216,499 · Granted Dec 25, 2018

Flatnet failover control

Inventors: Sanchaita Datta (Salt Lake City, UT); Bhaskar Ragula (Salt Lake City, UT); Sankhadip Sengupta (Salt Lake City, UT)
Assignee: FatPipe, Inc.
H04L41/0654H04L41/0659H04L47/125H04L61/103H04L61/2592H04L63/0428
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,164,822
App. No.
15/216,499
Granted
Dec 25, 2018
Kind
B2
Abstract

Failover controllers help maintain user-perceived continuous connectivity for users of a geographically dispersed flat network when part of that network becomes unavailable, even though flat network packets are not WAN-routable. One such controller has local and remote flat network ports, at least one WAN port, and failover capability to WAN(s) utilizing encapsulation when the flat network is partially or fully unavailable. The failover procedure uses a packet origin table built automatically from incoming packets and from double-tunneled ARP requests. A monitor indicates whether the flat network is fully available (up) or not fully available (down). Controller software updates the packet origin table, and directs packets between ports depending on flatnet status, the packet origin table's content, and any packet handling enhancements such as load balancing, affinity enforcement, quality of service maintenance, packet traffic shaping, packet policy application, firewall operation, reverse firewall operation, encryption/decryption, and/or compression/decompression.

Claims (37)

1. A flatnet failover controller, comprising:

a flatnet local port connectable to a local portion of a flatnet to transmit packets between the local portion of the flatnet and the flatnet failover controller;

a flatnet remote port connectable to a remote portion of the same flatnet to transmit packets between the remote portion of the flatnet and the flatnet failover controller;

at least one WAN port;

a packet origin table residing in a computer-readable memory in the flatnet failover controller;

a packet handler operable with at least one digital processor of the flatnet failover controller as follows on at least one packet received on at least one of the ports:

(a) when a flatnet connection is up and the packet was received on one of the flatnet ports, then (i) update the packet origin table with an identifier of a source host of the packet and an identifier of whichever port the packet was received on, (ii) ignore the packet when the packet is traveling from a host in the local portion of the flatnet to another host in the local portion of the flatnet, and (iii) otherwise pass the packet through toward the other flatnet port,

(b) when the flatnet connection is down and the packet was received on the flatnet local port, then (i) ignore the packet when the packet is traveling from a host in the local portion of the flatnet to another host in the local portion of the flatnet, and (ii) otherwise submit the packet for IP encapsulation and transmission over a WAN port,

(c) when the flatnet connection is down and the packet was received on a WAN port, then (i) when the packet origin table contains a physical address for a host identified in the packet by an IP address, place that physical address in the packet and send the packet toward the flatnet local port, and (ii) when the packet origin table does not contain a physical address for a host identified in the packet by an IP address then use Address Resolution Protocol to obtain said physical address, and then place that physical address in the packet and send the packet toward the flatnet local port.

2. The flatnet failover controller of claim 1 , wherein the flatnet local port is connected to the local portion of the flatnet, the flatnet remote port is connected to the remote portion of the same flatnet, and the local portion of the flatnet is geographically separated from the remote portion of the same flatnet in that the two portions do not reside in the same building.

3. The flatnet failover controller of claim 1 , wherein the flatnet local port is connected to the local portion of the flatnet, the flatnet remote port is connected to the remote portion of the same flatnet, and the local portion of the flatnet is geographically separated from the remote portion of the same flatnet in that the two portions do not reside in the same postal code area.

4. The flatnet failover controller of claim 1 , wherein the flatnet local port is connected to the local portion of the flatnet, the flatnet remote port is connected to the remote portion of the same flatnet, the local portion of the flatnet is geographically separated from the remote portion of the same flatnet, and any nontrivial division of flatnet host IP addresses by subnet results in at least one subnet which contains geographically separated hosts of the flatnet.

5. The flatnet failover controller of claim 1 , comprising at least two WAN ports, and wherein the packet handler further comprises a load balancer which is operable to balance packet traffic between the at least two WAN ports at least when the flatnet connection is down.

6. The flatnet failover controller of claim 1 , wherein the packet handler further comprises at least one of the following: a load balancer, an affinity enforcer, a quality of service maintainer, a packet traffic shaper, a packet policy applier, a firewall, or a reverse firewall.

7. The flatnet failover controller of claim 1 , wherein the packet handler further comprises an encrypter which is operable to encrypt packets submitted for transmission over a WAN port of the controller differently than packets which are submitted for transmission over a flatnet port of the controller.

8. The flatnet failover controller of claim 1 , wherein the packet handler is further operable to update the packet origin table with an identifier of a source host of the packet and an identifier of whichever port the packet was received on when the flatnet connection is down.

9. The flatnet failover controller of claim 1 , wherein the packet handler is operable to encapsulate an Address Resolution Protocol packet in a first encapsulation thereby producing an encapsulated ARP packet, and to then submit the encapsulated ARP packet for IP encapsulation and transmission over a WAN port.

10. The flatnet failover controller of claim 9 , wherein the packet handler is operable to encapsulate an Address Resolution Protocol packet in a first encapsulation thereby producing an encapsulated ARP packet which is one of the following: a UDP packet, a TCP packet, an ICMP packet.

11. The flatnet failover controller of claim 1 , wherein the packet handler is operable to perform IP encapsulation by encapsulating a packet using at least one of the following protocols: Generic Routing Encapsulation, IP in IP.

12. The flatnet failover controller of claim 1 , wherein the controller comprises multiple processing threads, and the packet handler is operable to perform different functions on different threads, and the functions comprise at least two of the following: processing packets received on a given port, processing packets sent over a given port, encrypting packet payloads, decrypting packet payloads, compressing packet payloads, decompressing packet payloads.

13. The flatnet failover controller of claim 1 , in combination with a second such flatnet failover controller, wherein the second such flatnet failover controller flatnet local port is connected to the remote portion of the flatnet, and the two flatnet remote ports are connected to one another via the flatnet.

14. The flatnet failover controller of claim 1 , in combination with a second such flatnet failover controller, wherein the second such flatnet failover controller flatnet local port is connected to the remote portion of the flatnet, the two flatnet remote ports are connected to one another via the flatnet, and the flatnet failover controllers are geographically separated from each other in that they do not reside in the same postal code area.

15. A flatnet failover process performed with a flatnet failover controller, also referred to here as “the controller”, the process comprising the steps of:

when the controller is not detecting an availability failure of a remote portion of a flatnet and the controller receives a packet on a flatnet port of the controller, then the controller not passing the packet through toward another flatnet port of the controller when the packet is traveling from a host in a local portion of the flatnet to another host in the local portion of the flatnet, and otherwise the controller passing the packet through toward another flatnet port of the controller;

when the controller is not detecting a flatnet remote portion availability failure and the controller receives a packet on a WAN port of the controller, then when the controller has a physical address for a host identified in the packet by an IP address, the controller placing that physical address in the packet and sending the packet toward a flatnet local port, and when the controller does not have a physical address for a host identified in the packet by an IP address then using Address Resolution Protocol or Neighbor Discovery Protocol or both to obtain said physical address, and then placing that physical address in the packet and sending the packet toward the flatnet local port; and

when the controller is detecting a flatnet remote portion availability failure and the controller receives a flatnet packet on a flatnet local port of the controller which is connected to the flatnet local portion, the flatnet packet having a destination address, and the flatnet packet is not addressed to travel from a host in the flatnet local portion to another host in the flatnet local portion, then the controller performing an IP encapsulation on the flatnet packet, which produces an encapsulated IP packet, and the controller transmitting the encapsulated IP packet toward the flatnet remote portion over a WAN port of the controller.

16. The flatnet failover process of claim 15 , further comprising the controller load balancing multiple packets between at least two WAN ports of the controller.

17. The flatnet failover process of claim 15 , further comprising at least one of the following steps:

the controller shaping packet traffic based on a user-specified policy;

the controller discarding packets based on a user-specified policy;

the controller maintaining a user-specified quality of service for multiple packets which are transmitted through the controller.

18. The flatnet failover process of claim 15 , further comprising at least one of the following steps:

the controller encrypting at least a portion of the flatnet packet before transmitting the encapsulated IP packet toward the flatnet remote portion over the WAN port of the controller; or

the controller compressing at least a portion of the flatnet packet before transmitting the encapsulated IP packet toward the flatnet remote portion over the WAN port of the controller;

encapsulating an Address Resolution Protocol packet in a first encapsulation thereby producing an encapsulated ARP packet, and then encapsulating the encapsulated ARP packet with an IP header.

19. The flatnet failover process of claim 15 , wherein performing an IP encapsulation on the flatnet packet comprises encapsulating the flatnet packet using a Generic Routing Encapsulation header.

20. The flatnet failover process of claim 15 , further comprising performing different functions on different threads within the controller, and wherein the functions comprise at least two of the following: processing packets received on a given port, processing packets sent over a given port, encrypting packet payloads, decrypting packet payloads, compressing packet payloads, decompressing packet payloads.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Feb 25, 2025
From: CELTIC BANK CORPORATION
To: CELTIC BANK CORPORATION
Reel/Frame 070321/0022 →
SECURITY INTEREST Recorded Jan 30, 2023
From: FATPIPE NETWORKS PRIVATE LIMITED
To: CELTIC BANK CORPORATION
Reel/Frame 062525/0613 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2016
From: SENGUPTA, SANKHADIP; DATTA, SANCHAITA; RAGULA, BHASKAR
To: FATPIPE, INC.
Reel/Frame 039804/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2016
From: DATTA, SANCHAITA; RAGULA, BHASKAR; SENGUPTA, SANKHADIP
To: FATPIPE, INC.
Reel/Frame 039215/0854 →
Continuity (3)
Continuation PCTUS2014041229 · Jun 6, 2014
Continuation 14172708 · Feb 4, 2014
Related Publication 20160330070A1 · Nov 10, 2016