IP Library Granted Patent US 11,064,032
Granted Patent B1
US 11,064,032 · App. 16/930,646 · Granted Jul 13, 2021

Application-aware routing in network address translation environments

Inventors: Guangxiang Yang (Nanjing, CN); Zhichao Ding (Nanjing, CN); Yun Zhong (Nanjing, CN)
Assignee: Trend Micro Incorporated
H04L67/141H04L12/28H04L45/74H04L61/2007H04L61/2038H04L61/256H04L63/0236H04L63/166H04L67/10H04L69/22H04L69/326
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 11,064,032
App. No.
16/930,646
Granted
Jul 13, 2021
Kind
B1
Abstract

A network device has a Local Area Network (LAN) port and several Wide Area Network (WAN) ports. The network device detects a computing device that is connected to the LAN port initiating establishment of a TCP connection. The network device creates a TCP socket that establishes the TCP connection with the computing device and inspects TCP packets on the TCP connection to identify a cloud application associated with the TCP packets. The network device creates another TCP socket that establishes a TCP connection to the identified cloud application by way of a WAN port that is designated to be an output port for the identified cloud application. A routing path is created between the LAN port and the designated WAN port. Subsequent TCP packets originated by the computing device for the identified cloud application are forwarded along the routing path.

Claims (60)

1. A method to be performed by a network device that comprises a Local Area Network (LAN) port and a plurality of Wide Area Network (WAN) ports, the method comprising:

detecting initiation of establishment of a first Transport Control Protocol (TCP) connection from a first computing device that is connected to the LAN port of the network device;

establishing the first TCP connection between the first computing device and the network device, wherein the first computing device and the network device are endpoints of the first TCP connection;

inspecting a first set of TCP packets on the first TCP connection to identify a cloud application that is associated with the first set of TCP packets;

identifying a designated WAN port among the plurality of WAN ports of the network device that is designated as an output port of TCP packets associated with the cloud application;

establishing, through the designated WAN port, a second TCP connection between the network device and the cloud application, wherein the network device and the cloud application are endpoints of the second TCP connection;

creating a routing path between the LAN port and the designated WAN port internally in the network device using a conntrack feature of a LINUX kernel networking stack;

receiving, on the LAN port, a second set of TCP packets associated with the cloud application from the first computing device; and

forwarding the second set of TCP packets along the routing path internally in the network device.

2. The method of claim 1 , wherein establishing the first TCP connection between the first computing device and the network device comprises:

creating a first TCP socket in the network device; and

establishing the first TCP connection between the first computing device and the first TCP socket.

3. The method of claim 2 , wherein establishing the second TCP connection between the network device and the second computing device comprises:

creating a second TCP socket in the network device; and

establishing the second TCP connection between the second TCP socket and the second computing device.

4. The method of claim 3 , further comprising:

deleting the first and second TCP sockets.

5. The method of claim 1 , wherein identifying the designated WAN port among the plurality of WAN ports of the network device comprises:

finding a routing rule that indicates routing TCP packets associated with the cloud application to the designated WAN port.

6. The method of claim 1 , further comprising:

inspecting the second set of TCP packets for cybersecurity on a node that is connected to the designated WAN port.

7. The method of claim 1 , wherein inspecting the first set of TCP packets on the first TCP connection to identify the cloud application comprises:

inspecting a payload packet transmitted on the first TCP connection.

8. A network device comprising:

a Local Area Network (LAN) port;

a plurality of Wide Area Network (WAN) ports;

a processor; and

a memory storing instructions that, when executed by the processor, cause the network device to:

detect initiation of establishment of a first Transport Control Protocol (TCP) connection from a computing device that is connected to the LAN port;

establish the first TCP connection between the computing device and the network device, wherein the computing device and the network device are endpoints of the first TCP connection;

inspect a first set of TCP packets on the first TCP connection to identify a cloud application that is associated with the first set of TCP packets;

identify a designated WAN port among the plurality of WAN ports that is designated as an output port of TCP packets associated with the cloud application;

