rethinking kubernetes networking with srv6 and contiv vpp
play

Rethinking kubernetes networking with SRv6 and Contiv-VPP - PowerPoint PPT Presentation

FOSDEM 20 Rethinking kubernetes networking with SRv6 and Contiv-VPP Abdelsalam, Cisco Systems ; ; Daniel Bernier, Bell Canada ; Ah Ahmed Ab ; Rastislav Szabo, Filip Gs Gschwandtner, , Pantheon.tech ; ; Mi Miroslaw Wa Walukiewicz, ,


  1. FOSDEM ’20 Rethinking kubernetes networking with SRv6 and Contiv-VPP Abdelsalam, Cisco Systems ; ; Daniel Bernier, Bell Canada ; Ah Ahmed Ab ; Rastislav Szabo, Filip Gs Gschwandtner, , Pantheon.tech ; ; Mi Miroslaw Wa Walukiewicz, , Intel FOSDEM 2020

  2. Agend nda • Kubernetes networking • SRv6 – Introduction to SRv6 – Kubernetes networking with SRv6 • Contiv-VPP – Introduction to Contiv-VPP – SRv6 support in Contiv-VPP • Accelerating SRv6 with Intel N3000 smartNIC FOSDEM 2020

  3. Kuberne netes ne networking ng (1) • Kubernetes does not provide any solution for handling containers networking – It offloads networking to third-party certified plugins called CNI plugins vs 1 vs 2 • Connectivity B:B:B:1:1:0:C:3/128 B:B:B:1:1:0:C:2/128 B:B:B:1:1:0:C:1/128 B:B:B:2:2:0:C:2/128 B:B:B:2:2:0:C:3/128 B:B:B:2:2:0:C:1/128 – Create an interface inside the pod – Connect the pod interface to the fabric – Allocate the Pod IP • Reachability K8s-worker-node K8s-worker-node Make Pod IP reachable by the whole cluster. – FOSDEM 2020

  4. Kuberne netes ne networking ng (2) • Problem statement – All your Containers need IP addresses – We do not have more enough IPv4 addresses • Solution – IPv6 https://ripe78.ripe.ne ht net/present ntations ns/39-2019 2019-05 05-23 23-bgp2 bgp2018.pdf pdf https://twitter.com/ripenc ht ncc/status/1198977232452145152 FOSDEM 2020

  5. Kuberne netes ne networking ng (3) • Problem statement – Pod-to-Pod – Network policy – Kubernetes services – Ingress – Service chaining – Inter-cluster, hybrid cloud, multi-cloud, … • Solution – SRv6 FOSDEM 2020

  6. Kuberne netes ne networking ng (4) • Problem statement – Dataplane for fast packet I/O > Kernel forwarding > XDP > VPP ht https://arxiv.org/pdf/2001.06182v1.pdf • Solution – VPP – smartNIC (accelerated VPP) ht https://www.int ntel.la/cont ntent nt/dam/www/programmable/us/en/ n/pdfs/liter ature/wp/wp-01295 at 01295-hc hcl-se segment-ro routing-ov over-ip ipv6-ac accelerat ation- us using-in intel-fp fpga-pr progr grammabl ble-ac accelerat ation-ca card-n3 n3000.pdf FOSDEM 2020

  7. SRv6 FOSDEM 2020

  8. Segment nt Routing ng • Source Routing – A node steers a packet through an ordered list of instructions, called "segments". – Each segment has a segment identifier (SID) based on the dataplane instantiation – the topological and service (NFV) path is encoded in packet header • Scalability – the network fabric does not hold any per-flow state for TE or NFV • Simplicity – automation: TILFA sub-50msec FRR – protocol elimination: LDP, RSVP-TE, NSH, VXLAN… • End-to-End – DC, Metro, WAN FOSDEM 2020

  9. Tw Two dataplane ne ins nstant ntiations ns MPLS - SRMPLS • leverage the mature MPLS HW with only SW upgrade • 1 SID = 1 MPLS label • SID list = MPLS label stack Segment Routing IPv6 – SRv6 • leverages RFC8200 provision for source routing extension header • 1 SID = 1 IPv6 address • defines a new IPv6 extension header, called SRH. • SID list = an address list in the SRH FOSDEM 2020

  10. Open-Source Networking Stacks SR SRv6 Ec Ecosyste tem Network Equipment Manufacturers Merchant Silicon Smart NIC Open-Source Applications NFV Partners SERA Pyroute2 FOSDEM 2020

  11. SRv6 Network programming ng • The SRv6 Network Programming framework enables a network operator or an application to specify a packet packet processing program by encoding a sequence of instructions in the IPv6 packet header. • Each instruction is implemented on one or several nodes in the network and identified by an SRv6 Segment Identifier in the packet. • IETF standardization in progress – https://tools.ietf.org/html/draft-ietf-spring-srv6-network-programming-08 FOSDEM 2020

  12. Network ins nstruction Locator Function • 128-bit SRv6 SID – Locator: routed to the node performing the function – Function: any possible function either local to NPU or app in VM/Container – Flexible bit-length selection FOSDEM 2020

  13. Network Program in the Packet Header IPv6 header Source Address So Locator 1 Lo Fu Func nction on 1 Segment Active Segment Lo Locator 1 Fu Func nction on 1 Routing Lo Locator 2 Func Fu nction on 2 Header Locator 3 Lo Fu Func nction on 3 IPv6 payload TCP, UD TC UDP, QUI UIC FOSDEM 2020

  14. SR SRv6 Header TAG TA Se Segments Left Lo Locator 1 Fu Func nction on 1 Locator 2 Lo Fu Func nction on 2 Lo Locator 3 Fu Func nction on 3 Metadata TLV FOSDEM 2020

  15. SRv6 beha haviors specs summary He Headend Be Behavior Us Use-cas case H.Encaps SR Headend with Encapsulation in an SRv6 Policy L3 Traffic H.Encaps.L2 H.Encaps Applied to Received L2 Frames L2 traffic En Endpoint Be Behavior Us Use-cas case End Endpoint TE (underlay) End.X Endpoint with Layer-3 cross-connect End.DX6 Endpoint with decapsulation and IPv6 cross-connect IPv6 L3VPN (overlay) End.DT6 Endpoint with decapsulation and specific IPv6 table lookup End.DX4 Endpoint with decapsulation and IPv4 cross-connect IPv4 L3VPN (overlay) End.DT4 Endpoint with decapsulation and specific IPv4 table lookup End.DX2 Endpoint with decapsulation and Layer-2 cross-connect L2VPN (overlay) End.AS Endpoint to SR-unaware APP via static proxy End.AD Endpoint to SR-unaware APP via dynamic proxy Service chaining End.AM Endpoint to SR-unaware APP via masquerading proxy FOSDEM 2020

  16. T/ T/64 Overlay 3 SA = T::1, DA = V: V::2 IPv6 Hdr Payload • Automated Green Overlay 1 V/64 • No tunnel to configure via A2::C4 • Simple IPv6 Hdr SA = A1 A1::0 , DA = A2 A2::C4 • Protocol elimination IPv6 Hdr SA = T::1, DA = V: V::2 Payload • Efficient • SRv6 for everything 2 IPv6 Hdr SA = T::1, DA = V: V::2 Payload 4 V/64 V/ FOSDEM 2020

  17. T/64 T/ Overlay with Underlay Control 3 SA = T::1, DA = V: V::2 IPv6 Hdr Payload • SRv6 does not only eliminate Green Overlay 1 unneeded overlay protocols V/64 IPv6 Hdr SA = A1 A1::0 , DA = A3 A3::1 via A2::C4 • SRv6 solves problems that SR Hdr < A3 A3::1 , A2::C4 > with Latency IPv6 Hdr SA = T::1, DA = V: V::2 these protocols cannot solve Payload 3 IPv6 Hdr SA = A1 A1::0 , DA = A2 A2::C4 SR Hdr < A3::1, A2 A2::C4 > IPv6 Hdr SA = T::1, DA = V: V::2 Payload 2 IPv6 Hdr SA = T::1, DA = V: V::2 Payload 4 V/64 V/ FOSDEM 2020

  18. Kubernetes networking with SRv6 FOSDEM 2020

  19. kuberne netes ne networking ng (current ntly) • CNI plugins are responsible for networking in kubernetes – Load Balancing à Linux iptables NAT / VPP NAT – P ort Forwarding à Linux iptables NAT / VPP NAT – Network Policy à Linux iptables firewall/VPP ACLs – Overlay networking à VXLAN/IP-in-IP/GENEVE/GRE/... – Service chaining à stitching of interfaces/VXLAN tunnels • The result – NAT everywhere – Complex network policy model that relies on container IPs – iptables everywhere which uses non scalable linear search matching – Service chaining is very complex “nearly impossible” – Inter-cluster communication, hybrid cloud, multi-cloud, network wide policy ??? FOSDEM 2020

  20. kuberne netes ne networking ng (IPv6 + SRv6) • IPv6 for reachability • SRv6 for everything – Overlay with no extra protocols à SRv6 Encap + Decap – Scalable network policy model à Leveraging SRH TAG – Port forwarding à An IPv6 address per application – Load Balancing à One SR policy + multiple SID lists – Service chaining à Out-of-box using the SRH SID list – Inter-cluster, hybrid cloud, multi-cloud, … à SRv6 + NSM FOSDEM 2020

  21. Network policy using ng SRv6 • Scalable policy table • Fully integrated with the overlay • Independent of container IP’s Spine2 Spine1 Policies table src dst action Red Blue ACCEPT Red Green DROP Leaf2 Leaf1 Leaf3 SA: Vs1 , DA: Vs2 SA: Vs1 , DA: Vs2 SRH: [TAG]=Red SRH: [TAG]=Red SA: R1 , DA: B3 SA: R1 , DA: B3 vS2 vS1 vS3 Payload Payload SA: R1 , DA: B3 SA: R1 , DA: B3 G2 R2 B2 G1 B3 R1 B1 R3 G3 Payload Payload Compute-2 Compute-1 Compute-3 FOSDEM 2020

  22. Contiv-VPP CNI Intro FOSDEM 2020

  23. Contiv-VPP CNI • Uses FD.io VPP with DPDK as the data-plane for packet forwarding • Kube-proxy implemented in the user space (on VPP) • Production-ready CNI (passes all k8s conformance tests) • Swiss army knife CNI for cloud-native networking deployments : • Multiple network interfaces per pod • Multiple isolated L2/L3 networks • Service chaining between pods for CNF (Cloud-Native Network Functions) deployments • IPv6 support • SRv6 support

  24. Contiv-VPP Data Plane Kubernetes node Other Kubernetes nodes Pod 1 Pod 2 VPP Interconnection Fabric Contiv vSwitch pod

  25. Multiple Pod Interfaces & Custom Networks --- apiVersion: contivpp.io/v1 kind: CustomNetwork metadata: name: l2net spec: type: L2 --- kind: Pod metadata: name: linux-cnf1 annotations: contivpp.io/custom-if : tap1/tap/l2net spec: … https://github.com/contiv/vpp/tree/master/k8s/examples/custom-network

  26. Service Chaining Between CNF Pods (L2-XConnect -Based) --- apiVersion: contivpp.io/v1 kind: ServiceFunctionChain metadata: name: vpp-chain spec: chain: - name: CNF 1 type: Pod podSelector: cnf: vpp-cnf1 interface: memif1 - name: CNF 2 type: Pod podSelector: cnf: vpp-cnf2 inputInterface: memif1 outputInterface: memif2 - name: CNF 3 type: Pod podSelector: cnf: vpp-cnf3 interface: memif1 https://github.com/contiv/vpp/tree/master/k8s/examples/sfc

Recommend


More recommend