IP Library Granted Patent US 11,575,600
Granted Patent B2
US 11,575,600 · App. 17/103,614 · Granted Feb 7, 2023

Tunnel-less SD-WAN

Inventors: Alex Markuze (Ramat Gan, IL); Chen Dar (Magshimim, IL); Aran Bergman (Givatayim, IL); Igor Golikov (Kfar Saba, IL); Israel Cidon (San Francisco, CA); Eyal Zohar (Shimshit, IL)
Assignee: VMWARE, INC.
H04L45/74H04L45/20H04L45/38H04L45/42
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,575,600
App. No.
17/103,614
Granted
Feb 7, 2023
Kind
B2
Abstract

In a novel tunnel-less SD-WAN, when an ingress node of the SD-WAN receives a new packet flow, it identifies the path of the flow through the SD-WAN, and sends an initial prepended set of SD-WAN header values before the first packet for the flow to the next hop along this identified path, rather than encapsulating each packet of the flow with encapsulating tunnel headers that store SD-WAN next hop data for the flow. The prepended set of SD-WAN header values are then used to not only forward the first packet through the SD-WAN, but also to create records at each subsequent hop, which are then used to forward subsequent packets of the flow through the SD-WAN. Instead of identifying the entire packet flow, the first hop in the SD-WAN does not identify the entire path for the packet flow in some embodiments, but just identifies the next hop, as each subsequent hop in the SD-WAN has the task of identifying the next hop through the SD-WAN for the packet flow. Also, in some embodiments, each hop also creates records for the reverse flow in order to automatically forward reply packets along a reverse route.

Claims (46)

1. A method of forwarding packets through a software-defined wide area network (SD-WAN), the method comprising:

receiving a first packet of a flow at an ingress forwarding node of the SD-WAN;

after receiving the first packet, (i) generating a set of SD-WAN header (SDH) values for the flow, each SDH value specifying a network address for a subsequent forwarding node in the SD-WAN through which the flow should traverse to reach a destination outside of the SD-WAN and (ii) sending the generated set of SDH values to a next forwarding node in the SD-WAN for the next forwarding node and any other subsequent forwarding nodes to use to forward the flow through the SD-WAN without using any encapsulating tunnel header to direct traversal of the flow through the SD-WAN;

sending the first packet to the next forwarding node in the SD-WAN; and

sending, to the next forwarding node in the SD-WAN, subsequent packets of the flow without sending the set of SDH values again for the subsequent packets.

2. The method of claim 1 , wherein the flow is a Transmission Control Protocol (TCP) flow, the method comprising performing a TCP split operation that comprises said generating and sending of the set of SDH values.

3. The method of claim 1 further comprising identifying a path through the SD-WAN based on header values of the first packet.

4. The method of claim 1 further comprising:

at each subsequent forwarding node in the SD-WAN, removing an SDH value that corresponds to the subsequent forwarding node from the set of SDH values and forwarding the remaining set of SDH values to a next subsequent forwarding node when there is a next subsequent forwarding node.

5. The method of claim 4 , wherein when there is not a next subsequent forwarding node, forwarding the flow from the subsequent forwarding node to the destination outside the SD-WAN.

6. The method of claim 4 , wherein the removed SDH value is a leading SDH value of the set of SDH values.

7. The method of claim 4 further comprising, at each of the subsequent forwarding nodes:

storing a set of rules based at least partly on the received set of SDH values, the set of rules associating the next subsequent forwarding node with the flow when there is a next subsequent forwarding node;

receiving the flow at the subsequent forwarding node; and

based on the set of rules, sending the flow to the next subsequent forwarding node.

8. The method of claim 4 further comprising, at each of the subsequent forwarding nodes:

splicing a pair of connections associated with the flow;

receiving the flow at the subsequent forwarding node through a first connection of the pair of connections; and

based on the splicing of the connections, forwarding the flow to the next subsequent forwarding node through the second connection when there is a next subsequent forwarding node.

9. The method of claim 8 , wherein a first forwarding node is a next subsequent forwarding node of a second forwarding node, the method further comprising:

receiving a reply flow in response to the flow at the first forwarding node; and

based on the splicing of the pair of connections of the first forwarding node, forwarding the reply flow to the second forwarding node through the first connection of the first forwarding node.

10. The method of claim 1 , wherein

