fattire declarative fault tolerance for sdn
play

FatTire: Declarative Fault Tolerance for SDN Mark Reitblatt - PowerPoint PPT Presentation

FatTire: Declarative Fault Tolerance for SDN Mark Reitblatt (Cornell) (TU Berlin UC Louvain) Marco Canini (Cornell UMass Amherst) Arjun Guha Nate Foster (Cornell) 1 Friday, August 16, 13 In a Perfect World... 2 Friday, August 16,


  1. FatTire: Declarative Fault Tolerance for SDN Mark Reitblatt (Cornell) (TU Berlin → UC Louvain) Marco Canini (Cornell → UMass Amherst) Arjun Guha Nate Foster (Cornell) 1 Friday, August 16, 13

  2. In a Perfect World... 2 Friday, August 16, 13

  3. But in Reality... 3 Friday, August 16, 13

  4. Fault-Tolerance Mechanisms Traditional Networks • MPLS local path protection • Global path protection • IEEE 802.1ag • and others... Software-Defined Networks • Controller reacts to failures • Fast failover group actions (OpenFlow 1.1+) 4 Friday, August 16, 13

  5. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  6. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  7. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  8. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  9. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  10. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  11. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  12. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  13. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  14. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  15. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  16. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  17. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  18. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  19. • Connectivity from GW to A • SSH traffic traverses IDS • SSH is 1-link fault tolerant S1 GW IDS A S2 Traffic 5 Friday, August 16, 13

  20. OpenFlow Fast Failover Match Instructions inPort = GW , tpDst = 22 Group 1 inPort = IDS , tpDst = 22 Group 2 Match Instructions inPort = S2 , tpDst = 22 Group 2 tpDst = 22 Group 1 Group Type Actions Group Type Actions h Fwd IDS i , h Fwd S2 i 1 FF S1 h Fwd S1 i , h Fwd S2 i h Fwd A i 1 FF 2 FF GW IDS A Match Instructions S2 inPort = IDS , tpDst = 22 Group 1 inPort = S1 , tpDst = 22 Group 2 inPort = GW , tpDst = 22 Group 2 Group Type Actions h Fwd A i , h Fwd S1 i 1 FF h Fwd IDS i 2 FF 6 Friday, August 16, 13

  21. Why not Frenetic? • Frenetic provides a declarative language for expressing forwarding policies... • ... in terms of hop-by-hop forwarding steps • Example: ¡ ¡(GW ¡ ¡ � ¡S1) ¡+ ¡(S1 ¡ � ¡IDS) ¡ + ¡(IDS ¡ � ¡S2) ¡+ ¡(S2 ¡ � ¡A) • What to do if next hop fails? GW S1 IDS S2 A 7 Friday, August 16, 13

  22. Our Approach: FatTire “Fault Tolerating Regular Expressions” Key Ingredients: • Hop-by-hop forwarding → paths • Deterministic → non-deterministic • Explicit fault-tolerance constructs Challenges: • FatTire programs may specify overlapping paths • OpenFlow tables are deterministic • Global analysis to provide fault-tolerance guarantees 8 Friday, August 16, 13

  23. ¡ ( All ¡ � ¡[GW ¡* ¡A] ) • Connectivity from GW to A ∩ ¡ ¡SSH ¡ � ¡[* ¡IDS ¡*] ( ) • SSH traffic traverses IDS ¡ ¡ ∪ ¡¬SSH ¡ � ¡[*] ∩ ¡ ¡SSH ¡ � ¡[*] ¡with ¡1 ¡ • SSH is 1 link fault tolerant ( ) ¡ ¡ ∪ ¡¬SSH ¡ � ¡[*] S1 GW IDS A S2 Traffic 9 Friday, August 16, 13

  24. Programming in FatTire Write programs in terms of regular expressions on forwarding paths • [GW ¡* ¡A] • [GW ¡(S1 ¡| ¡S2) ¡A] Use annotations to specify desired fault tolerance • SSH ¡ � ¡[*] ¡with ¡1 • ¬SSH ¡ � ¡[*] ¡= ¡¬SSH ¡ � ¡[*] ¡with ¡0 10 Friday, August 16, 13

  25. Programming in FatTire Can combine policies with intersection and union: • Intersection adds restrictions on paths ( All ¡ � ¡[GW ¡* ¡A]) ¡ ∩ ¡(SSH ¡ � ¡[*] ¡with ¡1) = SSH ¡ � ¡[GW ¡* ¡A] ¡with ¡1 • Union loosens restrictions on paths ( All ¡ � ¡[GW ¡S1 ¡A]) ¡ ∪ ¡(All ¡ � ¡[GW ¡S2 ¡A]) = All ¡ � ¡[GW ¡(S1 ¡| ¡S2) ¡A] 11 Friday, August 16, 13

  26. FatTire Compiler ∪ ... ∪ 1. Normalize into Disjunctive Normal Form ∩ ∩ ∩ ∩ 2. Partition into traffic equivalence classes ... 3. Compute fault-tolerant forwarding graph GW S1 S2 4. Output hop-by-hop Frenetic policy and IDS IDS S1 compile to OpenFlow rules !!((GW!! ! !S1)! ⊕ !(GW! ! !S2))! +!((S1! ! !IDS)! ⊕ !(S2! ! !IDS)) 12 Friday, August 16, 13

  27. Implementation • Full working prototype implemented in OCaml • Based on an extension of the Frenetic controller with support for OpenFlow 1.3 • Tested on CPqD 1.3 software switch • See paper for preliminary experimental evaluation using Mininet • Code available from https://github.com/frenetic-lang/fattire under an open-source license 13 Friday, August 16, 13

  28. Future Work • Extend to handle quantitative path properties • Bandwidth • Latency • Provide first-class support for other topology changes such as switch failures • Investigate applications of non-deterministic network programs • Investigate other recovery mechanisms 14 Friday, August 16, 13

  29. Thank You FatTire Team: Marco Canini Mark Reitblatt Papers, source code, examples, tutorials, etc. http://frenetic-­‑lang.org Arjun Guha Nate Foster 15 Friday, August 16, 13

  30. Backup Slides 16 Friday, August 16, 13

  31. Update consistency • Semantics of failure recovery => per-packet consistency 17 Friday, August 16, 13

  32. Regular Expression Derivatives 18 Friday, August 16, 13

  33. Path Expressions as verification spec • Dual use as verification specification? 19 Friday, August 16, 13

  34. Interaction of paths ¡ ¡All ¡ � ¡[S1.FW.S3] ¡ ∪ ¡ALL ¡ � ¡[S2.FW.S4] S1 S3 FW S2 S4 20 Friday, August 16, 13

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