350 likes | 523 Views
Models and techniques for verification of Software Defined Networks. Applied Research Center for Computer Networks. Outline. Introduction. Software Defined Networks. SDN. Packet Forwarding Policies. PFP. Model. Policy language. FO[TC]. Verifying monitor. Vermont.
E N D
Models and techniquesfor verification ofSoftware Defined Networks Applied Research Center for Computer Networks
Outline Introduction Software Defined Networks SDN Packet Forwarding Policies PFP Model Policy language FO[TC] Verifying monitor Vermont Experiments & Comparison
What is SDN? What is Software Defined Network? Conventional network Application Forwarding state Host Port Link Switch B A
What is SDN? Conventional network Task How to forward a packet Application Topology … Forwarding state Packet Packet Packet B A
What is SDN? Conventional network Application Forwarding state decentralized control non-uniformity App App FS FS B App App FS A FS
What is SDN? Conventional network SDN Controller decentralized control centralized control uniformity non-uniformity App App FS FS B App App FS A FS
What is SDN? SDN Controller Application centralized control uniformity Control plane OpenFlow Data plane FS FS B FS A FS
What is SDN? SDN Controller Application Upd Upd centralized control uniformity Control plane OpenFlow Ok, I can do it Don’t know what to do Data plane FS FS B FS A FS
What is PFP? What is Packet Forwarding Policy? Example: Requirements imposed on a network to guarantee that its behavior is safe correct secure …
What is PFP? Example: Reachability Packets from the host A will eventually reach the host B B A
What is PFP? Example: No topological loops Packets do not traverse the same switch twice B A
What is PFP? Example: Short routes only All hosts are reached in at most 3 hops B A
What is PFP? Why ? Hardware errors Software (application) errors We want to check if PFPs hold in a real SDN Static and consider PFPs Timeline w.r.t. to
How to check PFPs? Policies Network Fast! M P ~ 10μs Network model Formal specification Fast! ⊧ M P ~ 10μs Model checking
Packet state Switch #2 Port#1 Header #h2 Switch #1 Port#1 Header#h1 Switch #4 Port #1 Header#h3 h3 h2 B h1 h4 Switch #4 Port#3 Header #h4 A
Packet state Switch #2 Port#1 Header #h2 Switch #w Port#p Header #h Switch #1 Port#1 Header#h1 Switch #4 Port #1 Header#h3 B Switch #4 Port#3 Header #h4 A
Packet state Switch #w Port#p Header #h Switch #w Port#p Header #h sizew sizep sizeh S is the set of all packet states
Raw model is an explicit description of key SDN components such as: (p1, h1) (p2, h2) rule (p, h) … (pk, hk)
Raw model is an explicit description of key SDN components such as: table (p1, h1) rule (p2, h2) rule (p, h) rule … rule (pk, hk) default
Raw model is an explicit description of key SDN components such as: Switch … (p1, h1) table table (p2, h2) … (p, h) … … (pk, hk)
Relational model Step ⊆ S x S In ⊆ S Out ⊆ S
Relational model Step ⊆ S x S (x, y) BDD In (x) ⊆ S BDD Out (x) ⊆ S BDD
PFP Specification Language: syntax In Step Out (x) (x, y) (x) Atoms: ⌝ First order logic constructors: ⋁ & ∀ ∃ x = y x = const State equalities: x.w = y.w x.w = const x.p = y.p x.p = const x.h = y.h x.h = const Closure constructors: + F (x, y) – transitive closure [i1, i2] F (x, y) – bounded transitive closure
PFP SL: semantics (Step, In, Out, …) Given a relational model F (x1, …, xn) a PFP SL formula defines a relation RF ⊆ S × … × S n times How?
PFP SL: semantics (Step, In, Out, …) Given a relational model F (x1, …, xn) a PFP SL formula defines a relation RF ⊆ S × … × S n times How? Step In (x) (x, y) Obvious Out (x) … = …
PFP SL: semantics (Step, In, Out, …) Given a relational model F (x1, …, xn) a PFP SL formula defines a relation RF ⊆ S × … × S n times F1 F2 (…) (…) How? Union ⋁ F1 F2 (…) (…) Intersection & F (…) ⌝ Complement
PFP SL: semantics (Step, In, Out, …) Given a relational model F (x1, …, xn) a PFP SL formula defines a relation RF ⊆ S × … × S n times How? F ∀ x (…) Universal projection F ∃ x (…) Existential projection
PFP SL: semantics (Step, In, Out, …) Given a relational model F (x1, …, xn) a PFP SL formula defines a relation RF ⊆ S × … × S n times + How? F (x, y) Transitive closure [i1, i2] F (x, y) Bounded transitive closure
PFP SL: examples Reachability y A B Step * ∀ x (x) ∃ (y) & (x, y) No topological loops In Step * ⌝ ∃ x,y,z (x) (x, y) & & + Step (y, z) y.w = z.w & Short routes only In Out ⌝ (x) (y) ∃ x,y & & + [1, 3] Step Step ⌝ (x, y) (x, y) &
What else? Network continuously changes adequate Model should be at every instant We should be able to update Model on-line Model The update rate for Network should surpass the update rate for We can do it not discussed (to some extent)
How does it work? Controller Loader Main usage now: Checker Proxy Network
We tested it for Stanford University Network • 16 switches • Fat Tree topology • 48 tables • 757000 forw. rules • 1500 ACL rules • >100 VLAN
The End Me: valdus@yandex.ru