Professional Documents
Culture Documents
submitted for
the partial fulfillment of
requirements of
M.S. Software Engineering degree
of BITS
in the presence of
Evaluating Committee
of BITS WILP division
on June 15, 2015
by
Acknowledgements
I thank the Almighty for having helped me take the right decision at every design decision
juncture of this dissertation.
I wish to express my sincere thanks to Mr.Saro Velrajan Director Technology, Aricent for
guiding me throughout this dissertation.
I am also grateful to Mr.Ravi Saripalli Senior Software Engineer, Aricent for helping me
change the Linux Virtual Ethernet Driver(veth)s code at a critical moment of this
dissertation.
I take this opportunity to express my gratitude to all my colleagues & members of Open
Source Community who supported me throughout this venture.
I also wish to thank Prof.Katheeja Parveen, Vignesh Raja K.R. (Research Student, University
of Twente, Netherlands), Arun K Kumar (Technical Leader, Aricent) and all others who have
spent their valuable time in reviewing this dissertation.
Table of Contents
ii
List of Figures
iii
List of Tables
iv
Chapter 1: Introduction
Software defined networks (SDN) is an intriguing next-generation networking that has garnered a great
deal of research interest. By decoupling the control and data planes in network switches and routers, SDN
enables the rapid innovation and optimization of routing and switching equipment. SDN greatly
simplifies network management by offering administrators network-wide visibility and direct control over
the underlying switches from a centralized controller. SDN follows a tiered architecture with a
southbound interface defined by the OpenFlow protocol that enables the interaction between the control
and data planes, and a northbound API that presents a network abstraction interface to the applications
and management systems residing at the top. The decision making lies with the centralized controller.
SDN applications are built on top of the controller.
In a traditional network (non-SDN), routers and switches are mostly agnostic to the applications being
served by the network. Especially routing by conventional Interior Gateway Protocols (IGPs) like RIP,
OSPF, ISIS, etc. are purely based on source and destination IPs. In this kind of routing, there isnt a way
for differential treatment of applications to which the traffic belongs to. For example, these routing
protocols do nothing to help service providers distinguish between the bandwidth needs of a user
watching videos versus one browsing the Internet. Application-Aware routing is a concept of taking
application parameters into consideration in routing of packets in order to provide service differentiation
and to improve user experience.
In non-SDN network, this is achieved by a mechanism called Policy-Based Routing (PBR). In PBR,
explicit routing policies are defined in routers to forward specific application traffic to specific
destination. For example, routing policies are defined to redirect all HTTP requests (i.e. port 80 traffic) to
Over The Top (OTT) caches sitting in the service provider network that cache Web Traffic. Since all such
routing policies are configured manually, this approach is not scalable when handling traffic that belongs
to thousands of websites.
The tiered architecture of SDN paves a way for the implementation of intelligent applications and
services on top of the SDN controller. It also offers service providers the chance to build networks with
increased application awareness, or intelligence about L4-L7 protocol attributes and delivery
requirements. Using this opportunity, application awareness can be brought to network in much better and
intelligent way than manual configuration as in case of PBR. The network can be made to learn traffic
that belongs to different applications dynamically and use this heuristics to intelligently route traffic in
various available paths.
This dissertation aims at developing a scalable application-aware routing system (A2RS) which is
centralized in nature and does differential routing based on type of traffic to provide service
differentiation and to increase link utilization.
The scope of this research is limited only to performing routing inside an AS. In a Hybrid-SDN
environment, routing between ASs should be done using an additional plug-in for controller (like BGPLS plug-in for OpenDaylight[1]) or separate routing platform (like RouteFlow[2][3]).
The next chapter does a survey of similar works and discusses problems in those approaches. Chapter-3
discusses the objectives taken into consideration for this dissertation, the design of A2RS - architecture,
control flow, traffic classification & differential routing methodologies. Chapter-5 discusses results and
gives few recommendations for future work which is concluded by Chapter-6.
Chapter 3: Methodology
This dissertation is an attempt of implementing the idea outlined in the White Paper titled "Application
Aware Routing in SDN" [5] as a proof of concept. A plug-in for OpenDaylight controller [6] named
"Application-Aware Routing System (A2RS)" has been developed for the same.
3.1 Objectives
The objectives of A2RS are as follows:
1) Single routing software for a cluster of switches as opposed to spawning a separate stack for each
switch.
2) Routing based on type of application served by the network as opposed to considering only destination
network.
3) Performing a better differential routing which increases the utilization of links in the network.
3.2 Design
3.2.1 Software Architecture
To achieve objective (1), two design approaches were considered. One of the major design decisions that
had to be taken was whether or not to design this application to be part of controller. Both approaches designing this to be part of controller (see Figure-1) and designing this to run on top of controller (see
Figure-2), have been taken into consideration. Many disadvantages like lack of infrastructure to lift
packets to ODL client applications, additional delay in formatting & parsing the packet in XML/JSON
and transit delay of packet on the path from controller to client application and vice versa, etc. have been
found in the latter approach. Since the former approach eliminates the above mentioned disadvantages,
it's been decided that this routing application will be designed to be a part of ODL SDN controller like
every other sub-system which involves packet processing (like L2Switch in ODL).
When ODL receives a OpenFlow Packet-In message, the DataPacketService calls the pre-registered callback function receiveDataPacket() where all necessary parameters of the flow Source IP (SIP),
Destination IP (DIP), Transport Protocol, Source Port & Destination Port are extracted from the packet
and stored in flowInfo object.
the previous step is sent to FlowClassifier and the flow is classified as shown in Table-1. (Note: Transport
Protocol, Source Port & Destination Port will be used to classify the traffic while SIP and DIP will be
used to find routes in the network.)
S.No
1
2
3
4
5
6
Transport
Protocol
TCP
TCP
TCP
TCP
TCP
TCP
Source
Port
X
80
X
21
X
20
Destination
Port
80
X
21
X
20
X
Traffic Classification
Flow Class
Web Traffic
Web Traffic
FTP Traffic
FTP Traffic
FTP Traffic
FTP Traffic
Lean Pipe
Lean Pipe
Fat Pipe
Fat Pipe
Fat Pipe
Fat Pipe
When classifying FTP traffic, initially it was thought that only the data traffic (over port 20) will be
routed through Fat Pipe and the control traffic (port 21) will be routed via Lean Pipe. But in this
differential routing, there is a possibility of FTP connection not happening when the Lean Pipe is
congested. Hence later it is decided to route both FTP control traffic and data traffic over the Fat Pipe.
Chapter 4: Results
Mininet is used to create the test topology. OpenVSwitch (OVS) is used as OpenFlow switch. Figure 5
shows the test topology used and Figure 6 through Figure 12 captures various stages of execution.
As shown in Figure 5, a Web Server and a FTP Server are started in hosts H1 and H2 respectively.
Similarly, a Web Client and a FTP Client are started at hosts H3 and H4 respectively. A HTTP request
has been made from H3 to H1 and a HTTP response is received. Using DLUX (OpenDaylight GUI), its
been verified that the flows corresponding to Web Traffic (with TCP port 80) are installed on switches
S1, S5, S6 and S4. Hence the Web Traffic has taken the Lean Pipe as per the traffic classification
mentioned in Table 1.
Similarly, a FTP connection is established to H2 from H4. The FTP connection is successful and a sample
file has been downloaded successfully. Again using DLUX it is verified that the FTP flows (with TCP
port as 21 & 20) are installed on switches S1, S2, S3 and S4. Hence the FTP Traffic has taken the Fat
Pipe as per the traffic classification mentioned in Table 1.
Thus A2RS has successfully routed traffic that belongs to two different applications over two different
available paths in a SDN network.
10
11
Figure 11: Successful traffic between Web Server & Web Client
12
Figure 12: Successful traffic between FTP Server & FTP Client
13
Figure 13: Test Topology with two additional links S5-S2; S6-S3
14
Though this may be the next shortest path, in operators' perspective, this may not be desirable. The
operator may want all the web traffic to traverse only the 1G path from source to destination. In this case
a better algorithm may be used or getting the operators input (like Policy Based Routing) may be
considered.
Also, in Yens K-Shortest Path Algorithm used, only cases where K <= 2 are handled so far. An
algorithm to select the best route when K > 2 can be developed.
15
Chapter-6: Conclusion
This dissertation presents the motivation, design and results of A2RS an Application-Aware Routing
System for OpenDaylight controller. Among the objectives discussed in Chapter-3, objective (1) has been
met in its entirety. A2RS is able to manage more than one switch. So far a topology with six switches has
been tested and there are no issues in this aspect. Regarding traffic classification (Objective 2) there has
been some glitches. There are certain limitations with the traffic classifying capability of A2RS as
discussed in Chapter-5. Objective (3) has partially been met by differentiating Web and FTP traffic. This
aspect can also made better as discussed in the Chapter-5.
Although A2RS is not readily deployable, I believe there are a number of important lessons that can be
taken into consideration during the design of any SDN routing system that wants to provide service
differentiation and increase link utilization.
16
References
[1] OpenDaylight BGP LS Wiki [https://wiki.opendaylight.org/view/BGP_LS_PCEP:Main]
[2] RouteFlow project page [https://sites.google.com/site/routeflow/home]
[3] Christian E. Rothenberg, Marcelo R. Nascimento, Marcos R. Salvador. Revisiting Routing Control
Platforms with the Eyes and Muscles of Software-Defined Networking. HotSDN 12; Helsinki; ACM;
2012.
[4] SDN/OpenFlow Migration Use Cases.
[https://www.opennetworking.org/images/stories/downloads/sdn-resources/use-cases/Migration-WGUse-Cases.pdf]
[5] Saro Velrajan. Application-Aware Routing in Software Defined Networks. Whitepaper; Aricent;
2013.
[6] OpenDaylight project page. [http://www.opendaylight.org/]
[7] K-Shortest Path Algorithm Wiki [http://en.wikipedia.org/wiki/K_shortest_path_routing]
[8] Jin Y. Yen. Finding the K Shortest Loopless Paths in a Network. Management Science
Vol. 17, No. 11, Theory Series (Jul., 1971): 712-716
17
Appendix I
List of Abbreviations
A2RS - Application-Aware Routing System
API - Application Programming Interface
AS - Autonomous System
BGP - Border Gateway Protocol
DIP - Destination IP address
DLUX - openDayLight User eXperience
EGP - Exterior Gateway Protocol
FTP - File Transfer Protocol
HTTP - Hyper Text Transfer Protocol
IGP - Interior Gateway Protocol
IP - Internet Protocol
ISIS - Intermediate System to Intermediate System
JSON - JavaScript Object Notation
OSPF - Open Shortest Path First
OTT - Over The Top
OVS - Open Virtual Switch
P2P - Peer-to-Peer
PBR - Policy Based Routing
RIP - Routing Information Protocol
SDN - Software Defined Network
SIP - Source IP address
TE - Traffic Engineering
VM - Virtual Machine
XML - eXtensible Markup Language
XORP - eXtensible Open-source Routing Platform
18