Anda di halaman 1dari 8

INTERNATIONAL CONFERENCE ON INFORMATION AND COMMUNICATION TECHNOLOGIES (ICICT 2017)

Software Defined Networking (SDN)


Ambrose Ahurra1*, Kenneth MAATHE KAMURALI2,
Diarmuid Ó Briain3 , Dr. Dorothy Okello4
netLabs!UG, Makerere University, Kampala, Uganda
1
Email: ndahura12@gmail.com, 2Email:maathek08@gmail.com,
3
Email:diarmuid@obriain.com, 4Email:dkokello@cedat.mak.ac.ug
INTERNATIONAL CONFERENCE ON INFORMATION AND COMMUNICATION TECHNOLOGIES (ICICT 2017)

Abstract: The legacy network has just about run its This paper will, investigate the operation and use
last mile, advancements in cloud computing, cases of SDN, demonstrate programmability using
virtualisation and data centres have led to an the API through the building of a physical testbed
exponential growth in data traffic that will soon using Mikrotik RB750GL switches, Raspberry Pi
over-power legacy networks. single-board computers and GNU/Linux
Software Defined Networking (SDN) is a new workstations.
networking paradigm in which there is separation of Expected results include performance
the forwarding and control planes. The control is measurements of SDN Open Flow Based network
migrated to a separate entity called the SDN as compared to the legacy networks in terms of
Controller, Leaving the forwarding plane with bare- latency, bandwidth as well as an assessment of the
metal and virtual switches (switches devoid of benefits of SDN over traditional networking
control logic) to carry out packet forwarding. SDN technologies.
allows external applications to program the network The experiments are carried out using Open
via an Application Programmable Interface (API). Daylight Controller (ODL) and OvS. Due to the
The most popular SDN protocol is Open Flow scarcity of OpenFlow enabled hardware OvS has
(versions 1.0, 1.3, 1.4). Network emulation tools been implemented on both Raspberry Pi operating
like Mininet and Mininet-WiFi have emerged in on the Raspbian flavour of GNU/Linux and on
support of developers and network engineers Mikrotik RB750GL devices using OpenWrt.
working with of the SDN revolution. Both of these
tools use OpenvSwitch (OvS). Key Words: SDN, Open Flow, OvS, Raspberry Pi,
Mikrotik, ODL, API.
INTERNATIONAL CONFERENCE ON INFORMATION AND COMMUNICATION TECHNOLOGIES (ICICT 2017)

I. INTRODUCTION
Software Defined Network seeks to enhance
network orchestration and management through II. Objectives
separation of the control and forwarding planes.
• Build physical testbed/Network to demonstrate
SDN can be implemented using both virtual
software switches and hardware switches running how Software Defined networks operate.
the Open Flow protocol. The current networks are • Compare Software Defined Network and legacy
heavily reliant of header encapsulation that keeps network using performance parameters such as
eating into the Maximum Transfer Unit size of bandwidth, latency and reliability.
packets. The continued advancements in cloud
computing, Internet of Things and Virtualisation • Demonstrate programmability through pushing
require a network is high flexible and scalable. The flows, retrieving network statics using the REST
SDN architectureis shown below. API.

1.1. OpenDaylight (ODL) III. Methodology


This is an open source modular Software Defined OpenvSwitch on Raspberry Pi
Network Controller that can be deployed in a As an experimental approach the OpenvSwitch was
variety of production network environments. It implemented on the raspberry pi single board
exposes open northbound Application Programming computer. Since the Pi has only one on-board
Interfaces (APIs) that can be used to collect Ethernet interface additional interfaces were
information about the network, run algorithms to provided using USB to Ethernet adapters.
conduct analytics, and then use the OpenDaylight
Controller to create new rules throughout the Requirements
network. ODL offers an overview of the network Raspberry Pi 2 B, Linux minibian jessie 2015-11-12
topology showing all network devices using a web release Kernel 4.1.7-v7+, USB to Ethernet adapters,
interface. OpenvSwitch 2.5.0, Open Daylight Beryllium.
On a fresh install of the minibian OS.
# download the OpenvSwitch
root@ovs2:~# wget http://openvswitch.org/
releases/openvswitch-2.5.0.tar.gz
root@ovs2:~# tar -xzvf openvswitch\\
2.5.0.tar.gz
root@ovs2:~# cd openvswitch-2.5.0
root@ovs2:~# apt-get update
# install build dependencies
root@ovs2:~# apt-get install python-
simplejson python-qt4 libssl-dev python-
twisted-conch automake autoconf gcc uml-
utilities libtool build-essential pkg-
config
# install the linux headers to be used
used for building OpenvSwitch kernel
module.
root@ovs2:~# apt-get install linux-\\
headers-3.16.0-4-rpi
root@ovs2:~# ./boot.sh
root@ovs2:~# ./configure –with
linux=/lib/modules/3.16.0-4-rpi/build
root@ovs2:~# make
root@ovs2:~# make install
INTERNATIONAL CONFERENCE ON INFORMATION AND COMMUNICATION TECHNOLOGIES (ICICT 2017)

After the install the kernel module is loaded and RouterBoard 750GL, OpenWrt Chaos Calmer
OpenvSwitch started, a start script is passed to the release, OpenvSwitch opkg package.
rc.local file to always load the the kernel module OpenWrt is booted onto the router using a Trivial
and start OpenvSwitch every time the Pi boots. File Transfer Protocol (TFTP) server and router
After this checking with ‘ovs-vsctl show’ command Nand flashed using the wget2nand utility.
should give the data path of the switch. ‘modinfo
openvswitch’ gives the details of the kernel module.

root@ovs2:~# ovs-vsctl show


e65a62f4-53a6-481d-a395-4f2419d80ce9
root@ovs2:~# modinfo openvswitch
filename: /lib/modules/4.1.7
v7+/kernel/net/openvswitch/openvswitch.ko
license: GPL
description: Open vSwitch switching
datapath
srcversion: F83021F5CFFAB96ADDA1C75
depends:
intree: Y
vermagic: 4.1.7-v7+ SMP preempt
mod_unload modversions ARMv7 The OpenFlow module is then installed.

OpenvSwitch on Mikrotik RB75GL root@OpenWrt:~# opkg update


root@OpenWrt:~# opkg install openvswitch-
For more realistic examination of SDN and common openvswitch-ipsec /openvswitch-
OpenFlow, industry standard switching hardware switch
was chosen. The inbuilt router OS of the RB750GL
was replaced by open source router firmware called
OpenWrt, the Chaos calmer release and the
OpenvSwitch kernel module loaded, thus turning Confirming the OpenvSwitch is running properly.
the RB750GL into an OpenFlow enabled switch.
Finally the network is set up by configuring all the
Brief description of the RB750GL. five interfaces. Every port is configured as a single
The RB750GL is single switch SOHO device with port as follows;
Atheros switch and CPU and five Gigabit Ethernet #Ethernet/Poe
ports. As seen in figure.. config switch_vlan
option device 'switch0'
option vlan '1'
option ports '0t 1'

#Ethernet 2
config switch_vlan
option device 'switch0'
option vlan '2'
option ports '0t 2'
The rest of the ports are configured similarly.
The OpenvSwitch is configured as follows;
# Create bridge
root@OpenWrt:~# ovs-vsctl add-br bro
# Adding interfaces to the bridge
root@OpenWrt:~# ovs-vsctl add-port bro
eth0.2
Requirements root@OpenWrt:~# ovs-vsctl add-port bro
eth0.3
INTERNATIONAL CONFERENCE ON INFORMATION AND COMMUNICATION TECHNOLOGIES (ICICT 2017)

root@OpenWrt:~# ovs-vsctl add-port bro


eth0.4
V. Developments
root@OpenWrt:~# ovs-vsctl add-port bro
eth0.5 The OpenFlow protocol is now on version 1.4 while
the OpenvSwitch is on version 2.7.0.
Checking the OvS configuration. The Open Daylight has had six releases currently on
root@OpenWrt:~# ovs-vsctl show
03d9485f-a5de-4d04-81eb-ce642031a96b Carbon. Universities like Standford have already
Bridge bro deployed SDN. The list of vendors producing
Controller "tcp:192.168.5.10" OpenFlow enabled Hardware for vitualisation and
Port "eth0.2" Data Center applications has grown including
Interface "eth0.2"
Port "eth0.3" among others HP, IBM, Extreme Networks.
Interface "eth0.3"
Port bro VI. Results
Interface bro A simple network was set up using the mikrotik
type: internal
Port "eth0.4"
OpenFlow switch and several hosts. Tests carried
Interface "eth0.4" out on the network yielded the following results.
Port "eth0.5" Open Daylight displays the network with the hosts
Interface "eth0.5" as in figure 7.

