ebpf based container networking
play

eBPF Based Container Networking A Network Performance Comparison - PowerPoint PPT Presentation

eBPF Based Container Networking A Network Performance Comparison Nick de Bruijn July 4, 2017 University of Amsterdam Introduction Figure 1: Microservices and Containers 1 1


  1. eBPF Based Container Networking A Network Performance Comparison Nick de Bruijn July 4, 2017 University of Amsterdam

  2. Introduction Figure 1: Microservices and Containers 1 1 https://www.slideshare.net/Docker/cilium-network-and-application-security-with- bpf-and-xdp-thomas-graf-covalent-io 1/28

  3. Introduction - Iptables Iptables: • $ iptables -A INPUT -p tcp -s 10.0.0.23 –dport 80 -m conntrack –ctstate NEW -j ACCEPT 2/28

  4. Research Goal Research goal: • Evaluate the usability of Cilium as a packet filtering system in a container (Microservices) infrastructure. 3/28

  5. Research Questions • What throughput and latency we get in the case of using Cilium’s eBPF program and Linux’s Iptables as packet filter? • What effect does the number of security policies have on the throughput and latency in both cases? • Is there a turn point in performance when increasing the number of security policies? 4/28

  6. Background 5/28

  7. Docker Networking • Endpoints (Container eth0) • Virtual Ethernet devices (veth) • Bridge on the host (docker0) 1 Figure: https://success.docker.com/Architecture/Docker R eference A rchitecture 6/28

  8. Docker Networking - Communication • Endpoints (Container eth0) • Virtual Ethernet devices (veth) • Bridge on the host (docker0) Packet filtering: • On container 7/28

  9. Docker Networking - Communication Components: • Endpoints (Container eth0) • Virtual Ethernet devices (veth) • Bridge on the host (docker0) Packet filtering: • On container • On the bridge 8/28

  10. Iptables - Performance penalty? 2 • Uses chains with rules • Each chain contains 0 or more rules • Top down approach • Checks until match is found • So placement is important 2 Figure: http://www.iptables.info/en/structure-of-iptables.html 9/28

  11. What is Cilium? • Opensource project • Adds a layer on top of the existing container environment (Docker) • To improve container networking and policy enforcement • No Iptables / bridges • Relies on eBPF programs 10/28

  12. What is eBPF (extended Berkeley Packet Filter)? eBPF is used to extend the functionality of the kernel at runtime. • It’s effectively a small kernel based machine • 10 64bit registers • 512 byte stack • Data structures are known as maps • Has a verifier to ensure the program is safe • No loops, max 4k instructions, no more then 64 maps. 11/28

  13. eBPF Figure 2: eBPF Overview 3 3 https://www.slideshare.net/Docker/cilium-bpf-xdp-for-containers-66969823 12/28

  14. extended Berkley Packet Filter - Functionality 1. Rewrite packet content 2. Extend/trim packet size 3. Redirect to other netdevices 4. Enforce policies 5. On the fly program generation 13/28

  15. Cilium - Network with eBPF Figure 3: eBPF with Cilium 4 14/28 4 https://www.slideshare.net/Docker/cilium-bpf-xdp-for-containers-66969823

  16. Cilium - Policies Figure 4: Cilium Policy Using Json 15/28

  17. Approach 16/28

  18. Approach - Docker environment 17/28

  19. Approach - Cilium environment 18/28

  20. Approach - Scenario Performed tests on two scenarios: • Localhost • And Multi-host For each scenario we are interested in: • The throughput and latency with no additional policies/rules. • The change in performance whenever we start to increase the number of policies/rules. 19/28

  21. Approach - Experiments • Using Iperf3 to send a TCP STREAM • Using Netperf to send a TCP RR (Request Response) • Every test runs 1 minute. Every test is performed 10 times to determine the variation • Every test runs with 0, 1, 5, 10, 25, 50, 100, and 200 policies 20/28

  22. Results 21/28

  23. Results - Throughput Localhost Figure 5: Throughput - localhost (Higher is better) • Cilium’s eBPF approach outperforms the IPtable approach. • Number of Cilium policies does not affect the throughput • Number of no matching Iptables rules greatly affect the throughput 22/28

  24. Results - Latency Localhost Figure 6: TCP Latency - localhost (Lower is better) • Same observation as the throughput • Cilium’s eBPF approach has a lower latency 23/28

  25. Results - Throughput Remote Containers Figure 7: TCP Throughput - Remote Host (Higher is better) • Different observation than on Localhost • Cilium’s eBPF seems to perform less • Iptables show no performs penalty until 1000 policies 24/28

  26. Results - Latency Remote Containers Figure 8: TCP Latency - Remote Host (Lower is better) • Same observation as the remote throughput • Cilium’s eBPF approach has a higher latency 25/28

  27. Conclusion 26/28

  28. Conclusion Overal: 1. Cilium seems like a promising project. 2. We can define L3, L4, and L7 policies Performance wise: 1. The performance is not influenced by number of policies. 2. Cilium shows to perform better in the situation of local containers. 3. Room for improvements for multi-host enviornments 27/28

  29. Open issues & Future work • Test the VXLAN overlay overhead used by Docker and Cilium • Do Kernel traces to get a better understanding of which path packets take in the kernel. • Optimize both approaches to see what the best possible throughput and latency can be reached for each approach. • Test Cilium using XDP to offload the system. 28/28

  30. Thank you for your attention, Questions? 28/28

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend