Chapter 9. Building an SDN Framework
We can trace the history of the software-defined networks (SDN) concept reasonably well back to 2007−2008, when Nicira/VMware, NOX, and other related university efforts first appeared on the scene. Since that time, SDN as a technology has evolved and advanced, but has unfortunately still bounced between a variety of proprietary controller proposals with no firm plan for interoperability between these controllers. Worse still, this lack of interoperability between controllers—or how to communicate with them—prevents the applications that network operators, controller vendors, or third-party software houses build to function seamlessly across different controllers. Fast-forward to 2013, and a number of controllers and controller strategies exist but still none of them work together—at least easily. This certainly is a problem looking for a solution that we think can be solved by defining an SDN framework that is built upon an open source code foundation to ensure not only its syntactic correctness, but its semantic correctness, too. Then that framework and its ancillary components, such as protocols or protocol extensions, can be standardized at a standards organization such as the IETF.
In this chapter, we will introduce and describe just such an idealized SDN framework to which controllers might rally around. This framework first came from proof-of-concept work we did at Juniper, but now also appears in a slightly different form, as ...