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

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

description

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. - PowerPoint PPT Presentation

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 ]

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 ]

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 ]

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 ]

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 ]

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 ]

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 ]

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 ]

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 ]

9

So, how does ndb work?

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

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 ]

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 ]

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 ]

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 ]

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 ]

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 ]

16

• ndb: Network Breakpoint + Packet Backtrace

• Systematically track down root cause of bugs

• Practical and deployable today

Summary