1 / 16

Where is the Debugger for my Software-Defined N etwork? [ ndb ]

Where is the Debugger for my Software-Defined N etwork? [ ndb ]. Nikhil Handigol, Brandon Heller, Vimalkumar Jeyakumar , David Mazières , Nick McKeown. Stanford University. Bug story: incomplete handover. A. Switch X. WiFi AP Y. WiFi AP Z. B. Debugging SDNs.

dinah
Download Presentation

Where is the Debugger for my Software-Defined N etwork? [ ndb ]

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Where is the Debugger for my Software-Defined Network?[ndb] Nikhil Handigol, Brandon Heller, VimalkumarJeyakumar, David Mazières, Nick McKeown Stanford University

  2. Bug story: incomplete handover A Switch X WiFi AP Y WiFi AP Z B

  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

  4. How can we exploit the SDN architecture to systematically track down the root cause of bugs?

  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

  6. Debugging software programs Function A(): i = …; j = …; u = B(i, j) • Breakpoint • “line 25, w = abort()” • Backtrace • File “A”, line 10, Function A() • File “B”, line 43, Function B() • File “C”, line 21, Function C() Function B(x, y): k = …; v= C(x, k) Function C(x, y): … w= abort()

  7. Debugging networks A • 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: ... • ... • } Switch X X WiFi AP Z WiFi AP Y B Y

  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”

  9. So, how does ndb work?

  10. Match Match ACT ACT Control Plane Flow Table State Recorder B S A Breakpoint Switch = S IP src = A, IP dst = B TCP Port = 22 Postcard Collector

  11. Control Plane • <Match, Action> • <Match, Action> • <Match, Action> • <Match, Action> • <Match, Action> • … • … Flow Table State Recorder • <Match, Action> • <Match, Action> • <Match, Action> • <Match, Action> • <Match, Action> • … • … B • <Match, Action> • <Match, Action> • <Match, Action> • <Match, Action> • <Match, Action> • … • … • <Match, Action> • <Match, Action> • <Match, Action> • <Match, Action> • <Match, Action> • … • … A Postcard Collector

  12. Control Plane Flow Table State Recorder <Datapath ID, Packet ID, Version> Postcard Collector <Flow Table State, Version>

  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

  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

  15. Status First working prototype of ndb • Works without change to switches or controller Code undergoing heavy churn • Will be made available once stable

  16. Summary • ndb: Network Breakpoint + Packet Backtrace • Systematically track down root cause of bugs • Practical and deployable today

More Related