Presentation is loading. Please wait.

Presentation is loading. Please wait.

Automated Network Repair with Meta Provenance

Similar presentations


Presentation on theme: "Automated Network Repair with Meta Provenance"— Presentation transcript:

1 Automated Network Repair with Meta Provenance
Fix it! Yang Wu* Ang Chen* Andreas Haeberlen* Wenchao Zhou Boon Thau Loo* * University of Pennsylvania Georgetown University Y. Wu HotNets-2015 (Nov 17, 2015)

2 server not getting requests?
Motivation: Automated repair Networks can have bugs How can we find and fix bugs quickly? else if (switch == S1 && protocol == HTTP) then action = output:3. Copy-and-paste bug!!! else if (switch == S1 && protocol == HTTP) then action = output:5. SDN Controller Why is the backup web server not getting requests? S0 5 S2 3 4 S1 Backup Web Server Main DNS Server Off-loading HTTP HTTP traffic Y. Wu HotNets-2015 (Nov 17, 2015)

3 Goal: Automated repair
Existing debuggers can identify problems But finding effective fixes is still hard Can we automate this? Goal: “Fix it!” button for networks NetSight (NSDI 2014): requests dropped at S2 Treated as given! S0 SDN Controller 5 S2 3 4 S1 Backup Web Server Main DNS Server Why is the backup web server not getting requests? How to make the backup web server get requests? Off-loading HTTP Y. Wu HotNets-2015 (Nov 17, 2015)

4 HTTP Packet received at Main Web Server
Approach: Meta provenance Problem: Finding fixes is hard Idea: Provenance can pinpoint the root cause But previous provenance focus exclusively on data Key idea: Treating program as data meta provenance HTTP Packet received at Main Web Server Matching Flow Entry installed at S1 PacketIn received at Controller Executed If Clause in Controller Program Y. Wu HotNets-2015 (Nov 17, 2015)

5 Output: Possible repairs
How could meta provenance be used? Press “Fix it!” No HTTP Packet received at H2 No Matching Flow Entry installed at S2 No Executed If Clause in Controller Program No Specific Constant Meta provenance is generated Output: Possible repairs How to make the backup web server get requests? Fixed! Fix it! Change “switch == S1” to “switch == S2” Y. Wu HotNets-2015 (Nov 17, 2015)

6 Overview Solution Goal: “Fix-it!” button for SDNs
Challenge: Cannot reason about program changes Goal: “Fix-it!” button for SDNs Approach: Meta provenance Overview Mete provenance model Generating repairs Solution Practical challenges Case study

7 Meta provenance model Constant(“S1”) Provenance Meta Provenance
Explains which inputs contribute to the outputs Explains which parts of the program contribute to the outputs Tuples: inputs, outputs Meta tuples: inputs, outputs, syntactic elements of the program Program: how input derives output Meta program: how the programming language operates Matching Flow Entry installed at S1 PacketIn received at Controller Matching Flow Entry installed at S1 Executed If Clause in Controller Program PacketIn received at Controller Constant Constant(“S1”) FlowEntry(“S2”, “HTTP”, “Output-1”) if (switch == S1 && protocol == HTTP) then action = output:5 if (operator == “==” && variable == constant) then expression = true

8 HTTP Packet received at Main Web Server
Meta provenance: Example Finds relevant syntactic elements else if (switch == S1 && protocol == HTTP) then action = output:3. else if (switch == S1 && protocol == HTTP) then action = output:5. HTTP Packet received at Main Web Server S0 1 SDN Controller 5 S2 3 4 S1 Backup Web Server Main DNS Server Matching Flow Entry installed at S1 Executed If Clause in Program HTTP traffic Satisfied Condition in Program Operator == in Program Variable in Program Constant in Program Y. Wu

9 Overview Solution Goal: “Fix-it!” button for SDNs
Challenge: Cannot reason about program changes Goal: “Fix-it!” button for SDNs Approach: Meta provenance Overview Mete provenance model Generating repairs Solution Practical challenges Case study

10 received at Controller No Satisfied Condition
Generating repairs counter-factual reasoning generates targeted repairs else if (switch == S1 && protocol == HTTP) then action = output:5. else if (switch == S1 && protocol == HTTP) then action = output:3. No HTTP Packet received at H2 Negative provenance (SIGCOMM 2014) S0 SDN Controller 5 S2 3 4 S1 Backup Web Server Main DNS Server No Matching Flow Entry installed at S2 Off-loading HTTP No Executed If Clause in Controller Program PacketIn received at Controller No Satisfied Condition in Controller Program Change “switch == S1” to “switch == S2” Operator == in Program Variable in Program Wrong Constant in Program Y. Wu

11 Practical challenges: Infinite repairs
Problem: Meta-provenance tree is infinite Idea: Programmers make certain errors more often We can explore repairs in cost order, up to some cut-off Other challenges are discussed in the paper Y. Wu HotNets-2015 (Nov 17, 2015)

12 How to make the backup web server get requests?
Case study We built an initial prototype of a debugger We defined a meta provenance model for NDLOG Our prototype fixed the copy-and-paste bug automatically else if (switch == S1 && protocol == HTTP) then action = output:5. S2 else if (switch == S1 && protocol == HTTP) then action = output:3. S0 SDN Controller 5 S2 3 4 S1 Backup Web Server Main DNS Server How to make the backup web server get requests? Off-loading HTTP Fix it! Y. Wu

13 Summary Goal: Automated repairs for networks Approach: Meta Provenance
Ideally, can we have an automatic “Fix it!” button? Approach: Meta Provenance An extension of network provenance that treats program as data. Uses counterfactual reasoning to generate targeted repairs. Several interesting challenges Example: Provenance trees are infinite. We are currently building a complete debugger based on meta provenance Questions? Y. Wu HotNets-2015 (Nov 17, 2015)


Download ppt "Automated Network Repair with Meta Provenance"

Similar presentations


Ads by Google