In this article, we use the EstiNet OpenFlow network simulator and emulator to perform functional validation and performance evaluation of the widely-used NOX OpenFlow controller. EstiNet uses an unique kernel reentering simulation methodology to enable real applications to run on nodes in its simulated network. As a result, without any modification, the real NOX OpenFlow controller readily runs on a host in an EstiNet simulated network to control thousands of simulated OpenFlow switches. Using EstiNet as the testing and evaluation platform, we studied how NOX implements the learning bridge protocol (LBP) and the spanning tree protocol (STP) based on the OpenFlow 1.0 protocol. Our simulation results show that these protocols, which are implemented as loadable components in NOX, do not synchronize their gathered information well and thus NOX may give wrong forwarding instructions to an OpenFlow switch after a link failure. We also found that when NOX’s STP detects a link failure, it does not send a message to an affected OpenFlow switch to delete obsolete flow entries. As a result, because the obsolete flow entry expires only after an idle period of 5 seconds, it may be matched and used endlessly causing the OpenFlow switch to continue to forward incoming matched packets onto a broken link. Our results reveal that the LBP and STP components provided in NOX serve only as basic implementations and lack information synchronization, and there is much room left to further enhance
[1]
Mike Hibler,et al.
An integrated experimental environment for distributed systems and networks
,
2002,
OPSR.
[2]
David E. Culler,et al.
PlanetLab: an overlay testbed for broad-coverage services
,
2003,
CCRV.
[3]
Nick McKeown,et al.
OpenFlow: enabling innovation in campus networks
,
2008,
CCRV.
[4]
Martín Casado,et al.
NOX: towards an operating system for networks
,
2008,
CCRV.
[5]
Thomas R. Henderson,et al.
Network Simulations with the ns-3 Simulator
,
2008
.
[6]
Martín Casado,et al.
Extending Networking into the Virtualization Layer
,
2009,
HotNets.
[7]
Nick McKeown,et al.
A network in a laptop: rapid prototyping for software-defined networks
,
2010,
Hotnets-IX.
[8]
David Walker,et al.
Frenetic: a network programming language
,
2011,
ICFP.
[9]
Marco Canini,et al.
A NICE Way to Test OpenFlow Applications
,
2012,
NSDI.
[10]
Shie-Yuan Wang,et al.
EstiNet openflow network simulator and emulator
,
2013,
IEEE Communications Magazine.