sending the generated set of SDH values and sending the first packet to the next forwarding node in the SD-WAN comprises sending the generated set of SDH values with the first packet.

11. The method of claim 1 , wherein the sets of instructions for sending the generated set of SDH values and sending the first packet to the next forwarding node in the SD-WAN comprises a set of instructions for sending the generated set of SDH values before sending the first packet.

12. A non-transitory machine readable medium storing a program which when executed by at least one processing unit forwards packets through a software-defined wide area network (SD-WAN), the program comprising sets of instructions for:

receiving a first packet of a flow at an ingress forwarding node of the SD-WAN;

after receiving the first packet, (i) generating, for the flow, a set of one or more SD-WAN next hop values that specifies a set of one or more network addresses for a set of one or more subsequent forwarding nodes in the SD-WAN through which the flow should traverse to reach a destination outside of the SD-WAN and (ii) sending the generated set of SDH values to a next forwarding node in the SD-WAN for the next forwarding node to use to forward the flow through the SD-WAN;

sending the first packet to the next forwarding node in the SD-WAN; and

sending, to the next forwarding node in the SD-WAN, subsequent packets of the flow without sending the set of SDH values again for the subsequent packets.

13. The non-transitory machine readable medium of claim 12 , wherein the set of SDH values includes one next hop value specifying a network address of a subsequent forwarding node of the ingress forwarding node.

14. The non-transitory machine readable medium of claim 13 , wherein each subsequent forwarding node:

determines a next hop value, specifying a network address of a next subsequent forwarding node, by using, for the first packet, a set of original header values of the flow to identify the next subsequent forwarding node; and

creates a connection tracking record for the flow that stores the network address of the next subsequent forwarding node.

15. The non-transitory machine readable medium of claim 14 , wherein the connection tracking record associates a network address of the previous forwarding node with the network address of the next subsequent forwarding node.

16. The non-transitory machine readable medium of claim 15 , wherein, for a second packet of the flow, at each of a plurality of subsequent forwarding nodes, the subsequent forwarding node uses the connection tracking record to identify the network address of the next subsequent forwarding node.

17. The non-transitory machine readable medium of claim 14 , wherein each of the subsequent forwarding nodes:

splices a pair of connections associated with the flow using the connection tracking record;

receives the flow at the subsequent forwarding node through a first connection of the pair of connections; and

based on the splicing of the connections, forwards the flow to the next subsequent forwarding node through a second connection of the pair of connections when there is a next subsequent forwarding node.

18. The non-transitory machine readable medium of claim 17 , wherein a first forwarding node is a next subsequent forwarding node of a second forwarding node, wherein the first forwarding node:

receives a reply flow in response to the flow at the first forwarding node; and

based on the splicing of the pair of connections of the first forwarding node, forwards the reply flow to the second forwarding node through the first connection of the first forwarding node.

19. The non-transitory machine readable medium of claim 12 , wherein the set of one or more SD-WAN next hop values comprises two or more next hop values specifying all of the network addresses for the set of one or more subsequent forwarding nodes.

20. The non-transitory machine readable medium of claim 12 , wherein the flow is a Transmission Control Protocol (TCP) flow.

21. The non-transitory machine readable medium of claim 12 , wherein the sets of instructions for sending the generated set of SDH values and sending the first packet to the next forwarding node in the SD-WAN comprises a set of instructions for sending the generated set of SDH values with the first packet.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2020
From: MARKUZE, ALEX; DAR, CHEN; BERGMAN, ARAN; GOLIKOV, IGOR; CIDON, ISRAEL; ZOHAR, EYAL
To: VMWARE, INC.
Reel/Frame 054463/0281 →
Continuity (1)
Related Publication 20220166713A1 · May 26, 2022
Cited By (33)
US 12,218,800 US 12,218,845 US 12,237,990 US 12,250,114 US 12,261,777 US 12,267,364 US 12,316,524 US 12,335,131 US 12,355,655 US 12,368,676 US 12,375,403 US 12,401,544 US 12,425,332 US 12,425,335 US 12,425,347 US 12,425,395 US 12,483,968 US 12,489,672 US 12,506,678 US 12,507,120 US 12,507,148 US 12,507,153 US 12,526,183 US 12,549,465 US 12,563,438 US 12,568,039 US 12,587,468 US 12,603,827 US 12,603,848 US 12,632,330 US 12,652,217 US 12,659,719 US 12,719,782