Presentation given at MPLS+SDN+NFVWORLD 2019 in Paris that shows how network architects can leverage the support for IPv6 Segment that is included in the Linux kernel to develop new end-to-end services that use IPv6 Segment Routing on clients, routers and servers.
3. Controlling end-to-end paths
• Why do enterprise network operators want to
control end-to-end paths ?
– Quality of Service
• Delay, throughput, …
– Cost
• Avoid using expensive WAN links for non-critical flows
– Security
• Ensure that sensitive traffic remains protected
8. Type of Service routing
Multi-topology routing
• Included in OSPFv2 and enhanced since
R1
R4
R3
R5
R2 R7
R8 R9
100
9. Software Defined Networking
• Centralised solution leveraging Openflow
– Provides full end-to-end path control
but with per-flow state on routers/switches
R1
R4
R3
R5
R2 R7
R8 R9
100
Controller
creates path by
configuring all
routers
10. Can we do better ?
• End hosts should be able to use any network
path without requiring state on routers
R1
R4
R3
R5
R2 R7
R8 R9
100
12. Segment Routing
• A radical simplification of MPLS networks,
initially for service providers
• Basic principles
– Data plane is unchanged (32 bits shim header)
– Control plane becomes much simpler
• LDP
• RSVP-TE
• BGP
• OSPF or ISIS Simple extension
13. Segment Routing in one slide
• Each router has a label advertised by the IGP
– Packets follow shortest path to top label
R1
R4
R3
R5
R2 R7
R8 R9
100
3:7
3:7 3
:
7
8:4:7:3 8:4:7:3
8:4:7:3 8:4:7:3
8:4:7:3
14. Segment Routing use cases
• Initially for service providers
– Traffic engineering
• Segment Routing can enforce any path like RSVP-TE in
traditional MPLS networks
• Most paths only require a few labels
– Fast Reroute
• Various techniques to recover from link and node failures
– Monitoring and OAM
15. IPv6 only enterprise networks
• IPv6 is inevitable in enterprise networks
• First step is dual-stack, but it is costly to operate
dual-stack networks
• Agile companies will move to IPv6 networks
– IBM: goo.gl/rTA2qK
– Linkedin : goo.gl/gJPgq6
– Microsoft : goo.gl/vqJVEC
16. IPv6 Segment Routing
• Differences with regular Segment Routing
– 128 bits IPv6 addresses are used to encode
intermediate nodes
• Router loopback addresses
• Network interface addresses
• Endhost addresses
– New IPv6 Extension Header inside each packet
– Specific TLV fields
18. IPv6 Segment Routing
extension header
• Tags
– Allow to flexibly tag the packets that belong to the
same packet class
• SRH Type Length Values
– Padding TLV
– HMAC TLV
19. IPv6 Segment Routing support
Implementation Status Router/endhost
Linux (since v4.14) Production Router and Endhost
Cisco (IOS XR and IOS XE) Production (IOS XR) Router
Fd.io Production Router
Barefoot Prototype Router
Juniper Prototype Router
Huawei Production Router
21. Is a pure end-to-end solution possible
?
• Endhosts need to set SRH on their UDP/TCP
packets ?
• How can they learn the SRH to be used for a
specific flow ?
struct ipv6_sr_hdr ∗srh ;
int srh_len ;
srh_len = build_srh(&srh) ;
fd = socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP);
setsockopt(fd, IPPROTO_IPV6, IPV6_RTHDR, srh, srh_len);
22. How can endhosts learn the most
appropriate path ?
• Endhosts participate to enterprise routing
– OSPF, BGP-LS, …
– Provides visibility, but difficult to support policies
R1
R4
R3
R5
R2 R7
R8 R9
23. Software Resolved Networks
• Principle
– Clients learn SRH from DNS resolver/controller
that has full visibility on network topology and
load
R1
R4
R3
R5
R2 R7
R8 R9
server
Q: server ? 10 Mbps
Computes
path,
returns
PathID
A: server ? 2001:… PathID 123
SRH[123]
SRH[2->3->…]
SRH[2->3->…]
SRH[2->3->…]
Updates
pathID into
SR path
28. IPv6 Segment Routing
Network Programming
• IPv6 SR enables more than non-shortest paths
– Each node advertises one or more prefixes
R4 R5
R2 R7
R8 R9
IGP : 2001:…:4/40
FCT1:param
FCT2:param
Locator Function Param
C. Filsfils et al., SRv6 Network Programming, draft-filsfils-spring-srv6-
network-programming-03, Dec. 2017
29. eBPF
bytecode
Realising Network Programming :
the power of eBPF
Application
verifier
K
E
R
N
E
L
bpf syscall
map
eBPF
bytecode
eBPF
VM
M. Xhonneux et al., Leveraging eBPF for programmable network functions
with IPv6 Segment Routing, Proc. Conext 2018
30. Conclusion
• Segment Routing was designed for SP
– Traffic engineering, fast reroute, OAM, …
• IPv6 Segment Routing is more than simply the
IPv6 variant of Segment Routing
– Endhosts can participate in IPv6 Segment Routing
making end-to-end paths a possibility
– Network programming will bring efficient in-
network functions
31. Bibliography
• David Lebrun and Olivier Bonaventure. Implementing IPv6 Segment
Routing in the Linux Kernel. ANRW'2017, July 2017.
• David Lebrun, Mathieu Jadin, François Clad, Clarence Filsfils and
Olivier Bonaventure. Software Resolved Networks: Rethinking
Enterprise Networks with IPv6 Segment Routing. Symposium on
SDN Research 2018.
• Mathieu Xhonneux, Fabien Duchene, and Olivier Bonaventure.
Leveraging eBPF for programmable network functions with IPv6
Segment Routing. Conext 2018.
• Mathieu Xhonneux, and Olivier Bonaventure. Flexible failure
detection and fast reroute using eBPF and SRv6. 2018 14th
International Conference on Network and Service Management
(CNSM). IEEE, 2018.
• Fabien Duchêne, David Lebrun and Olivier Bonaventure. SRv6Pipes:
enabling in-network bytestream functions. IFIP Networking 2018.
• See https://www.segment-routing.org