Where is the Debugger for my Software-Defined N etwork? [ ndb ]
description
Transcript of Where is the Debugger for my Software-Defined N etwork? [ ndb ]
![Page 1: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/1.jpg)
1
Where is the Debugger for my Software-Defined Network?
[ndb]
Nikhil Handigol, Brandon Heller, Vimalkumar Jeyakumar,David Mazières, Nick McKeown
Stanford University
![Page 2: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/2.jpg)
2
Bug story: incomplete handoverA
B
Switch X
WiFi AP Y WiFi AP Z
![Page 3: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/3.jpg)
3
Debugging SDNs
• Bugs can be anywhere in the SDN stack– Hardware, control plane logic, race conditions
• Switch state might change rapidly• Bugs might show up rarely
![Page 4: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/4.jpg)
4
How can we exploit the SDN architecture to systematically track down
the root cause of bugs?
![Page 5: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/5.jpg)
5
ndb: Network Debugger
Goal– Capture and reconstruct the sequence of events
leading to the errant behavior
Allow users to define a Network Breakpoint– A (header, switch) filter to identify the errant behavior
Produce a Packet Backtrace– Path taken by the packet– State of the flow table at each switch
![Page 6: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/6.jpg)
6
Debugging software programsFunction A():
i = …; j = …; u = B(i, j)
Function B(x, y):k = …;
v = C(x, k)
Function C(x, y):…w = abort()
Breakpoint “line 25, w = abort()”
Backtrace File “A”, line 10, Function A()File “B”, line 43, Function B()File “C”, line 21, Function C()
![Page 7: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/7.jpg)
7
Breakpoint “ICMP packets A->B, arriving at X, but not Z”
Backtrace Switch X: {inport: p0, outports: [p1] mods: [...] matched flow: 23 [...] matched table version: 3
}Switch Y: {inport p1, outports: [p3]mods: ......
}
Y
X
Debugging networks
A
B
Switch X
WiFi AP Y WiFi AP Z
![Page 8: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/8.jpg)
8
Using ndb to debug common issues
Reachability – Symptom: A is not able to talk to B– Breakpoint: “Packet A->B, not reaching B”
Isolation – Symptom: A is talking to B, but it shouldn’t– Breakpoint: “Packet A->B, reaching B”
Race conditions – Symptom: Flow entries not reaching on time– Breakpoint: “Packet-in at switch S, port P”
![Page 9: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/9.jpg)
9
So, how does ndb work?
![Page 10: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/10.jpg)
10
Control Plane
Flow Table State RecorderMatch ACT
Match ACT
PostcardCollector
S
BreakpointSwitch = S
IP src = A, IP dst = BTCP Port = 22
B
A
![Page 11: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/11.jpg)
11
PostcardCollector
Control Plane
Flow Table State Recorder
1. <Match, Action>2. <Match, Action>3. <Match, Action>4. <Match, Action>5. <Match, Action> 6. …7. …
1. <Match, Action>2. <Match, Action>3. <Match, Action>4. <Match, Action>5. <Match, Action> 6. …7. …
1. <Match, Action>2. <Match, Action>3. <Match, Action>4. <Match, Action>5. <Match, Action> 6. …7. …
1. <Match, Action>2. <Match, Action>3. <Match, Action>4. <Match, Action>5. <Match, Action> 6. …7. …
B
A
![Page 12: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/12.jpg)
12
PostcardCollector
Control Plane
Flow Table State Recorder
<Flow Table State, Version>
<Datapath ID, Packet ID, Version>
![Page 13: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/13.jpg)
13
Who benefits
Network developers– Programmers debugging control programs
Network operators– Find policy errors– Send error report to switch vendor– Send error report to control program vendor
![Page 14: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/14.jpg)
14
Performance and scalability
Control channel– Negligible overhead– No postcards – Extra flow-mods
Postcards in the datapath– Single collector server for the entire Stanford backbone– Selective postcard generation to reduce overhead– Parallelize postcard collection
![Page 15: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/15.jpg)
15
Status
First working prototype of ndb– Works without change to switches or controller
Code undergoing heavy churn– Will be made available once stable
![Page 16: Where is the Debugger for my Software-Defined N etwork? [ ndb ]](https://reader036.fdocuments.net/reader036/viewer/2022070501/5681692f550346895de076c9/html5/thumbnails/16.jpg)
16
• ndb: Network Breakpoint + Packet Backtrace
• Systematically track down root cause of bugs
• Practical and deployable today
Summary