Advanced OpenFlow Topics

In the previous chapter, we looked at some of the basic concepts of OpenFlow, Mininet, and the Ryu controller. We proceeded to dissect and construct an OpenFlow switch in order to understand Ryu's framework as well as looking at one of Ryu's firewall applications as a reference for the API interface. For the same Mininet network, we were able to switch between a simple switch and a firewall by just replacing one software application with another. Ryu provides Python modules to abstract basic operations such as switch feature negotiation, packet parsing, OpenFlow message constructs, and many more. This allows us to focus on the networking logic of our application. Since Ryu was written in Python, the application code can be written in our familiar Python language as well.

Of course, our goal is to write our own applications. In this chapter, we will take what we have learned so far and build on top of that knowledge. In particular, we will look at how we can build several network applications, such as a Border Gateway Protocol (BGP) router. We will start by examining how we can decode OpenFlow events and packets via the Ryu framework. Then we will build the following network applications gradually from one to the next:

  • OpenFlow operations with Ryu
  • Packet inspection
  • Static flow router
  • Router with REST API
  • BGP router
  • Firewall

Let's get started!

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.118.140.204