Pablo Camarillo - Software Engineer @ Cisco Systems Ahmed Abdelsalam – PhD student @ Gran Sasso Science Institute
FD.io VPP and Linux
SRv6 Net etwork Programming FD.io VPP and Linux Pablo Camarillo - - - PowerPoint PPT Presentation
SRv6 Net etwork Programming FD.io VPP and Linux Pablo Camarillo - Software Engineer @ Cisco Systems Ahmed Abdelsalam PhD student @ Gran Sasso Science Institute Who are we? Ah Ahmed Ab Abdelsalam Pablo lo Ca Camarillo illo PhD
Pablo Camarillo - Software Engineer @ Cisco Systems Ahmed Abdelsalam – PhD student @ Gran Sasso Science Institute
FD.io VPP and Linux
(CC) FOSDEM 2018 (CC) FOSDEM 2018
Pablo lo Ca Camarillo illo Software Engineer @ Cisco Systems pcamaril@cisco.com
Ah Ahmed Ab Abdelsalam PhD student @ Gran Sasso Science Institute ahmed.abdelsalam@gssi.it
(CC) FOSDEM 2018 (CC) FOSDEM 2018
1
SRv6 101
2
Deployment use-cases
3
SRv6 on FD.io VPP
4
SRv6 on Linux
5
SERA
(CC) FOSDEM 2018
(CC) FOSDEM 2018
IPv6
MPLS
(CC) FOSDEM 2018
% Web pages available over IPv6
Sources: 6lab.cisco.com – Web content Cisco VNI Global IP Traffic Forecast, 2016-2021
Global IPv6 traffic gr grew ew 241% in 2016 Globally IPv6 traffic wi will grow w 16 16-fo fold from 2016 to 2021 IPv6 wi will be 37% of total Internet traffic in 2021
(CC) FOSDEM 2018
(CC) FOSDEM 2018
IP IPv6 for reacha hability SR SR for r anything else
(CC) FOSDEM 2018
IP IPv6 for reacha hability
RS RSVP for FRR/T FRR/TE Horrendous states scaling in k*N^2 SR SRv6 for r Un Underl rlay Simplification through protocol reduction SLA through automated FRR and TE De-facto SDN architecture
(CC) FOSDEM 2018
IP IPv6 for reacha hability
Multiplicity of protocols and states hinder network economics
SR SRv6 for r Un Underl rlay Simplification, FRR, TE, SDN UDP+VxLAN Overlay Additional Protocol just for tenant ID NSH for NFV Additional Protocol and State
(CC) FOSDEM 2018
(CC) FOSDEM 2018
either local to NPU or app in VM/Container
Function Locator
(CC) FOSDEM 2018
either local to NPU or app in VM/Container
Argumen ents: o
al ar argumen ent b bits t to b be u e used ed o
by t that at S SID
Function Locator Args*
(CC) FOSDEM 2018
Next Segment
Locator 1 Function 1 Locator 1 Function 1 Locator 2 Function 2 Locator 3 Function 3 Locator 2 Function 2 Locator 3 Function 3
(CC) FOSDEM 2018
Next Segment
Locator 2 Function 2 Locator 1 Function 1 Locator 2 Function 2 Locator 3 Function 3 Locator 1 Function 1 Locator 3 Function 3
(CC) FOSDEM 2018
Next Segment
Locator 3 Function 3 Locator 1 Function 1 Locator 2 Function 2 Locator 3 Function 3 Locator 1 Function 1 Locator 2 Function 2
(CC) FOSDEM 2018
Lo Locator 1 Fu Func nction n 1 Lo Locator 2 Fu Func nction n 2 Lo Locator 3 Fu Func nction n 3
TC TCP, UDP DP, QUIC
Lo Locator 1 Fu Func nction n 1 Sou Source Address
Active Segment
IPv6 header Segment Routing Header IPv6 payload
(CC) FOSDEM 2018
“Global” Argument Metadata TLV
Se Segments ts Left Lo Locator 1 Fu Func nction n 1 Lo Locator 2 Fu Func nction n 2 Lo Locator 3 Fu Func nction n 3 TA TAG
(CC) FOSDEM 2018
Metadata TLV
Se Segments ts Left Lo Locator 1 Fu Func nction n 1 Lo Locator 2 Fu Func nction n 2 Lo Locator 3 Fu Func nction n 3 TA TAG
(CC) FOSDEM 2018
Metadata TLV
Se Segments ts Left Lo Locator 1 Fu Func nction n 1 Lo Locator 2 Fu Func nction n 2 Lo Locator 3 Fu Func nction n 3 TA TAG
(CC) FOSDEM 2018
(CC) FOSDEM 2018
A1 A1 A1:: A3 A3 A3:: A2 A2 A2:: A5 A5 A5:: A4 A4 A4::
50 50
A6 A6 A6:: A7 A7 A7:: A8 A8 A8::
Default metric 10 SR SR: A4 A4::1, A6 A6::1, A8 A8::
>VPP: show sr localsid LocalSID Behavior A6::1 End Total SR LocalSIDs: 1 >VPP: show sr localsid LocalSID Behavior A4::1 End Total SR LocalSIDs: 1
(CC) FOSDEM 2018
A1 A1 A1:: A3 A3 A3:: A2 A2 A2:: A5 A5 A5:: A4 A4 A4::
50 50
A6 A6 A6:: A7 A7 A7:: A8 A8 A8::
Default metric 10 SR SR: A4 A4::C5, A6 A6::1, A8 A8::
>VPP: show sr localsid LocalSID Behavior A6::1 End Total SR LocalSIDs: 1 >VPP: show sr localsid LocalSID Behavior A4::C5 End.X {TenGE0/1/0 A5::} Total SR LocalSIDs: 1
(CC) FOSDEM 2018
(CC) FOSDEM 2018
local link, node or SRLG failure
2 4 6 5 1
A5 A5::0 A5 A5::/64 Pr Pri → vi via 5 A2 A2::C4 C4 A5 A5::0 FR FRR → i insert A A2::C4 A5 A5::0 <50m <50mec FRR
100
(CC) FOSDEM 2018
Input Acquisition
Policy Instantiation
Algorithm
DC (BGP-SR)
10 10 11 11 12 12 13 13 14 14 2 4 6 5 7
WAN (IGP-SR)
3 1
PEER
Low Low La Lat, L Low B BW
50 50
Default ISIS cost metric: 10
<A1::1, A2::C4, A4::C7>
Low Low-La Latency to 7 7 fo for a application … …
(CC) FOSDEM 2018
1 2 4 V/ V/64 3 T/ T/64
IPv6 Hdr SA = A1 A1::0, DA = A2 A2::C4 Payload IPv6 Hdr SA = T::1, DA = V: V::2
Green Overlay V/64 via A2::C4
IPv6 Hdr SA = T::1, DA = V: V::2 Payload IPv6 Hdr SA = T::1, DA = V: V::2 Payload
(CC) FOSDEM 2018
unneeded overlay protocols
these protocols cannot solve
1 2 4 V/ V/64 3 T/ T/64
Green Overlay V/64 via A2::C4 with Latency
IPv6 Hdr SA = T::1, DA = V: V::2 Payload IPv6 Hdr SA = T::1, DA = V: V::2 Payload
3
IPv6 Hdr SA = A1 A1::0, DA = A3 A3::1 Payload IPv6 Hdr SA = T::1, DA = V: V::2 SR Hdr < A3 A3::1, A2::C4 > IPv6 Hdr SA = A1 A1::0, DA = A2 A2::C4 Payload IPv6 Hdr SA = T::1, DA = V: V::2 SR Hdr < A3::1, A2 A2::C4 >
(CC) FOSDEM 2018
Cod Codename Be Behavior End Endpoint [PSP/USP flavors] End.X Endpoint with Layer-3 cross-connect [PSP/USP flavors] End.B6 Endpoint bound to an SRv6 policy End.B6.Encaps Endpoint bound to an SRv6 Encapsulation policy End.DX6 Endpoint with decapsulation and IPv6 cross-connect (per-CE VPN label) End.DX4 Endpoint with decapsulation and IPv4 cross-connect (per-CE VPN label) End.DT6 Endpoint with decapsulation and specific IPv6 table lookup (per-VRF VPN label) End.DT4 Endpoint with decapsulation and specific IPv4 table lookup (per-VRF VPN label) End.DX2 Endpoint with decapsulation and Layer-2 cross-connect Cod Codename Be Behavior End Endpoint [PSP/USP flavors] End.X Endpoint with Layer-3 cross-connect [PSP/USP flavors] End.B6 Endpoint bound to an SRv6 policy End.B6.Encaps Endpoint bound to an SRv6 Encapsulation policy End.DX6 Endpoint with decapsulation and IPv6 cross-connect (per-CE VPN label) End.DX4 Endpoint with decapsulation and IPv4 cross-connect (per-CE VPN label) End.DT6 Endpoint with decapsulation and specific IPv6 table lookup (per-VRF VPN label) End.DT4 Endpoint with decapsulation and specific IPv4 table lookup (per-VRF VPN label) Cod Codename Be Behavior End Endpoint [PSP/USP flavors] End.X Endpoint with Layer-3 cross-connect [PSP/USP flavors] End.B6 Endpoint bound to an SRv6 policy End.B6.Encaps Endpoint bound to an SRv6 Encapsulation policy Cod Codename Be Behavior End Endpoint [PSP/USP flavors] End.X Endpoint with Layer-3 cross-connect [PSP/USP flavors]
(CC) FOSDEM 2018
(CC) FOSDEM 2018
Serv rvices are expressed with se segm gment nts
Packets from are steered through a sequence of services on their way to the server
S1 S1 S2 S2 S3 S3 D SR SR: S1 S1, C1 C1, S2 S2, S3 S3, D C1 C1
(CC) FOSDEM 2018
in the fabric
1 2 4 V/ V/64 3 T/ T/64 4
Ap App 76 VM VM
Se Server 5
5 3
Ap App 32 Co Container
Se Server 3
IPv6 HdrSA = A1 A1::0, DA = A3 A3::A3 A32 Payload IPv6 Hdr SA = T::1, DA = V: V::2 SR Hdr < A3 A3::A3 A32, A4::1, A5::A76, A2::C4 > IPv6 Hdr SA = T::1, DA = V: V::2 Payload
(CC) FOSDEM 2018
1 2 4 V/ V/64 3 T/ T/64 4
Ap App 76 VM VM
Se Server 5
5 3
Ap App 32 Co Container
Se Server 3
IPv6 Hdr SA = A1 A1::0, DA = A4 A4::1 Payload IPv6 Hdr SA = T::1, DA = V: V::2 SR Hdr < A3::A32, A4 A4::1, A5::A76, A2::C4 >
(CC) FOSDEM 2018
in the fabric
1 2 4 V/ V/64 3 T/ T/64 4
Ap App 76 VM VM
Se Server 5
5 3
Ap App 32 Co Container
Se Server 3
IPv6 HdrSA = A1 A1::0, DA = A5 A5::A7 A76 Payload IPv6 Hdr SA = T::1, DA = V: V::2 SR Hdr < A3::A32, A4::1, A5 A5::A7 A76, A2::C4 >
(CC) FOSDEM 2018
1 2 4 V/ V/64 3 T/ T/64 4
Ap App 76 VM VM
Se Server 5
5 3
Ap App 32 Co Container
Se Server 3
IPv6 Hdr SA = A1 A1::0, DA = A2 A2::C4 Payload IPv6 Hdr SA = T::1, DA = V: V::2 SR Hdr < A3::A32, A4::1, A5::A76, A2 A2::C4 > IPv6 Hdr SA = T::1, DA = V: V::2 Payload
(CC) FOSDEM 2018
SR-UnAware VNFs:
SR-Aware VNFs:
(CC) FOSDEM 2018
(CC) FOSDEM 2018
switch/router functionality (dataplane only)
Extremely fast Packet processing stack Open Source Runs on commodity CPU
(CC) FOSDEM 2018
S1 S1 D SR SR: S1 S1, C1 C1, S2 S2, S3 S3, D C1 C1 S2 S2 S3 S3
(CC) FOSDEM 2018
RFC2460: “A Routing header is not examined or processed until it reaches the node identified in the Destination Address field of the IPv6 header.”
Te TenGE GE0/1/0 Te TenGE GE0/2/0
VN VNF VP VPP E1 E1::
IPv6 Hdr SA = A: A::, DA = E1 E1::A Payload SR Hdr ( B::, C3::, E1 E1::A ) SL=2 IPv6 Hdr SA = A: A::, DA = B: B:: Payload SR Hdr ( B::, C3 C3::, E1::A ) SL=1 IPv6 Hdr SA = A: A::, DA = C3 C3:: Payload SR Hdr ( B::, C3 C3::, E1::A ) SL=1
>VPP: show sr localsid LocalSID Behavior E1::A End.AM {OIF: TenGE0/1/0, NH: 2001::a, IIF: TenGE0/2/0} Total SR LocalSIDs: 1
associated with End.AM
B::
segment C3 C3::
(CC) FOSDEM 2018
Te TenGE GE0/1/0 Te TenGE GE0/2/0
VN VNF VP VPP E1 E1::
IPv6 Hdr SA = A: A::, DA = B: B:: Payload
>VPP: show sr localsid LocalSID Behavior E1::B End.AD {OIF: TenGE0/1/0, NH: 2001::a, IIF: TenGE0/2/0} Total SR LocalSIDs: 1
associated with End.AD
tore outer IP and SR headers
d for IPv4 and d IPv6 traffic
er-ch chain dynamic c co configuration
IPv6 Hdr SA = C1 C1::, DA = E1 E1::C SR Hdr ( E2::, C2::, E1 E1::C ) SL=2 IPv6 Hdr SA = A::, DA = B: B:: Payload IPv6 Hdr SA = C1 C1::, DA = C2 C2:: SR Hdr ( E2::, C2 C2::, E1::C ) SL=1 IPv6 Hdr SA = A::, DA = B: B:: Payload
(CC) FOSDEM 2018
1.
Put the received packet in a shared memory region
2.
Perform SR processing on the host Pass a po point nter er of the inner packet to S2
3.
Perform SR processing on the host Pass a po point nter er of the inner packet to S3
4.
Move the packet from the shared memory into the output iface buffer ring
d for IPv4 and d IPv6 traffic
ical l achie ievable le performance S2 S2 S3 S3
(CC) FOSDEM 2018
(CC) FOSDEM 2018
(CC) FOSDEM 2018
All IPv6 addresses assigned to an SRv6-enabled interface are treated as local SID
sysctl –w net.ipv6.conf.all.seg6_enabled=1 sysctl –w net.ipv6.conf.<device>.seg6_enabled=1 ip -6 route add <prefix> encap seg6 mode <encapmode> segs <segments> dev <device>
(CC) FOSDEM 2018
SRv6 behaviors were supported: T.Encaps.L2, T.Insert4, T.Encaps4, End.X, End.T, End.DX2, End.DX4, End.DX6, End.DT6, End.B6, End.B6.Encaps.
ip -6 route add <segment> encap seg6local action <action> <params> \ dev <device> table localsid
(CC) FOSDEM 2018
external kernel module provides advanced Segment Routing functions.
implementation.
enable SR-unaware service functions to be included in an SRv6 service chain.
Netfilter Framework Pkt_in PRE_ROUTING POST_ROUTING FORWARD LOCAL_OUT LOCAL_IN Routing Local Process Local Process Routing Pkt_out SREXT Localsid table
(CC) FOSDEM 2018
(CC) FOSDEM 2018
(CC) FOSDEM 2018
capabilities.
packet.
(CC) FOSDEM 2018
F/ F/W
IPv6 Hdr SA = DA = Payload IPv6 Hdr SA=.., DA = … SR Hdr SID list TLV
F/ F/W + SR proxy xy
IPv6 Hdr SA = DA = Payload IPv6 Hdr SA=.., DA = … SR Hdr SID list TLV SR SR Pr Proxy
SE SERA
IPv6 Hdr SA = DA = Payload IPv6 Hdr SA=.., DA = … SR Hdr SID list TLV
SERA has a full view of SR Encapsulated packets
We can match all headers of a received packets
It has no way to analyze inner packet - matching capabilities limited to outer packet
SR Information is hidden from the firewall
(CC) FOSDEM 2018
(CC) FOSDEM 2018
utility implementation to support the new features:
to add rules that match based on SRH
(CC) FOSDEM 2018
$ ip6tables -m srh -h ........ srh match options: [!] --srh-next-hdr [!] --srh-hdr-len-eq [!] --srh-hdr-len-gt [!] --srh-hdr-len-lt [!] --srh-segs-left-eq [!] --srh-segs-left-gt [!] --srh-segs-left-lt [!] --srh-last-entry-eq [!] --srh-last-entry-gt [!] --srh-last-entry-lt [!] --srh-tag $ ip6tables -m srh -h ............. srh match options: [!] --inner6-src ip6_addr[/mask] [!] --inner6-dst ip6_addr[/mask] $ ip6tables -j SEG6 -h ............. SEG6 target options:
ACTION: go-next | skip-next | go-last
(CC) FOSDEM 2018
ip6tables -I INPUT -m inner6 --inner6-src fc00:a::/64 \
ip6tables -I INPUT -m inner6 --inner6-src fc00:a::/64 \
(CC) FOSDEM 2018
(CC) FOSDEM 2018
Ma Mar 2017 Ap Apr 2017 Ju Jun 2017 Au Aug 2017 2017 2018 2018 Ap Apr 2016 Ma May 2017
First SRv6 demo: Spray use-case
VPP ASR9k ASR1k
Fretta
First SRv6 HW demo in merchant sillicon VPN DP use-case
Cisco Live US SRv6 VPN
ASR1k ASR9k Fretta VPP+NFV BGP Control Plane
SD-WAN summit SRv6 for the SD-WAN
ASR1k
SRv6 VPN+NFV: MPLS World Con.
VPP Linux (sr srext)
Barefoot
SRv6 VPN HW demo
SR VPN InterOp
Fretta ASR9k ASR1k VPP Linux (srext) Ba Barefoot
More to come…
5G + Network slicing
Se Sep 2017 2017
(CC) FOSDEM 2018
(CC) FOSDEM 2018
Scalability Single protocol
NFV VPN FRR TE
Automation
(CC) FOSDEM 2018
www.segment-ro routing.n .net and check the latest demos
ft-fi filsfi fils-sp spri ring ng-srv6 srv6-ne network-pr progr gramming
your o
SRv6 a 6 aware a
There i is b
It’s e easy. Contact u us!
www.segment-routing.net
(CC) FOSDEM 2018
Ma Mar 2017 Ap Apr 2017 Ju Jun 2017 Au Aug 2017 2017 2018 2018 Ap Apr 2016 Ma May 2017
First SRv6 demo: Spray use-case
VPP ASR9k ASR1k
Fretta
First SRv6 HW demo in merchant sillicon VPN DP use-case
Cisco Live US SRv6 VPN
ASR1k ASR9k Fretta VPP+NFV BGP Control Plane
SD-WAN summit SRv6 for the SD-WAN
ASR1k
SRv6 VPN+NFV: MPLS World Con.
VPP Linux (sr srext)
Barefoot
SRv6 VPN HW demo
SR VPN InterOp
Fretta ASR9k ASR1k VPP Linux (srext) Ba Barefoot
More to come…
5G + Network slicing
Se Sep 2017 2017