towards correct by construction sdn
play

TOWARDS CORRECT-BY-CONSTRUCTION SDN Leonid Ryzhyk Nikolaj Bjorner - PowerPoint PPT Presentation

TOWARDS CORRECT-BY-CONSTRUCTION SDN Leonid Ryzhyk Nikolaj Bjorner Marco Canini Jean-Baptjste Jeannin Nina Narodytska Cole Schlesinger Douglas Terry George Varghese 22 August 2016 INTRODUCTION 2 Cocoon is a high-level


  1. TOWARDS CORRECT-BY-CONSTRUCTION SDN Leonid Ryzhyk Nikolaj Bjorner Marco Canini Jean-Baptjste Jeannin Nina Narodytska Cole Schlesinger Douglas Terry George Varghese 22 August 2016

  2. INTRODUCTION 2 ● Cocoon is a – high-level SDN programming language – verifjcation tool – SDN programming methodology ● … based on the principle of correctness by construction

  3. COCOON IN A NUTSHELL 3 Traditional SDN Verification Workflow Design Implement Run on the Verify generated controller network configuration SDN verification with Cocoon refine refine refine spec implementation Correct by construction

  4. EXAMPLE: CAMPUS NETWORK [Sung et al. Towards Systematic Design of Enterprise Networks] 4 L2 segment Router VLAN Gateway vlan-1 vlan-1 gw router vlan-2 vlan-2 gw router Switch vlan-3 vlan-3 gw router switch router

  5. INTER-VLAN ROUTING: HOP1 5 ACL vlan-1 vlan-1 gw router vlan-2 vlan-2 gw router vlan-3 vlan-3 gw router switch router

  6. INTER-VLAN ROUTING: HOP2 6 ACL vlan-1 vlan-1 gw router vlan-2 vlan-2 gw router vlan-3 vlan-3 gw router switch router

  7. INTER-VLAN ROUTING: HOP3 7 This is messy: ● Large, ad hoc topology ● L2/L3 routing are mixed up ● Complex distributed security policies Typical bugs: ● ACL distribution ● Routing loops ● Black holes vlan-1 vlan-1 gw router Let’s try to untangle this design … vlan-2 vlan-2 gw router vlan-3 vlan-3 gw router switch router

  8. STEP 1: HIGH-LEVEL SPECIFICATION 8 acl() 193.62.*.* 193.63.*.* 193.64.1.*

  9. STEP 2: DISTRIBUTED ACLs 9 acl() 193.62.*.* 193.63.*.* 193.64.1.*

  10. STEP 2: DISTRIBUTED ACLs 10 Gateways aclIn() aclOut() 193.62.*.* 193.63.*.* 193.64.1.* Assumption: acl() ≡ aclOut() Λ aclIn()

  11. STEP 3: L3 ROUTING 11 193.62.*.* 193.63.*.* 193.64.1.*

  12. STEP 3: L3 ROUTING 12 Routers L3NextHop() 193.62.*.* 193.63.*.* 193.64.1.* Assumption: L3NextHop(pkt)* = Gateway(pkt)

  13. STEP 4: L2 SWITCHING 13 193.62.*.* 193.63.*.* 193.64.1.*

  14. STEP 4: L2 SWITCHING 14 193.62.*.* 193.63.*.* 193.64.1.*

  15. STEP 4: L2 SWITCHING 15 L2 switches Assumption: L2NextHop(pkt)* = L3NextHop(pkt)

  16. STEP 4: L2 SWITCHING 16 L2NextHop(pkt.vlan=0) L2NextHop(pkt.vlan=green) L2NextHop(pkt.vlan=red) L2NextHop(pkt.vlan=blue)

  17. SEPARATION OF CONCERNS 17 High-level spec Distributed access control L3 routing L2 switching

  18. WOULDN’T IT BE GREAT TO BUILD SDNs THIS WAY? 18 acl() aclOut() aclIn() 193.62.*.* 193.63.*.* 193.64.1.* 193.62.*.* 193.63.*.* 193.64.1.* With Cocoon, you can! ● Language support for refinement-based programming l3NextHop() ● Automatic compositional verification ● P4 and OpenFlow (via NetKAT) backends 193.62.*.* 193.63.*.* 193.64.1.*

  19. PARAMETERIZED SPECIFICATIONS 19 ● Parameterized specifjcations – Spec may contain undefjned functions , e.g., acl(), l2NextHop(), l3NextHop() – Verifjcation relies on assumptions – These functions are defjned when the network design is instantiated – They can also change at runtime, e.g., in response to link failures – Assumptions are validated when concrete defjnitions are provided (statically or at runtime)

  20. CASE STUDIES 20 Campus network ● [Sung et al. T owards Systematic Design of Enterprise Networks] F10 ● [Liu et al. F10: A Fault-T olerant Engineered Network] B4-style WAN ● [Jain et al. B4: Experience with a Globally-Deployed Software Defjned WAN] iSDX (Software-defjned Internet Exchange) ● [Gupta et al. An Industrial-Scale Software Defjned Internet Exchange Point] NSX-style network virtualization framework ● [Koponen et al. Network Virtualization in Multi-tenant Datacenters] Stag (source-based routing + security labels for fat-tree ● topology)

  21. PERFORMANCE 21 ● All case studies verifjed in ~10 sec, – Compositional verifjcation (1 refjnement at a time) – Parameterized verifjcation amplifjes the power of symbolic reasoning ● No direct comparison (yet) with existing tools like NetKAT, HSA, but expect them to slow down for larger topologies

  22. COCOON VS TRADITIONAL NETWORK VERIFICATION 22 HSA/ NetKAT/ ... Correctness spec

  23. CONCLUSIONS 24 ● Correct-by-construction SDN via iterative refjnement: – Enforces modular design – Enables strong static correctness guarantees – Scales to complex realistic networks

  24. EXAMPLE ASSUMPTION 25 assume (hid_t sid, vid_t vid, MAC dst) (l2distance(sid, vid, dst) > 1) => l2distance(link(sid, l2NextHop(sid, vid, dst)), dst) == (l2distance(sid, vid, dst) - 1)

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