MED: The Monitor-Emulator-Debugger for Software-Defined Networks

Software-Defined Networks (SDN) greatly improves programmability but brings in extra challenges for debugging. We propose an SDN debugging framework, Monitor-Emulator-Debugger (MED). It closely monitors the physical network, and automatically creates an emulator that can be set to the network state at any given point of time. In the emulator, MED synchronously constructs a virtual SDN that is identical to the physical SDN and replays real packet samples. The emulator also handles the non-determinism due to packet reordering. On top of the emulator, we provide fast and efficient debugging tools including loop and reachability detector, race condition detector and forwarding table checker. All the tools run on the emulator without adding any additional overhead to the physical SDN. We implement MED for an OpenFlow-based SDN in a data center network employing 20 switches. Using a combination of micro-benchmarks and real debugging case studies, we show that MED is both fast and useful in SDN debugging. During the evaluation, we reveal two physical switch bugs that have been confirmed by the vendor.

[1]  Maria Rita Palattella,et al.  SDN-RADAR: Network troubleshooting combining user experience and SDN capabilities , 2015, Proceedings of the 2015 1st IEEE Conference on Network Softwarization (NetSoft).

[2]  Marco Canini,et al.  A NICE Way to Test OpenFlow Applications , 2012, NSDI.

[3]  David Walker,et al.  Consistent updates for software-defined networks: change you can believe in! , 2011, HotNets-X.

[4]  Peter Phaal,et al.  InMon Corporation's sFlow: A Method for Monitoring Traffic in Switched and Routed Networks , 2001, RFC.

[5]  Xin Wu,et al.  zUpdate: updating data center networks with zero loss , 2013, SIGCOMM.

[6]  James A. Whittaker,et al.  How Google tests software , 2012, CSIIRW '10.

[7]  Brighten Godfrey,et al.  Debugging the data plane with anteater , 2011, SIGCOMM.

[8]  Anja Feldmann,et al.  OFRewind: Enabling Record and Replay Troubleshooting for Networks , 2011, USENIX Annual Technical Conference.

[9]  David Walker,et al.  Frenetic: a network programming language , 2011, ICFP.

[10]  Xin Jin,et al.  Dynamic scheduling of network updates , 2014 .

[11]  Ion Stoica,et al.  Focus Replay Debugging Effort on the Control Plane , 2010, HotDep.

[12]  John B. Carter,et al.  SDN traceroute: tracing SDN forwarding without changing network behavior , 2014, HotSDN.

[13]  George Varghese,et al.  Header Space Analysis: Static Checking for Networks , 2012, NSDI.

[14]  Qiang Xu,et al.  Enabling layer 2 pathlet tracing through context encoding in software-defined networking , 2014, HotSDN.

[15]  Ulas C. Kozat,et al.  On diagnosis of forwarding plane via static forwarding rules in Software Defined Networks , 2013, IEEE INFOCOM 2014 - IEEE Conference on Computer Communications.

[16]  Nick McKeown,et al.  A network in a laptop: rapid prototyping for software-defined networks , 2010, Hotnets-IX.

[17]  Zhi Liu,et al.  Troubleshooting blackbox SDN control software with minimal causal sequences , 2014 .

[18]  Paul Hudak,et al.  Nettle: Functional Reactive Programming for OpenFlow Networks , 2010 .

[19]  Nick McKeown,et al.  Where is the debugger for my software-defined network? , 2012, HotSDN '12.

[20]  George Varghese,et al.  Automatic Test Packet Generation , 2012, IEEE/ACM Transactions on Networking.

[21]  Nick McKeown,et al.  OpenFlow: enabling innovation in campus networks , 2008, CCRV.

[22]  Nick McKeown,et al.  I Know What Your Packet Did Last Hop: Using Packet Histories to Troubleshoot Networks , 2014, NSDI.

[23]  George Varghese,et al.  Real Time Network Policy Checking Using Header Space Analysis , 2013, NSDI.