Models and techniques for verification of Software Defined


































- Slides: 34
Models and techniques for verification of Software Defined Networks Victor Altukhov Eugene Chemeritsky Vladislav Podymov Vladimir Zakharov Applied Research Center for Computer Networks
Outline Introduction Software Defined Networks Packet Forwarding Policies Model Policy language Verifying monitor Experiments & Comparison
What is Software What is. Defined SDN? Network? Conventional network Application Host Forwarding state Port Link Switch B A
What is SDN? Conventional network Task Application Topology … How to forward a packet Forwarding Packetstate Packet B A
What is SDN? Conventional network Application decentralized control non-uniformity Forwarding state App FS A App FS B
What is SDN? Conventional SDN network Controller decentralized control non-uniformity App FS A App FS B
What is SDN? SDN Controller Application centralized control uniformity Control plane Open. Flow Data plane FS FS B A FS FS
What is SDN? SDN Controller Application Upd centralized control uniformity Control plane Open. Flow Data plane Don’t Ok, I know can what doto it do FS FS B A FS FS
What. Forwarding is PFP? What is Packet Policy? Example: imposed on a to guarantee that its behavior is
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 1 2 3 4 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 and consider STATIC PFPs w. r. t. to TIMELINE
How to check PFPs? M P Network model Fast! ~ 10μs Formal specification M ⊧P Model checking Fast! ~ 10μs
Packet state Switch #2 Port #1 Header #h 2 Switch #1 Port #1 Header #h 1 h 2 h 1 A Switch #4 Port #1 Header #h 3 h 4 B Switch #4 Port #3 Header #h 4
Packet state Switch #1 Port #1 Header #h 1 A Switch #w #2 Port #p #1 Header #h #h 2 Switch #4 Port #1 Header #h 3 B Switch #4 Port #3 Header #h 4
Packet state Switch #w #W Port #p #P Header #h #H 0 … 1 sizew S 1 … sizep 1 0 … 0 sizeh is the set of all packet states
Raw model is an explicit description of key SDN components such as: rule
Raw model is an explicit description of key SDN components such as: table rule default
Raw model is an explicit description of key SDN components such as: Switch table
Relational model Step ⊆ S x S In ⊆S Out ⊆S
Relational model y) S x S Step (x, ⊆ BDD In BDD (x) Out ⊆S (x)⊆ S BDD
PFP Specification Language: syntax Atoms: In (x) Step (x, y) First order logic constructors: ⋁ x=y x. w = y. w x. p = y. p x. h = y. h State equalities: Closure constructors: + F (x, y) [i 1, i 2] F (x, y) & Out (x) � ∀ ∃ x = const x. w = const x. p = const x. h = const – transitive closure – bounded transitive closure
PFP SL: semantics Given a relational model a PFP SL formula ( Step, , In, , Out, , …)) F(x 1, …, xn) defines a relation RF ⊆ S × … × S How? n times
PFP SL: semantics Given a relational model a PFP SL formula ( Step, , In, , Out, , …)) F(x 1, …, xn) defines a relation RF ⊆ S × … × S How? Step (x, y) Out (x) n times In (x) …=… Obvious
PFP SL: semantics Given a relational model a PFP SL formula ( Step, , In, , Out, , …)) F(x 1, …, xn) defines a relation RF ⊆ S × … × S How? n times F 1 (…) ⋁ F 2 (…) F 1 (…) & F 2 (…) � F (…) Union Intersection Complement
PFP SL: semantics Given a relational model a PFP SL formula ( Step, , In, , Out, , …)) F(x 1, …, xn) defines a relation RF ⊆ S × … × S How? n times ∀x F (…) Universal projection ∃x F (…) Existential projection
PFP SL: semantics Given a relational model ( Step, , In, , Out, , …)) F(x 1, …, xn) a PFP SL formula defines a relation RF ⊆ S × … × S How? + F (x, y) [i 1, i 2] F (x, y) n times Transitive closure Bounded transitive closure
PFP SL: examples Reachability ∀x A(x) ∃y No topological loops �∃x, y, z In (x) & Short routes only �∃x, y In (x) & B (y) & Step*(x, y) & + Step (y, z) & y. w = z. w Out (y) & [1, 3] + Step (x, y) & �Step (x, y)
What else? continuously changes Model should be We should be able to at every instant Model on-line The update rate for Model should surpass the update rate for We can do it (to some extent) not discussed
How does it work? Main usage now: Controller Loader Proxy Checker Network
We tested it for Stanford University Network • • • 16 switches Fat Tree topology 48 tables 757000 forw. rules 1500 ACL rules >100 VLAN
Tool comparison Tool Build (ms. ) Update (ms. ) Policies Open. Flow concepts VERMONT (2014) 4600 100 - 600 FO[TC] (strict superset of others) Full Net. Plumber (2013) 37000 2 - 1000 CTL Partial Veri. Flow (2013) > 4000 68 -100 Small fixed set Minimal AP Verifier (2013) 1000 0. 1 Small fixed set Minimal Flow. Checker (2010) 1200000 350 - 67000 CTL Full Anteater (2011) 400000 ? ? ? Small fixed set No
The End Me: valdus@yandex. ru