Check the kernel module.


root@OpenWrt:~# modinfo openvswitch
module: /lib/modules/3.10.49/openvswit
ch.ko
license: GPL
depends: libcrc32c,gre

IV. Technology description


OpenFlow is the protocol that enables the controller
to talk to the virtual and hardware switches.
The communication is via SSL channel on TCP port
6633 as shown in figure 6.

Programming the Switch


The most basic way of pushing flows to the
Switches in the Forwarding plane is using the curl
utility in GNU Linux.
cURL –user <username>:<password> -H
<header1> -H <header2> -X <request-type>
<url> -d '<request-body>'
Part of the required construct of the cURL requests
follows:
• --user <user-name>:<password>:
Specifies the username and password to use
for ODL authentication.
The controller pushes flows into the flow table to • -H Accept: <response-content-
enable communication among the hosts. type>: Specifies the content type that is
expected in the response body for the
request. Usually Accept: application/xml.
INTERNATIONAL CONFERENCE ON INFORMATION AND COMMUNICATION TECHNOLOGIES (ICICT 2017)

• -H Content-type: <request-
content-type>: Specifies the content of
the request body. Usually Content-type:
Transmission Speeds in Mbits/sec
<application/xml.
• -X <request-type>: Specifies the type TCP UDP
of request you want to send to ODL. For Window Transfer Speed Window Transfer Speed
example: PUT, GET or DELETE a flow. Size Size
• -d <request-body>: Specifies the 85.3KB 112 MB 94.1 208KB 1.25 MB 1.05
request body (like Flow, Group, Meter, and 128KB 112 MB 94.1 256KB 1.25 MB 1.05
so on). This is required for a PUT or POST 256KB 112 MB 94.2 512KB 1.25 MB 1.05
request only

Tests carried out on the network yielded the VII. Business Benefits
following results.
Some of the use cases for SDN include;
Bandwidth testing on the Raspberry pi
OpenvSwitch. I. Network Access Control (NAC), SDN offers
granular level control to set varying privileges for
Transmission Speeds in Mbits/sec different users and devices in campus networks and
or enterprises.
TCP UDP II. Network virtualisation, creation of abstracted
Window Transfer Speed Window Transfer Speed virtual networks n top of physical hardware in the
size size cloud or in large enterprises reducing reducing the
85.0KB 5.38MB 3.8 208KB 1.25 MB 1.05 deployment time.
128KB 4.75MB 3.79 256KB 1.25 MB 1.05 IV. Application aware routing
256KB 4.88MB 3.79 512KB 1.25 MB 1.05 This is vital in scenarios where data from different
applications needs to be separated, treated
From table 1, it is evident that the Raspberry Pi is differently especially delay sensitive applications.
not robust enough to be used as a yardstick for
judging SDN. To this end, table 2, shows results V. Mobile Network Virtualisation
from the more capable Mikrotik OpenFlow switch. Ability to virtualise a mobile network thus allowing
multiple operators to share common hardware/
Transmission Speeds in Mbits/sec infrastructure for multiple networks and allowing
different operators to control their own slice of the
TCP UDP network .
Window Transfer Speed Window Transfer Speed Some deployments will not necessarily employ
Size Size complete end-to-end virtualization but might
85.3KB 519 MB 434 208KB 1.25 MB 1.05 instead choose to virtualize parts of the network.
128KB 615 MB 516 256KB 1.25 MB 1.05
VIII. Conclusion
256KB 607 MB 509 512KB 1.25 MB 1.05
Software Defined Networking is a concept that is
still taking root in the networking arena. From our
It is prudent to compare the bandwidth performance investigation it is clear that Open Flow networks
of the OpenFlow switch and a legacy Mikrotik can more than hold their own in terms of hardware
switch. Table 3, shows the results from the legacy performance.
switch. However, the real value of SDN lies in its ability to
simplify both physical and virtual network
orchestration.
INTERNATIONAL CONFERENCE ON INFORMATION AND COMMUNICATION TECHNOLOGIES (ICICT 2017)