establish through the designated WAN port a second TCP connection between the network device and the cloud application;

create a routing path between the LAN port and the designated WAN port internally in the network device using a conntrack feature of a LINUX kernel networking stack;

receive on the LAN port a second set of TCP packets associated with the cloud application; and

forward the second set of TCP packets along the routing path internally in the network device.

9. The network device of claim 8 , wherein the instructions stored in the memory, when executed by the processor, cause the network device to establish the first TCP connection by creating a first TCP socket in the network device and establishing the first TCP connection between the first computing device and the first TCP socket.

10. The network device of claim 9 , wherein the instructions stored in the memory, when executed by the processor, cause the network device to establish the second TCP connection by creating a second TCP socket in the network device and establishing the second TCP connection between the second TCP socket and the second computing device.

11. The network device of claim 10 , wherein the instructions stored in the memory, when executed by the processor, cause the network device to delete the first and second TCP sockets.

12. The network device of claim 8 , wherein the instructions stored in the memory, when executed by the processor, cause the network device to identify the designated WAN port by finding a routing rule that indicates routing TCP packets associated with the cloud application to the designated WAN port.

13. The network device of claim 8 , wherein the instructions stored in the memory, when executed by the processor, cause the network device to inspect a payload packet transmitted on the first TCP connection to identify the cloud application.

14. A method to be performed by a network device that comprises a Local Area Network (LAN) port and a plurality of Wide Area Network (WAN) ports, the method comprising:

detecting initiation of establishment of a Transport Control Protocol (TCP) connection between a first computing device that is connected to the LAN port of the network device and an application that is running on a second computing device;

before transmitting any TCP packet from the computing device to the application, identifying the application by inspecting a payload packet transmitted by the computing device to the application;

identifying a designated WAN port among the plurality of WAN ports of the network device that is designated to output TCP packets associated with the application; and

after identifying the designated WAN port, forwarding subsequent TCP packets transmitted by the first computing device to the application from the LAN port of the network device to the designated WAN port internally in the network device using a conntrack feature of a LINUX kernel networking stack.

15. The method of claim 14 , wherein identifying the designated WAN port among the plurality of WAN ports of the network device comprises:

finding a routing rule that indicates routing TCP packets associated with the application to the designated WAN port.

16. The method of claim 14 , wherein identifying the application by inspecting the payload packet transmitted by the computing device to the application comprises:

establishing the TCP connection between the first computing device and a first TCP socket in the network device; and

inspecting the payload packet transmitted by the first computing device on the TCP connection.

17. The method of claim 16 , wherein forwarding the subsequent TCP packets transmitted by the first computing device to the application from the LAN port of the network device to the designated WAN port comprises:

establishing another TCP connection between a second TCP socket in the network device and the second computing device;

creating a routing path between the LAN port and the designated WAN port; and

forwarding the subsequent TCP packets along the routing path internally in the network device.

18. The method of claim 17 , further comprising:

deleting the first and second TCP sockets.

19. The method of claim 14 , wherein the second computing device is part of a cloud computing platform and the application is a cloud application.

20. The method of claim 14 , further comprising:

inspecting the subsequent TCP packets for cybersecurity at a node that is connected to the designated WAN port.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2020
From: YANG, GUANGXIANG; DING, ZHICHAO; ZHONG, YUN
To: TREND MICRO INCORPORATED
Reel/Frame 053329/0245 →
Cited By (31)
US 12,212,586 US 12,217,079 US 12,219,048 US 12,219,053 US 12,244,627 US 12,244,634 US 12,267,326 US 12,277,216 US 12,278,819 US 12,278,825 US 12,278,840 US 12,278,897 US 12,284,220 US 12,287,899 US 12,353,474 US 12,395,488 US 12,406,071 US 12,411,937 US 12,411,957 US 12,443,720 US 12,443,722 US 12,489,781 US 12,495,049 US 12,505,200 US 12,506,755 US 12,524,550 US 12,531,881 US 12,547,765 US 12,579,251 US 12,645,785 US 12,688,277