supervisor: marijke kaat (surfnet/uva) ben de …container networking network functions dst1 3...

34
Segment routing in container networks Ben de Graaff Supervisor: Marijke Kaat (SURFnet/UvA) RP95

Upload: others

Post on 20-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Segment routing incontainer networks

Ben de Graaff

Supervisor: Marijke Kaat (SURFnet/UvA)

RP95

Page 2: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Best path

AB

Background

Page 3: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

3

Arbitrary paths

1 2

45

AB

A > 1 > 4 > B

Background

1

4

Page 4: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

3

Pure IPv6 (SRv6) Background

1 2

45

AB

2000:1:: 2000:2::

2000:B::

2000:4::

2000:3::

2000:5::

2000:A::

2000:1::2

2000:1::32000:1::A

Page 5: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Container networks BackgroundInternet

Page 6: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Platform independent Background

LXC

Internet

Page 7: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Multi-tenancy BackgroundInternet

Page 8: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Example: load balancer BackgroundInternet

Transit policy

LB

Page 9: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Research

State of segment routing in IPv6

Proof of concept:Container networkingNetwork functions

Page 10: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

dst1

3

Network programming

1 2

45

AB

src > 1 > 4 > dst

1

4

dst

4dstsrc

Page 11: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Segment routing header

Extensions

Segment N

Segment 0...

HeaderSegments left

Page 12: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Proof of concept

Validate policy

Apply policy

Page 13: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Multi-tenancy Internet

Segment ID

2000:A::1000:12000:B::1000:22000:C::1000:3

2000:B::1000:12000:B::1000:22000:B::1000:3

2000:C::1000:12000:C::1000:3

Results

Page 14: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Container discovery/mobility

Routing opaque addresses

Results

::1:2:3:4 ::a:b:c:dTopology

1:Inject SRH

3:Deliver

NF2:

Computefinal hop

Page 15: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Implementation

Hardware/software

Results

Page 16: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Linux kernel 4.10+

Basic routing/policy

Limited extension support

Implementation quirks…

Results

Page 17: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Hardware

NCS 5500

Software

Vector Packet Processing

The Fast Data Project

SRv6 availability Results

Page 18: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Technical stuff

Technical implementation

http://www.story-stick.net/event/here-be-dragons

Page 19: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

VM

Network function

ContainerContainer

Virtual topology Results

VPPVPP

Container

VPP

VM

Page 20: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

eBPF

Latest & greatest

Process directly in kernel

Fast, powerful

Results

myprog.c + LLVM = bytecode

bpf() syscall

Kernel network stack

Page 21: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

eBPF

eth0

tc filter bpf

bpf_redirectIngress eBPF

EgresseBPF

veth ContainerControl app

Validate policy

Apply policy

Results

Page 22: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Linux do-it-yourself

Tun/tapAF_PACKETip ruleiptables fwmarkPF_RING...

Results

Page 23: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Linux do-it-yourself Results

tun

AF_PACKET

Raw socketIngress app

Egress app

ip rule

Validate policy

Apply policy

eth0 veth Container

Page 24: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Summary Results

Validate policy

Apply policy

Page 25: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Ingress policy enforcement? Discussion

Internet

eth0

Ingress

Egress

veth ContainerFW

Page 26: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Future work

Ingress path control

Linux segment routing Netlink API

Develop useful extensions

Page 27: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Conclusion

Proof of concept: works

SDN easy, at cost of overhead

Hardware not strictly required

Page 28: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Related work

Cisco, Bell Canada, Comcast, et al, technical workshops @ www.segment-routing.net

NFV with SRv6, with SRH unaware hosts (NetSoft 2017, presented today)

Page 29: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Segment routing incontainer networks

Segment routing is effective at enabling SDN and network

functions between containers

However, it is not yet widely supported in hardware, software

RP95

Check out the report for a full list of references

http://rp.delaat.net/2016-2017/p95/report.pdf

Page 30: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Backup slides

Page 31: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Security/RH0

Enforce policy at network edges

SIDs must be explicitly enabled

HMAC: check at ingress

Page 32: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Remove protocols

Remove state

https://xkcd.com/927/

Simplify the network Discussion

Page 33: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

3

MPLS Background

1 2

45

AB

101 102

111

104

103

105

110

202

203

210

No LDP, RSVPrequired

Page 34: Supervisor: Marijke Kaat (SURFnet/UvA) Ben de …Container networking Network functions dst1 3 Network programming 1 2 4 5 A B src > 1 > 4 > dst 1 4 dst 4 src Segment routing header

Multi-tenancy

Layer 2 and 3cross-connects

Multi-tenancy:Segment ID or extension?

Discussion