netbricks taking the v out of nfv
play

NetBricks: Taking the V out of NFV Aurojit Panda, Sangjin Han, Keon - PowerPoint PPT Presentation

NetBricks: Taking the V out of NFV Aurojit Panda, Sangjin Han, Keon Jang, Melvin Walls, Sylvia Ratnasamy, Scott Shenker UC Berkeley, Google, ICSI What the heck is NFV? A Short Introduction to NFV A Short Introduction to NFV Firewall IDS


  1. NetBricks: Taking the V out of NFV Aurojit Panda, Sangjin Han, Keon Jang, Melvin Walls, Sylvia Ratnasamy, Scott Shenker UC Berkeley, Google, ICSI

  2. What the heck is NFV?

  3. A Short Introduction to NFV

  4. A Short Introduction to NFV Firewall IDS Cache LB

  5. A Short Introduction to NFV Firewall IDS Cache LB Network Function Chain

  6. Why NFV? • Simplifies adding new functionality : Deploy new software.

  7. Why NFV? • Simplifies adding new functionality : Deploy new software. • Simplifies developing new functionality : Write software vs design hardware

  8. Why NFV? • Simplifies adding new functionality : Deploy new software. • Simplifies developing new functionality : Write software vs design hardware • Reuse management tools from other domains.

  9. Why NFV? • Simplifies adding new functionality : Deploy new software. • Simplifies developing new functionality : Write software vs design hardware • Reuse management tools from other domains. • Consolidation : Reduce number of hardware boxes in the network.

  10. Challenges for NFV

  11. Challenges for NFV • Running NFs • Isolation and Performance

  12. Challenges for NFV • Running NFs • Isolation and Performance • Building NFs • High-Level Programming and Performance

  13. Running NFs

  14. Isolation • Memory Isolation : Each NF’s memory cannot be accessed by other NFs.

  15. Isolation • Memory Isolation : Each NF’s memory cannot be accessed by other NFs. • Packet Isolation : When chained, each NF processes packets in isolation.

  16. Isolation • Memory Isolation : Each NF’s memory cannot be accessed by other NFs. • Packet Isolation : When chained, each NF processes packets in isolation.

  17. Isolation • Memory Isolation : Each NF’s memory cannot be accessed by other NFs. • Packet Isolation : When chained, each NF processes packets in isolation. • Performance Isolation : One NF does not affect another’s performance.

  18. Isolation • Memory Isolation : Each NF’s memory cannot be accessed by other NFs. • Packet Isolation : When chained, each NF processes packets in isolation. • Performance Isolation : One NF does not affect another’s performance.

  19. Current Solution Memory Isolation vSwitch VM/Container VM/Container VM/Container Packet Isolation NIC ... NIC Performance

  20. Current Solution Memory Isolation vSwitch VM/Container VM/Container VM/Container Packet Isolation NIC ... NIC Performance

  21. Current Solution ✔ Memory Isolation vSwitch VM/Container VM/Container VM/Container Packet Isolation NIC ... NIC Performance

  22. Current Solution ✔ Memory Isolation vSwitch VM/Container VM/Container VM/Container Packet Isolation NIC ... NIC Performance

  23. Current Solution ✔ Memory Isolation vSwitch VM/Container VM/Container VM/Container Packet Isolation NIC ... NIC Performance

  24. Current Solution ✔ Memory Isolation vSwitch VM/Container VM/Container VM/Container Packet Isolation NIC ... NIC Performance

  25. Current Solution ✔ Memory Isolation vSwitch VM/Container VM/Container VM/Container Packet Isolation NIC ... NIC Performance

  26. Current Solution ✔ Memory Isolation vSwitch VM/Container VM/Container VM/Container Packet Isolation NIC ... NIC Performance

  27. Current Solution ✔ Memory Isolation Copy vSwitch VM/Container VM/Container VM/Container Packet Isolation NIC ... NIC Performance

  28. Current Solution ✔ Memory Isolation Copy vSwitch VM/Container VM/Container VM/Container Packet Isolation NIC ... NIC Performance

  29. Current Solution ✔ Memory Isolation Copy vSwitch VM/Container VM/Container VM/Container Packet Isolation NIC ... NIC Performance

  30. Current Solution ✔ Memory Isolation Copy vSwitch VM/Container VM/Container VM/Container ✔ Packet Isolation NIC ... NIC Performance

  31. Current Solution ✔ Memory Isolation Copy vSwitch VM/Container VM/Container VM/Container ✔ Packet Isolation NIC ... NIC ✗ Performance

  32. Isolation Costs Performance �� �� ��������� �� ���������� ���� ������ �� �� �� � �

  33. Isolation Costs Performance �� �� ��������� ��� �� �� ���������� ���� ������ �� �� �� � �

  34. Isolation Costs Performance �� �� ��������� ��� �� ���� �� �� ���������� ���� ������ �� �� �� � �

  35. Isolation Costs Performance �� �� ��������� ��� �� ���� �� �� ���� ��������� ���������� ���� ������ �� �� �� � �

  36. Isolation Costs Performance �� �� ��������� ���� ����� ��� �� �� ���� �� ���������� ���� ������ ���� ��������� �� �� �� � �

  37. Isolation Costs Performance �� �� ��������� ��������� ��� �� �� ���� �� ���������� ���� ������ ���� ��������� �� �� �� � �

  38. NetBricks Runtime Architecture Single Process Space NF D NF D NF D NF C NF C NF C NF Z NF Z NF Z NF B NF B NF B NF Y NF Y NF Y NF A NF A NF A NF X NF X NF X ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O Poll for I/O NICs

  39. NetBricks Runtime Architecture Single Process Space NF D NF D NF D NF C NF C NF C NF Z NF Z NF Z Function NF B NF B NF B NF Y NF Y NF Y Call NF A NF A NF A NF X NF X NF X ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O Poll for I/O NICs

  40. NetBricks Runtime Architecture Single Process Space NF D NF D NF D NF C NF C NF C NF Z NF Z NF Z NF B NF B NF B NF Y NF Y NF Y NF A NF A NF A NF X NF X NF X ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O Poll for I/O NICs

  41. NetBricks Runtime Architecture Single Process Space NF D NF D NF D Run NF C NF C NF C NF Z NF Z NF Z to Completion NF B NF B NF B NF Y NF Y NF Y Scheduling NF A NF A NF A NF X NF X NF X ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O Poll for I/O NICs

  42. NetBricks Runtime Architecture Single Process Space NF D NF D NF D Run NF C NF C NF C NF Z NF Z NF Z What about Isolation? to Completion NF B NF B NF B NF Y NF Y NF Y Scheduling NF A NF A NF A NF X NF X NF X ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O Poll for I/O NICs

  43. Provide Isolation through Software

  44. ZCSI: Zero Copy Soft Isolation • VMs and containers impose cost on packets crossing isolation boundaries. • Frequent operation for many NFs which must support 10s of MPPS.

  45. ZCSI: Zero Copy Soft Isolation • VMs and containers impose cost on packets crossing isolation boundaries. • Frequent operation for many NFs which must support 10s of MPPS. • Insight : Use type checking (compile time) and runtime checks for isolation. • Isolation costs largely paid at compile time (small runtime costs).

  46. Our Approach • Disallow pointer arithmetic in NF code: use safe subset of languages.

  47. Our Approach • Disallow pointer arithmetic in NF code: use safe subset of languages. • Type checks + array bounds checking provide memory isolation .

  48. Our Approach • Disallow pointer arithmetic in NF code: use safe subset of languages. • Type checks + array bounds checking provide memory isolation . • Build on unique types for packet isolation .

  49. Our Approach • Disallow pointer arithmetic in NF code: use safe subset of languages. • Type checks + array bounds checking provide memory isolation . • Build on unique types for packet isolation . • Unique types ensure references destroyed after certain calls.

  50. Our Approach • Disallow pointer arithmetic in NF code: use safe subset of languages. • Type checks + array bounds checking provide memory isolation . • Build on unique types for packet isolation . • Unique types ensure references destroyed after certain calls. • Ensure only one NF has a reference to a packet.

  51. Our Approach • Disallow pointer arithmetic in NF code: use safe subset of languages. • Type checks + array bounds checking provide memory isolation . • Build on unique types for packet isolation . • Unique types ensure references destroyed after certain calls. • Ensure only one NF has a reference to a packet. • Enables zero copy packet I/O.

  52. Our Approach • Disallow pointer arithmetic in NF code: use safe subset of languages. • Type checks + array bounds checking provide memory isolation . • Build on unique types for packet isolation . • Unique types ensure references destroyed after certain calls. • Ensure only one NF has a reference to a packet. • Enables zero copy packet I/O. • All of these features implemented on top of Rust .

Recommend


More recommend