Slides

advertisement
VeriCon: Towards Verifying
Controller Programs in SDNs
(PLDI 2014)
Thomas Ball, Nikolaj Bjorner, Aaron Gember,
Shachar Itzhaky, Aleksandr Karbyshev, Mooly Sagiv,
Michael Schapira, Asaf Valadarsky
Traditional Computer Networks
Control plane:
distributed algorithms
Data plane:
packet
streaming
2
New Paradigm:
Software Defined Networking (SDN)
logically-centralized control in software
smart
but slow
software
API to the data plane
(e.g., OpenFlow)
dumb
but fast
hardware
switches
3
Controller: Programmability
APP
APP
APP
Controller
events from switches
topology changes,
traffic statistics,
arriving packets
commands to switches
(un)install rules,
query statistics
4
Desired Network Properties
• Routing
– No forwarding loops, no black holes, …
• Security
– ACL, firewall, middleboxes, …
• Traffic Engineering
– Load balancing, VM migration, …
• …
5
How can we guarantee
such properties?
6
Traditional Networks vs. SDN
• Guaranteeing these properties in a traditional
network is nearly impossible
– Switch / Router code is a “black box”
– Protocols are distributed across devices.
• SDN opens up the possibility of applying
formal software verification to networks!
– Accessible code
– Centralized control
7
Existing Approaches
• Finite-state model checking
Might miss
bugs!
– E.g., NICE & Verificare
• Analyzing network snapshots
– E.g., HSA
Discover bugs
too late
&
run-time
overhead
• Run-time checks
– E.g., VeriFlow & NetPlumber
8
Dream Scenario
• Verify network-wide properties
in compile time
– Find violations before they occur!
• Provable verification
– Prove correctness for correct programs
– Find a counterexample for incorrect programs
(useful for debugging)
9
The VeriCon Tool
Restrictions on
Topology (T)
Controller Code
(P)
Desired
Properties 
Verification
Conditions
Generator
T P “” 
SAT Solver
Counterexample
Proof
10
Running Times – Correct Programs
Program
Description
Time to prove
(seconds)
Firewall
A basic firewall abstraction.
0.11
MigFirewall
Firewall supporting migration of “safe” hosts.
0.12
Learning
A simple learning switch.
0.14
Resonance
Access control for host authentication in enterprises.
0.18
Stratos
Forwarding traffic through a sequence of middleboxes.
0.09
11
Running Times – Incorrect Programs
Program
Description
Time to
disprove
(seconds)
Firewall-Bug 1
Forgot to check if packets in port 2 are from 0.13
a trusted location.
Firewall-Bug 2
Forgot to add the definition for a “trusted
host”.
0.09
Learning-Bug 3
Forgot to forward the packets.
0.15
Resonance-Bug 1
Forgot to define that the states a host could 0.07
be at are mutually exclusive.
12
VeriCon: Challenges and Solutions
• Programmer must specify properties in 1st-order logic
– We build a tool that infers formulas for SDN programs
– Future research: static analysis
• SDN programs must be coded in a specific language (CSDN)
– VeriCon can be extended to support Java, Python, etc.
• SAT solver might not terminate!
– SDN programs considered are in a sub-family of FOL
– … solver termination guaranteed!
• VeriCon assumes atomicity of events
– “Existing” solutions
– Future research: verify stronger properties
13
Summary
• SDN opens up the possibility for applying
formal verification to networks
• VeriCon is the first system to provably verify
SDN programs at compile time
– for unbounded topology, #packets, etc.
14
Thank You
15
Download