O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Software-Defined Networking with OpenFlow - Second Edition

Book Description

Master OpenFlow concepts to improve and make your projects efficient with the help of Software-Defined Networking.

About This Book

  • Master the required platforms and tools to build network applications with OpenFlow
  • Get to grips with the updated OpenFlow and build robust SDN-based solutions
  • An end-to-end thorough overview of open-source switches, controllers, and tools

Who This Book Is For

If you are a network/system administrator or a system engineer and would like to implement OpenFlow concepts and take Software-Defined Networking on your projects to the next level, then this book is for you. If you are aware of broad networking concepts, and are familiar with the day-to-day operation of computer networks, you will find this book very beneficial.

What You Will Learn

  • Explore Software-Defined Networking and activities around SDN/OpenFlow including OpenFlow messages
  • Hardware and software implementations of OpenFlow switches and experiment with Mininet GUI
  • Learn about the role of OpenFlow in cloud computing by configuring and setting up the Neutron and Floodlight OpenFlow controller plugins
  • Simulate and test utilities, and familiarize yourself with OpenFlow soft switches, controllers, virtualization, and orchestration tools
  • Enhance and build environments for Net App development by installing VM's and tools such as Mininet and Wireshark
  • Learn about hardware and software switches and get a feel for active open-source projects around SDN and OpenFlow

In Detail

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.

Style and approach

This book is an easy-to-follow and pragmatic guide networking. Each topic adopts a logical approach and provides hints to help you build and deliver SDN Solutions efficiently.

Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the code file.

Table of Contents

  1. Preface
    1. What this book covers
    2. What you need for this book
    3. Who this book is for
    4. Conventions
    5. Reader feedback
    6. Customer support
      1. Downloading the example code
      2. Downloading the color images of this book
      3. Errata
      4. Piracy
      5. Questions
  2. Software-Defined Networks
    1. Understanding SDN
      1. Characteristics of SDN
        1. Plane decoupling
        2. Central control and simple forwarding elements
        3. Network automation and virtualization
    2. SDN use cases
      1. Data center applications
      2. Campus networks applications
      3. Service provider applications
      4. Mobile network applications
    3. NFV
      1. How is NFV different from SDN?
      2. NFV challenges
    4. Summary
  3. Introducing OpenFlow
    1. Activities around SDN/OpenFlow
    2. Building Blocks of an SDN deployment
      1. Header field
      2. Counters
      3. Actions
      4. Priority
      5. Timeouts
      6. Cookies
      7. Flags
    3. OpenFlow messages
      1. Controller-to-switch
        1. Features
        2. Configuration
        3. Modify-State
        4. Read-State
        5. Packet-out
        6. Barrier
        7. Role-Request
        8. Setting asynchronous configuration
      2. Symmetric messages
        1. Hello
        2. Echo
        3. Errors
        4. Experimenter
      3. Asynchronous messages
        1. Packet-in
        2. Flow-Removal
        3. Port-status
        4. Role-status
        5. Controller-status
        6. Table-status
        7. Request-forward
    4. Northbound interface
    5. Summary
  4. Implementing the OpenFlow Switch
    1. OpenFlow reference switch
      1. Controller-to-switch messages
      2. Asynchronous messages
      3. Symmetric messages
    2. OpenFlow enabled switches
      1. Software-based switches
      2. Hardware-based switches
    3. OpenFlow laboratory with Mininet
      1. Getting started with Mininet
      2. Experimenting with Mininet
      3. Experimenting with Mininet GUI (MiniEdit)
        1. Getting started with MiniEdit
        2. Creating a custom topology on Mininet canvas
      4. Configuring the controller
      5. Configuring the switch
      6. Configuring the host
      7. Setting the MiniEdit preferences
        1. Saving the configuration
      8. Running a Mininet topology simulation, generating logs, and monitoring the flow table
    4. Summary
  5. The OpenFlow Controllers
    1. Software-Defined Networking controllers
    2. Existing implementations
      1. NOX and POX
      2. Running a POX application
      3. NodeFlow
      4. Floodlight
        1. Virtual networking filter
        2. Firewall module
        3. Static flow pusher
        4. Network plugin for OpenStack
    3. ODL
    4. Ryu
      1. Ryu architecture
        1. Ryu libraries
        2. OpenFlow protocol and controller
        3. Managers and core processes
        4. Northbound
        5. Applications
    5. Installation of a Ryu controller
    6. Running a Ryu application
    7. Special controllers
    8. Summary
  6. Setting Up the Environment
    1. Understanding the OpenFlow laboratory
      1. External controllers
      2. Completing the OpenFlow laboratory
        1. Replacing ethX with the name of the unnumbered interface
    2. ODL
      1. ODL controller
      2. ODL-based SDN laboratory
    3. SDN Hub starter VM kit
    4. Summary
  7. Net App Development
    1. Net App 1 - an Ethernet learning switch
      1. Building the learning switch
    2. Net App 2 - a simple firewall
    3. Net App 3 - simple forwarding in OpenDaylight
    4. Net App 4 – simple switching hub using Ryu controller
      1. Executing the Simple Switching Hub
      2. Testing application
    5. Net App 5 – simple router using Ryu controller
      1. Creating the topology on Mininet
      2. IP address configuration on the hosts
      3. Configuring the default gateway on the host
      4. Starting the Ryu controller
      5. Configuring the address of the router (switch)
      6. Configuring the default gateway of the switch
      7. Verification
      8. Conclusion
    6. Net App 6 – simple firewall using Ryu controller
      1. Creating the topology on Mininet
      2. Starting the rest firewall application
      3. Enabling the firewall
      4. Creating rules
      5. Verifying that these rules have been set
      6. ICMP Verification
      7. Configuring deny instructions
      8. Conclusion
    7. Summary
  8. Getting a Network Slice
    1. Network virtualization
    2. FlowVisor
      1. Isolation mechanism
        1. Bandwidth isolation
        2. Topology isolation
        3. Switch CPU isolation
          1. New flow messages
          2. Controller requests
          3. Slow-path packet forwarding
          4. Internal state keeping
        4. Flowspace isolation
          1. OpenFlow control isolation
      2. FlowVisor API
      3. FLOW_MATCH structure
      4. Slice actions structure
    3. FlowVisor slicing
    4. Summary
  9. OpenFlow in Cloud Computing
    1. OpenStack and Neutron
    2. OpenStack Networking architecture
    3. Neutron plugins
    4. Summary
  10. Open Source Resources
    1. Controllers
      1. Beacon
      2. Floodlight
      3. Maestro
      4. Trema
      5. FlowER
      6. Ryu
      7. Open Network Operating System
      8. Atrium
      9. OpenContrail
    2. Miscellaneous
      1. FlowVisor
      2. Flowsim
      3. Avior
      4. RouteFlow
      5. OFlops and Cbench
      6. OSCARS
      7. Twister
      8. FortNOX
      9. Nettle
      10. Frenetic
      11. Open Exchange Software Suite
    3. Summary
  11. The Future of SDN
    1. Packet forwarding innovations beyond OpenFlow
      1. POF
        1. POF architecture
        2. Structure of POFOX
        3. POFSwitch
      2. Programming protocol-independent packet processors
        1. P4 components
        2. Forwarding model of P4
    2. Protocol-independent forwarding
      1. Table Type Patterns
      2. Relationship between TTP and OF-PI
      3. Goals of OF-PI
    3. Optical transport protocol extensions
      1. Generalized Multiprotocol Label Switching
      2. Packet-optical Integration
    4. Summary