Book Image

Software-Defined Networking with OpenFlow - Second Edition

By : SIAMAK AZODOLMOLKY, Oswald Coker
Book Image

Software-Defined Networking with OpenFlow - Second Edition

By: SIAMAK AZODOLMOLKY, Oswald Coker

Overview of this book

OpenFlow paves the way for an open, centrally programmable structure, thereby accelerating the effectiveness of Software-Defined Networking. Software-Defined Networking with OpenFlow, Second Edition takes you through the product cycle and gives you an in-depth description of the components and options that are available at each stage. The aim of this book is to help you implement OpenFlow concepts and improve Software-Defined Networking on your projects. You will begin by learning about building blocks and OpenFlow messages such as controller-to-switch and symmetric and asynchronous messages. Next, this book will take you through OpenFlow controllers and their existing implementations followed by network application development. Key topics include the basic environment setup, the Neutron and Floodlight OpenFlow controller, XORPlus OF13SoftSwitch, enterprise and affordable switches such as the Zodiac FX and HP2920. By the end of this book, you will be able to implement OpenFlow concepts and improve Software-Defined Networking in your projects.
Table of Contents (17 chapters)
Title Page
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
Free Chapter
1
Software-Defined Networks

Understanding SDN


In a bid to understand SDN in relation with OpenFlow, it is necessary to provide a good background on SDN, its motivation, and what it promises. This chapter provides you with the required knowledge prior to the actual setup of SDN/OpenFlow, enabling experimental and developmental environments.

So what is SDN?

Traditional network technologies have existed from the inception of networking, even though various modifications have been made to the underlying architecture and devices (such as switches, routers, and firewalls) and frames and packets have been forwarded and routed using a similar approach resulting in limited efficiency and a high cost of maintenance. As a consequence of this, there was the need to evolve the techniques used in the architecture and operations of networks, which led to the birth of SDN.

SDN, often referred to as a revolutionary new idea in computer networking, promises to dramatically simplify network control and management and enable innovation through network programmability. Network engineers are responsible for configuring policies to respond to a wide range of network events and application scenarios. They manually transform these high-level policies into low-level configuration commands. These very complex tasks are often accomplished with access to very limited tools. Thus, network management control and performance tuning are quite challenging and error-prone tasks.

Another challenge is what network engineers and researchers refer to as internet ossification. Due to its huge deployment base and its impacts on different aspects of our life, the internet has become extremely difficult to evolve both in terms of its physical infrastructure as well as its protocols and performance. As emerging and demanding applications become more complex, the current status quo of the internet seems unable to evolve to address emerging challenges.

Present day network architecture is made up of a control plane, data plane, and management plane where the control and data planes are merged into a machine generally known as inside the box. To avoid these limitations, a new set of networks known as programmable networks have emerged, generally known as out of the box.

The main aim of SDN is to separate the control and data plane and transfer the network intelligence and state to the control plane. Some technologies that have exploited these concepts include Routing Control Platform (RCP), Secure Architecture for the Network Enterprise (SANE), and recently, Ethane. SDN is often related to the OpenFlow protocol. Currently, Open Networking Foundation (ONF) takes on the task of advancing SDN and standardizing OpenFlow, whose latest version is 1.5.0.

Characteristics of SDN

SDN can be recognized and distinguished from other innovative networking technologies by the features discussed in the upcoming sections.

Plane decoupling

Traditional network architecture comprises three distinct planes (control, data, and management), which enable full functionalities:

The main characteristics of SDN are the segregation of the control plane (which determines the way the traffic should be handled) and the data plane (which forwards the traffic based on decisions made by the control plane) based on incoming traffic parameters, such as the MAC address, IP address, and Virtual Local Area Network (VLAN) ID.

In SDN, these policies are determined by the control plane, which is decoupled from the switch (known as the forwarding element) to a logically centralized controller which can physically be distributed and communicated to the forwarding element via a secure link (OpenFlow channel):

In the preceding diagram, the forwarding elements that will operate in SDN environments are designed to handle the data plane. The most predominant forwarding elements are designed to support traditional network architecture and SDN network architecture. Control and management plane functionalities are moved to a high-performance server that serves as the controller.

Central control and simple forwarding elements

Control and management plane hardware and software dedicated resources, which resided on the switches in traditional network architecture, have now been migrated to the controller. This new architecture presents a forwarding element, which maximizes the overall resource management in the topology as the hardware processes less complex codes for forwarding the traffic. These complex algorithms now exist in the controller, and traffic forwarding decisions are made from them, which communicates the best forwarding path for every packet to the forwarding element through a secure channel from the controller to the forwarding elements. These characteristics allow a simpler ASIC to be incorporated into the forwarding elements existing in an SDN infrastructure. This also allows the provisioning of ample resources with respect to the growth in the network size.

Network automation and virtualization

Network automation can be described as a process by which tools are deployed, which allows the automation of configuration, management, and operations of the network by the network administrator. As a result of this, the network administrator has the ability to tailor the network to fulfill the business requirement in real time. The SDN architecture better supports network automation in comparison to traditional network architecture.

Ansible and Puppet are common examples of automation and orchestration tools that assist network administrators with tasks ranging from the management of configuration to deployment of applications seamlessly. Automation makes the network flexible, resilient, easy to manage, and responsive to business needs in real time, which results in reduced operating expenses.

Network virtualization is the abstraction of the physical network to support the running of multiple network logical instances on a common shared physical element. This supports rapid innovation, as services can be at software speed across the entire network.

SDN controllers provide both automation and virtualization to the network by utilizing the northbound and southbound API to communicate with the applications and forwarding elements.