Developer Explains How To Design a Software-Defined Networking App
Andy Pearce last week detailed how he designed a proof-of-concept software-defined networking (SDN) app, which turned out to be a nontrivial assignment, even for a veteran networking developer with 20 years of experience.
Previously, as reported here, Pearce's observations on the ups and downs he experienced as a proficient C++ developer in building a Java-based network tapping application were presented in a webinar produced by SDNCentral in conjunction with the nonprofit Open Networking Foundation (ONF), which commissioned the educational exercise. The main takeaway, as explained by webinar host Roy Chua at SDNCentral, was "How does network programming change from the way of the past to the way of the future where SDN is the prominent framework?"
That April 11 webinar, along with audience questions and answers, slides, a transcript, and podcast, was recently made available for on-demand replay (requires free registration with SDNCentral).
Along with the Webinar, Pearce, who works for network virtualization company Wiretap Labs, is writing a three-part blog series on the ONF site to explain the ins and outs of developing an app using the much-hyped but still little-used SDN technology.
The app was based on the OpenFlow controller protocol created by the ONF and developed on OpenDaylight, a Linux Foundation project providing "an open platform for network programmability to enable SDN and create a solid foundation for [network functions virtualization] (NFV) for networks at any size and scale."
After the Webinar, Pearce fielded questions from the audience, one of whom wanted to know if Pearce looked at writing the app on other controllers and why OpenDaylight was chosen. "We decided to use the OpenDaylight controller because its development is supported by several major equipment vendors, it has a large number of developers working on it and it seems to be emerging as the standard controller for many different applications," Pearce said. "While there were other controllers available in the open source world, it seemed to us that OpenDaylight had a lot of momentum at the point we picked it."
Another question -- more than a dozen were asked, speaking to the amount of interest in the new technology -- got down to basics and asked if SDN was a new way of networking. "SDN is a new way to configure, manage and monitor the network infrastructure," Pearce replied. "SDN does not always change the protocols used by the switches and other devices, but it does allow the network infrastructure to be reconfigured programmatically, usually from a central location. Most SDN implementations also separate out the control plane from the data-plane on the device, choosing to run the control logic off-device, in a central location, on standard off-the-shelf x86 servers."
In the first post of his accompanying three-part blog series, Pearce detailed how his assignment to create the sample app came about through the commission by the ONF and the initial work involved.
"SDN is appealing for network applications developers like me because it allows the capabilities of network devices to be accessed remotely and in a fairly unified way," Pearce wrote in his first post. "SDN has the potential to transform the network from a collection of discrete devices, each configured individually with files and scripts, into a powerful virtualized platform for developers to use for building innovative applications.
"As exciting as this sounds, the full potential of SDN has yet to be realized. We recognized that by sharing my experiences in developing ONF’s application, we could hopefully encourage others to experiment more with OpenFlow."
Last week, Pearce expounded on his educational experience, providing an overview of his SampleTap network monitoring tool. "While SampleTap is not meant to be a highly scalable or robust tapping app for enterprise-wide deployments, the design should allow it to be used within most environments for simple monitoring and educational purpose," he said.
Pearce explained the app lets network administrators define somewhat complicated matching criteria for network traffic flowing through a switch and specify a policy concerning how the traffic should be redirected to various devices. This is done by specifying the switches and ports the devices use to connect to a network.
He further explains how the app can operate in an inline mode or in a tap-aggregation mode, wherein an OpenFlow-enabled switch mimics a Network Packet Broker (NPB) to collect multiple tap interfaces from various switches. Pearce and his helpers -- he consulted with OpenDaylight developers when he ran into tough problems -- decided the tap-aggregation mode was more relevant to actual use cases and supported by most switches.
"SampleTap is useful for simple, everyday troubleshooting and analysis," Pearce concluded. "While an OpenFlow switch cannot replace all of the existing functions that NPBs provide, users can implement tapping via a simple, Web-based user interface without the need to physically configure taps, span ports and recording or inspection devices. As a result, this OpenFlow-based tapping application should make identifying and capturing highly specific flows within the network much more convenient and cost-effective."
In the third and final installment of his series, Pearce said he would go into detail about the nuts and bolts involved in actually coding the SampleTap app, which is now available on GitHub.
David Ramel is the editor of Visual Studio Magazine.