Systematic SDN Troubleshooting
LT6 (2/F), Yasumoto International Academic Park, The Chinese University of Hong Kong
Monday, August 12, 2013 (morning)
Presented by: Hongyi Zeng, Marco Canini, Arjun Guha, Nikhil Handigol, Vimalkumar Jeyakumar, Peyman Kazemian, Wenxuan Zhou, Maciej Kuzniar, Peter Peresini, Colin Scott, Cole Schlesinger, Andreas Wundsam
About the Tutorial
This tutorial will be of a mini-workshop style, consisting of several small sessions presented by different speakers of the fields.
Technical Program
-
Frenetic
Nice+SOFT
-
Header Space Analysis+NetPlumber
VeriFlow
-
How did we get into this mess? Isolating Fault-Inducing Inputs to SDN Control Software
Using Packet Histories to Troubleshoot Networks: NetSight
ATPG: An automatic Network Testbench
Motivation
Traditionally, debugging networks has been an art rather than a science. Every day, network engineers wrestle with router misconfigurations, fiber cuts, faulty interfaces, mis-labeled cables, software bugs, intermittent links and a myriad other reasons that cause networks to misbehave, or fail completely. Network engineers hunt down bugs using the most rudimentary tools (e.g. ping, traceroute, SNMP, and tcpdump), and track down root causes using a combination of accrued wisdom and intuition. Debugging networks is only becoming harder as networks are getting bigger and more complex.
The recent development of network troubleshooting tools opens up a whole new research frontline, by laying the foundation to track down bugs in a systematic and formal way. Software-Defined Networking (SDN) results in a layered network management architecture with well defined interfaces between components such as the applications (e.g. routing protocol), the controller and the switches. These tools target different layers of this network architecture, ranging from control program checkers, static data plane checkers, to live debuggers and test packet generators.
In this tutorial, we will present some of these new network troubleshooting tools, describe how they form a debugging toolkit for the network, and teach attendees how to use them. Most of these works have not been presented in SIGCOMM before. We hope the tutorial will familiarize the attendees with this timely area and stimulate discussions and new ideas.
About the Presenters
Hongyi Zeng
Hongyi Zeng is a PhD student in the Department of Electrical Engineering at Stanford University. His research focuses on formal network testing, software-defined network, high performance router architecture, and programmable hardware. Hongyi is also a core developer of NetFPGA and NetFPGA-10G project. He received the Master’s Degree from Department of Electrical Engineering at Stanford in 2010 and the Bachelor’s Degree from Department of Electronic Engineering at Tsinghua University, Beijing, China in 2008.
Marco Canini
Dr. Marco Canini is a senior research scientist at T-Labs, a joint institute of TU Berlin and Telekom Innovation Laboratories. He obtained his Ph.D. degree in Computer Science and Engineering from the University of Genoa in 2009 after spending the last year as a visiting student at the University of Cambridge, Computer Laboratory. He holds a laurea degree with honors in Computer Science and Engineering from the University of Genoa. He also held positions at Intel Research and Google, and he was a postdoctoral researcher at EPFL from 2009 to 2012. Dr. Canini has published more than 20 papers, and served in a number of program committees. Recently, he collaborated with Princeton University on a project to develop techniques for discovering software faults in the emerging field of software-defined networking. Results of this work have appeared in two articles published in top venues (NSDI’12 and CoNEXT’12).
Arjun Guha
Arjun Guha is an Assistant Professor of Computer Science at the University of Massachusetts Amherst. He received his PhD from Brown University in 2012. His dissertation research covered semantics, type systems, and program analysis for JavaScript, with applications to Web security. Arjun spent 2012-2013 as a postdoc at Cornell University, working with Nate Foster on the Frenetic project.
Nikhil Handigol
Nikhil Handigol is a PhD candidate in the Computer Science Department at Stanford University, graduating in June 2013. His research at Stanford focuses on SDN and the architecture of the future Internet. He has been involved with OpenFlow since 2008. In particular, his PhD dissertation work focuses on using Software-Defined Networking to systematically debug and troubleshoot networks. He is also a core member of the Mininet development team and has contributed extensively to Mininet 2.0, the high-fidelity network emulator. He is also the creator of Aster*x, the OpenFlow-based load-balancing application, which he demonstrated on a US-wide OpenFlow network in 2010. He received his B.Tech. in Computer Science and Engineering from the Indian Institute of Technology Madras, India in 2008.
Peyman Kazemian
Peyman Kazemian is receiving his PhD from Stanford University in June 2013 where he was advised by prof. Nick McKeown. He has been involved with the OpenFlow project since 2008 and his main research focus is on network and SDN testing, debugging and troubleshooting. Peyman is currently a consultant and instructor in SDN Academy.
Wenxuan Zhou
Wenxuan Zhou is a Ph.D. student in Computer Science at the University of Illinois at Urbana-Champaign (UIUC), advised by Prof. Matthew Caesar. Her research focuses on improving security and responsiveness of large-scale networked systems, with an emphasis on software-defined networks, data centres, and the Internet. She received her Bachelor’s degree in Electronic Engineering from Beijing University of Aeronautics and Astronautics, China. More details about her can be found here.
Maciej Kuzniar
Maciej Kuzniar is a PhD student at EPFL, Switzerland under the supervision of Professor Dejan Kostić. His research focuses on distributed systems and computer networks, in particular on improving the reliability of Software Defined Networks. He received his Master of Science degree in Computer Science from AGH University of Science and Technology in Krakow, Poland.
Colin Scott
Colin Scott is a second year PhD student at UC Berkeley with a habit of relentlessly asking questions. He works on distributed systems, particularly software-defined networking and networking technology for the developing world. In a previous life he studied philosophy and computer science at the beautiful University of Washington. More detailed information about him can be found here.
Cole Schlesinger
Cole Schlesinger is a fourth-year Ph.D. student at Princeton University advised by David Walker. His research focuses on developing safe and robust abstractions for programming software-defined networks, which are accompanied by formal models and proved-correct guarantees. His current work on the Frenetic project is driven by his background in formal methods and program verification in the programming languages community. Detailed information and software releases can be found here.
Andreas Wundsam
Andreas Wundsam is a member of the controller platform team at Big Switch Networks and a Visiting Researcher at ICSI, Berkeley. He received his Ph.D. in 2011 from TU Berlin, advised by Anja Feldmann. His Ph.D. thesis ‘Towards Improved Control and Troubleshooting for Operational Networks’ focuses on improving the debugging and troubleshooting for Virtual and Software Defined Networks and was the first larger effort in the space. His system OFRewind first demonstrated the improved troubleshooting capabilities available in SDN networks by enabling replay debugging of an OpenFlow domain. He is working on several aspects of Software Defined Networking, including further improved troubleshooting, control architecture and distribution of controllers.