mmb flexible high speed userspace middleboxes
play

mmb : Flexible High-Speed Userspace Middleboxes Korian Edeline , - PowerPoint PPT Presentation

mmb : Flexible High-Speed Userspace Middleboxes Korian Edeline , Justin Iurman, Cyril Soldani, Benoit Donnet Montefiore Institute, University of Lige Belgium A middleboxed Internet https://github.com/mami-project/roadshows 7/22/19 2 ANRW


  1. mmb : Flexible High-Speed Userspace Middleboxes Korian Edeline , Justin Iurman, Cyril Soldani, Benoit Donnet Montefiore Institute, University of Liège Belgium

  2. A middleboxed Internet https://github.com/mami-project/roadshows 7/22/19 2 ANRW 2019

  3. kernelspace vs userspace Kernel: Userspace: 3 ANRW 2019

  4. kernelspace vs userspace Kernel: ✗ T oo slow for high-speed forwarding ✗ Missing optimizations (batching, caching, etc) Userspace: 4 ANRW 2019

  5. kernelspace vs userspace Kernel: ✗ T oo slow for high-speed forwarding ✗ Missing optimizations (batching, caching, etc) Userspace: ✗ No direct access to NIC (context switch, sk_bufg) 5 ANRW 2019

  6. kernelspace vs userspace Kernel: ✗ T oo slow for high-speed forwarding ✗ Missing optimizations (batching, caching, etc) Userspace: ✗ No direct access to NIC (context switch, sk_bufg) ✔ DPDK (DMA, I/O batching) 6 ANRW 2019

  7. kernelspace vs userspace Kernel: ✗ T oo slow for high-speed forwarding ✗ Missing optimizations (batching, caching, etc) Userspace: ✗ No direct access to NIC (context switch, sk_bufg) ✔ DPDK (DMA, I/O batching) ✔ Software optimizations ✔ Flexibility 7 ANRW 2019

  8. Kernel-Bypass Frameworks 8 ANRW 2019

  9. architecture Vector Packet Processing (VPP) ● DPDK ● RSS queues, Zero-Copy and more ● Packet vectors ● Modular node-based processing ● Low-level optimizations (caching, pipelining) ANRW 2019

  10. architecture VPP Dual-Loop while (n_left_from >= 2) { /* prefetch next iteration */ if (PREDICT_TRUE(n_left_from >= 4)){ vlib_prefetch_bufger_header(b[2], STORE); vlib_prefetch_bufger_header(b[3], STORE); } process(b[0]); process(b[1]); b += 2; next += 2; n_left_from -= 2; } /* process remaining packets */ while(n_left_from > 0){ process(b[0]); b += 1; next += 1; n_left_from -= 1; } 7/22/19 10 ANRW 2019

  11. architecture mmb: A VPP middlebox Goals: ● Various middlebox policies (fjrewall, NAT, traffjc engineering) ● Fast even with thousands rules ● Intuitive CLI 11 ANRW 2019

  12. architecture mmb: CLI grammar 7/22/19 12 ANRW 2019

  13. architecture mmb: forwarding graph 7/22/19 13 ANRW 2019

  14. architecture mmb: forwarding graph ● Classifjcation: (Packet & Mask) ⊕ Key ● Rewrite (Packet & Mask) | Key 7/22/19 14 ANRW 2019

  15. architecture mmb: processing path 7/22/19 15 ANRW 2019

  16. measurement Performance Analysis ● FastClick: – Fast (multi-queue, ZC forwarding, batching, DPDK) – Click ● eXpress Data Path (XDP): – In-Kernel – eBPF ● iptables ANRW 2019

  17. measurement Performance Analysis: Testbed Direct Indirect PCI Passthrough Bridged 7/22/19 17 ANRW 2019

  18. measurement Performance Analysis: Baselines ● VPP, FastClick, 4.15 > 99% of direct baseline 7/22/19 18 ANRW 2019

  19. measurement Performance Analysis: 5-tuples fjrewall ● Stateless matching on 5-tuples (saddr, daddr, sport, dport, proto) 7/22/19 19 ANRW 2019

  20. measurement Performance Analysis: 5-tuples fjrewall ● Stateless matching on 5-tuples (saddr, daddr, sport, dport, proto) ● mmb & XDP at direct baseline ● FastClick matching (IPFilter) has performance issues ● Iptables 4.15 sustains direct baseline with up to 1,000 rules 7/22/19 20 ANRW 2019

  21. measurement Performance Analysis: stateful fmow matching ● Stateful matching on 5-tuples (saddr, daddr, sport, dport, proto) 7/22/19 21 ANRW 2019

  22. measurement Performance Analysis: stateful fmow matching ● Stateful matching on 5-tuples (saddr, daddr, sport, dport, proto) ● mmb & XDP at direct baseline ● FastClick at 85% direct baseline ● Iptables stateful is similar to stateless (with few rules). 7/22/19 22 ANRW 2019

  23. measurement Performance Analysis: TCP Options ● Matching on TCP Options ● Not applicable to iptables, FastClick & XDP ● Stable until 78 rules 7/22/19 23 ANRW 2019

  24. measurement Conclusion & Next steps ● mmb sustains line rate for difgerent use cases ● Next Step: Payload reconstruction ● https://github.com/mami-project/vpp-mb 24 ANRW 2019

  25. measurement Thanks ! 7/22/19 25 ANRW 2019

  26. measurement Performance Analysis: Testbed ● Intel Xeon E5-2620 2.1GHz, 16 Threads, 32GB RAM ● Intel XL710 2x40GB NICs ● Huawei CE6800 switch ● Debian 9 26 ANRW 2019

  27. measurement Performance Analysis: RTT 7/22/19 27 ANRW 2019

  28. measurement Performance Analysis: CPU time 7/22/19 28 ANRW 2019

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