checking in on network functions
play

Checking-in on Network Functions by Zeeshan Lakhani and Heather - PowerPoint PPT Presentation

Checking-in on Network Functions by Zeeshan Lakhani and Heather Miller @ The rise of network functions? Lakhani/Miller Checking-in on Network Functions 2 The rise of network functions? LB Firewall IDS Lakhani/Miller Checking-in on


  1. Checking-in on Network Functions by Zeeshan Lakhani and Heather Miller @

  2. The rise of network functions? Lakhani/Miller Checking-in on Network Functions 2

  3. The rise of network functions? LB Firewall IDS ∨ Lakhani/Miller Checking-in on Network Functions 2

  4. The rise of network functions? LB Firewall IDS ∨ Lakhani/Miller Checking-in on Network Functions 2

  5. The rise of network functions? LB Firewall IDS ∨ Lakhani/Miller Checking-in on Network Functions 2

  6. writing and modeling ∧ The rise of network functions? Pyretic Slick NetKat Lakhani/Miller Checking-in on Network Functions 2

  7. writing and modeling ∧ The rise of network functions? Writing network functions is not “composed of nothing more than algorithms and small programs” [1] complex routing and load balancing policies tra ff ic monitoring experimental/new specifications, protocols, and headers computation and aggregation (e.g. In-Network Computation is a Dumb Idea Whose Time Has Come) [1] Cultures of programming: Understanding the history of programming through controversies and technical artifacts by Tomas Petricek, University of Kent, UK, 2019 Lakhani/Miller Checking-in on Network Functions 3

  8. Motivation Lakhani/Miller Checking-in on Network Functions 4

  9. Motivation If I program in React, can I program a network function? Lakhani/Miller Checking-in on Network Functions 4

  10. Motivation If I program in React, can I program a network function? How do we know what we’re doing is right? Lakhani/Miller Checking-in on Network Functions 4

  11. Motivation If I program in React, can I program a network function? How do we know what we’re doing is right? How can we iterate? Lakhani/Miller Checking-in on Network Functions 4

  12. Motivation Limits of Correctness e.g. reliance on OpenFlow protocol Lakhani/Miller Checking-in on Network Functions 4

  13. Motivation Limits of Correctness e.g. reliance on OpenFlow protocol Arbitrary (ad-hoc) Logic & Variable-length Data, e.g. Ipv6 Extensions, ndp options packet length failure and reconfiguration Lakhani/Miller Checking-in on Network Functions 4

  14. Motivation [2] [2] The Click Modular Router by Eddie Kohler, et. al., Laboratory for Computer Science, MIT, 1999 Lakhani/Miller Checking-in on Network Functions 5

  15. Two examples MTU: Send Too Big Ipv6 Extension Headers: SRH swap ethernet addresses swap src/dst change protocol set mtu info calculate checksum Lakhani/Miller Checking-in on Network Functions 6

  16. Two examples MTU: Send Too Big Ipv6 Extension Headers: SRH swap ethernet addresses swap src/dst change protocol set mtu info calculate checksum Lakhani/Miller Checking-in on Network Functions 6

  17. Kinds of Contracts Lakhani/Miller Checking-in on Network Functions 7

  18. Kinds of Contracts focused on how runtime contracts can be turned on for monitoring and testing situations so that developers can Design by Contract “sit back, and just watch their contracts be violated” erased on release binaries Lakhani/Miller Checking-in on Network Functions 7

  19. Kinds of Contracts focused on how runtime contracts can be turned on for monitoring and testing situations so that developers can Design by Contract “sit back, and just watch their contracts be violated” erased on release binaries compile-time assertions for consts, statics Static Assertions remain in release binaries Lakhani/Miller Checking-in on Network Functions 7

  20. Kinds of Contracts focused on how runtime contracts can be turned on for monitoring and testing situations so that developers can Design by Contract “sit back, and just watch their contracts be violated” erased on release binaries compile-time assertions for consts, statics Static Assertions remain in release binaries Static Order- Preserving Headers Lakhani/Miller Checking-in on Network Functions 7

  21. Kinds of Contracts: Design by Contract Lakhani/Miller Checking-in on Network Functions 8

  22. Kinds of Contracts: Design by Contract Lakhani/Miller Checking-in on Network Functions 8

  23. Kinds of Contracts: Design by Contract Lakhani/Miller Checking-in on Network Functions 8

  24. Kinds of Contracts: Static Assertions Lakhani/Miller Checking-in on Network Functions 9

  25. Kinds of Contracts: Static Assertions Lakhani/Miller Checking-in on Network Functions 9

  26. Kinds of Contracts: Static Assertions Lakhani/Miller Checking-in on Network Functions 9

  27. Kinds of Contracts: Static Order-Persevering Headers Lakhani/Miller Checking-in on Network Functions 10

  28. Kinds of Contracts: Static Order-Persevering Headers Lakhani/Miller Checking-in on Network Functions 10

  29. Implementation Lakhani/Miller Checking-in on Network Functions 11

  30. Implementation prototyped as a gradual extension to NetBricks (i.e. NetBricks: Taking the V out of NFV, OSDI 2016) Lakhani/Miller Checking-in on Network Functions 11

  31. Implementation Focused on Zero-Copy So fu Isolation prototyped as a gradual extension to NetBricks (i.e. NetBricks: Taking the V out of NFV, OSDI 2016) Lakhani/Miller Checking-in on Network Functions 11

  32. Implementation Focused on Zero-Copy So fu Isolation prototyped as a gradual extension to NetBricks (i.e. NetBricks: Taking the V out of NFV, OSDI 2016) implemented as a small rust library to easily write specifications, which generates code for validations and assertions at compile-time Lakhani/Miller Checking-in on Network Functions 11

  33. Implementation Focused on Zero-Copy So fu Isolation prototyped as a gradual extension to NetBricks (i.e. NetBricks: Taking the V out of NFV, OSDI 2016) implemented as a small rust library to easily write specifications, which generates code for validations and assertions at compile-time macros turn checks into static and dynamic contracts Lakhani/Miller Checking-in on Network Functions 11

  34. Implementation Lakhani/Miller Checking-in on Network Functions 12

  35. In Action Lakhani/Miller Checking-in on Network Functions 13

  36. In Action order is checked statically via a trace of packet contents Lakhani/Miller Checking-in on Network Functions 13

  37. In Action order is checked statically via a trace of packet contents pre-checks validate incoming contents and store contents @ runtime Lakhani/Miller Checking-in on Network Functions 13

  38. In Action order is checked statically via a trace of packet contents pre-checks validate incoming contents and store contents @ runtime post-checks validate transformed contents against pre-check contents Lakhani/Miller Checking-in on Network Functions 13

  39. Evaluation Lakhani/Miller Checking-in on Network Functions 14

  40. Evaluation Design Phase Lakhani/Miller Checking-in on Network Functions 14

  41. Evaluation: Syntax Added Lakhani/Miller Checking-in on Network Functions 15

  42. Evaluation: Compilation Time Lakhani/Miller Checking-in on Network Functions 16

  43. Evaluation: Runtime Cost Due to: mirroring and tracing packet contents runtime checks storage overhead Lakhani/Miller Checking-in on Network Functions 17

  44. Evaluation: Runtime Cost Due to: mirroring and tracing packet contents Design Phase runtime checks storage overhead Lakhani/Miller Checking-in on Network Functions 17

  45. Future Work deployment models / running contracts in simulation / CI e.g. via Mininet / Containernet (further) leverage static analysis of input programs interactive feedback (many examples in UI tooling and langs like Elm and Rust) program slicing refinement via domain-specific heuristics and constraint solving Lakhani/Miller Checking-in on Network Functions 18

  46. In Practice Scoped Side E ff ects Typed Packets Envelope : T < T : IpPacket > Header : TCP cascade λ → λ packet length checksum etc… Lakhani/Miller Checking-in on Network Functions 19

  47. Takeaways we need be tu er approaches to VERIFY and INTERACT with network functions and packet processing program properties here, we provide a HYBRID-APPROACH and implementation for GRADUALLY checking and validating the arbitrary logic and side e ff ects by COMBINING design by contract, static assertions and type-checking, and code generation via macros all without PENALIZING programmers at development time Lakhani/Miller Checking-in on Network Functions 20

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