Note: VXLAN have been implemented in this way
Download
Report
Transcript Note: VXLAN have been implemented in this way
UDP Encapsulation for IP Tunneling
draft-yong-tsvwg-udp-4-ip-tunneling-01
Lucy Yong, Xiaohu Xu
March 2013 Orlando FL
Background
• IP Infrastructure Networks carry tunneled traffic
– Transit nodes are not aware of tunneled traffic/protocols
– Tunneled traffic may be IP or non-IP packets
– Some tunneled layer protocols already deployed
• Network overlay example: IPv6 over IPv4, GRE, etc
• Network virtualization overlay: MPLS VPN, VXLAN, NVGRE, etc
• Existing Tunneling solutions
– IP-in-IP [RFC2003]
– GRE [RFC2784]
– L2TPv3 [RFC3931]
2
Background Cont.
• IP Networks are built on parallelized capacity
– e.g. multiple 10G links bundled together as a mx10G link
– equal cost multiple paths (ECMP) is available to one end
• operator desire to use all the paths carrying the tunneled traffic w/
the same tunnel end point
• IP Networks already support ECMP and LAG
– Hashing based load distribution is the common practice
• IP header and TCP/UDP header is used for ECMP load distribution
i.e. (five tuple)
• packets with the same five tuple is carried on the same path,
which ensures no packet re-ordering
• UDP src and dst ports are used as entropy in the load distribution
3
Problem Statement
• Tunneled traffic may be carried over IP network
where ECMP/LAG is required
– To avoid tunneled flow packets re-ordering, IP network
MUST keep a tunneled flow in the same path
• solution for this is to have an entropy field in packets for IP network
with ECMP, in which a tunneled flow packets is assigned to the same
entropy value
• Solution weakness for IP network with ECMP
– IP-in-IP [RFC2003] does not have a place for entropy info
– GRE [RFC2784] has an entropy field but requires transit router
special processing
– L2TPv3 [RFC3931] has the same capability and problem as GRE
4
What is in this draft?
• Specify a generic UDP encapsulation method for any
tunneled layer protocol over IP networks w/ ECMP
– Achieve it w/o any change in IP network transit nodes
• the same LB method for both host based apps. and tunneled apps.
– Have a flow entropy field in UDP header
• UDP src and dst ports are commonly used as entropy in IP network
• tunneled packets w/ the same entropy value carried through the same
path in IP network
• may map one or more tunneled flows to the same value
– Have a way to identify tunneled protocol in the UDP header
• needed in order to support any tunneled layer protocol
– Achieve it w/o any change of tunneled layer protocols
• Specify tunnel endpoint process procedures and error
handling
5
UDP Encapsulation for IP Tunneling
• UDP source port is used as the flow entropy field
– may be set to any value by the tunnel ingress
– Varying the value according to the payload flow will enable load
balancing within IP networks
• UDP destination port is set to indicate the tunneled layer
protocol that is registered under IANA
• Other UDP header fields remain the same as in [RFC768]
• RECOMMEND that the UDP checksum field is set to zero.
0
1
2
3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
Source Port = entropy
| Dest Port = protocol type
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
UDP Length
|
UDP Checksum
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
~
Payload
~
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
6
UDP Header Usage in this draft
•
UDP port usage here is different from before
–
–
•
•
Not for demultplexing transport connection at end point
Nor identifying an upper layer service
Header does not provide transport function for
upper layer application
UDP ports are to provide flow entropy and the
tunneled protocol type
–
–
UDP ports have been used as entropy in IP network
The latter is necessary in order to support any tunneled
layer protocol
Note: VXLAN have been implemented in this way
7
Comment from Joe Touch
Alternative ways to indicate tunneled layer protocol type
A:
– Use one UDP dst. port to indicate the service for
underlying IP network ECMP
– Use a shim header in the payload to indicate the payload
protocol type that are registered under IANA
– This allows an IP tunnel carrying multiple layer protocols
B:
– Tunnel end point always signals the tunneled protocol type
ahead
– This only applies when each IP tunnel carries one
tunneled protocol
8
Draft Contributors
Edward Crabbe
Google, Inc.
Vishwas Manral
Hewlett-Packard Corp.
Yangbin Fan
China Telecom
John Drake
Adrian Farrel
Juniper Networks
Carlos Pignataro
Cisco System
Yiu Lee
Comcast
9
Next Step
• Welcome comment and feedback on this
• Determine the proper way to indicate
tunneled protocol
– Each option has pros and cons
– Authors prefer the option described in the draft
because VXLAN already implements this way
• Seek WG adoption of this
10