ofswitch13: viabilizando oluciano/publications/sbrc16_sf-pres.pdf · ofswitch13 development was...
TRANSCRIPT
Demo session SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed Systems
OFSwitch13: Viabilizando o uso do OpenFlow 1.3 no ns-3
Luciano Jerez Chaves1,2Islene Calciolari Garcia2
Edmundo R. Mauro Madeira2
1Federal University of Juiz de Fora (UFJF)2University of Campinas (Unicamp)
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
Outline
❖ Introduction
❖ Software-Defined Networking
❖ The OFSwitch13 module
❖ Case study scenario
❖ Conclusions and future work
2
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
Introduction
3
❖ Global IP traffic is increasing at a compound annual growth rate of 23%
❖ Mobile data represents near 57% of global IP traffic
❖ Software-Defined Networking will be a key differentiator of future (mobile) systems
Global IP traffic (PB per Month)
Cisco visual networking index: Forecast and Methodology, 2014-2019, White Paper, Cisco, May, 2015.
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
Motivation
❖ OFSwitch13 development was motivated by SDN and LTE integration issues in Mininet
❖ Alternative to the outdated ns-3 OpenFlow module
❖ ns-3 OpenFlow version: 0.8.9 (2008)
❖ Latest specification version: 1.5.1 (2015)
❖ The OFSwitch13 enhances ns-3 with OpenFlow 1.3 support
4
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
Network Simulator 3❖ GNU GPLv2-licensed discrete event network simulator
❖ Designed for command-line usage, with Unix orientation
❖ Written in C++, with bindings available for Python
❖ Approx. 350,000 lines of code
❖ Core + 44 modules for protocols, devices, utilities, etc.
5
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
Software-Defined Networking
6
❖ Decouples the control plane from the data plane
❖ Network intelligence is centralized in software
❖ Simplified distributed forwarding hardware
❖ More agile and cost-effective networks
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
OpenFlow protocol
7
❖ SDN southbound interface
❖ Basic primitives to program the forwarding plane of OpenFlow switches
❖ Concepts of flows to identify network traffic
❖ Switch datapath specification
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
ofsoftswitch13 library
ns-3 environmentexternal environment
OpenFlow 1.3 controller application interface
Protocolstack
NetDevice
Controller
(ns-
3 no
de)
OpenFlow 1.3 switch device
Protocolstack
NetDevice
Switch
(ns-
3 no
de)
CSMANetDeviceCSMA
NetDeviceCSMANetDevice
Channel
Con
trol p
lane
Dat
a pl
ane
OFSwitch13 module overview
OpenFlow 1.3 controller app interfaceOpenFlow 1.3 switch device
External ofsoftswitch13 library
8
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
OpenFlow 1.3 switch device❖ OpenFlow switch device used to interconnect ns-3 nodes over
CSMA network devices and channels
❖ Internal collection of ports for packet input/output
❖ OpenFlow receive callback for packet input on CsmaNetDevice
9
OpenFlow 1.3 switch device
OpenFlow ports
OpenFlow channel(controller communication)
OpenFlow port
Output packet(from the library)
Input packet(to the library)
CSMA network device
OpenFlow queue
OpenFlow RX callback
ofsoftswitch13 library
OpenFlow switch datapath implementation
provided by the ofsoftswitch13 library
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
OpenFlow 1.3 switch device❖ Packets for output actions are sent to the OpenFlow 1.3 queue on
the correct output port
❖ Internal collection of queues with unique IDs
❖ Compatibility with CsmaNetDevice and ns-3 models
10
OpenFlow 1.3 queue
Enqueue (Queue ID)Dequeue
…
Queue QueueQueueOutput
scheduller
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
OpenFlow 1.3 controller interface❖ Provides the basic functionalities for controller implementation
❖ Manage a collection of OpenFlow switches
❖ DPCTL utility is used to build OpenFlow messages
❖ Collection of handlers for processing messages from switches
11
OpenFlow 1.3 controller application interface
OpenFlow channel(switch communication)
ofsoftswitch13 library
Internal handlers
dpctl commands“flow-mod add …”
OFSwitch13 Learning Controller working as a learning bridge device
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
OpenFlow 1.3 channel
❖ Interface that connects each switch to an OpenFlow controller
❖ Using standard ns-3 network devices and channels to provide realist control plane out-of-band connections
❖ It is possible to use an external OpenFlow controller running on the local machine with the help of the TapBridge
❖ Not validated yet 😕
12
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
ofsoftswitch13 library
❖ User-space software switch compiled as a library
❖ Provides the complete switch datapath implementation
❖ Original implementation slightly modified for ns-3 integration
❖ Functions related to packet input/output marked as weak symbols
❖ Callbacks used to notify the ns-3 about packet changes and drops
13
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
OpenFlow 1.3Controller
Ports
0
1
N
Ports
0
1
NFlow Tables
0 1 2 N
NetBee Parser(flow extract)
NetPDL
Meter Table
Meter bandRate X
Meter bandRate Y
Meter bandRate Z
Group Table
0Actions
1Actions
NActions
OFLib
NetBee Link
OpenFlow 1.3Software Switch
datapath
OpenFlow messages
User packets
OFSwitch13 moduleinterconnection
Controlchannel
dpctl utility
ofsoftswitch13 library architecture
Library architecture highlighting the OFSwitch13 interconnection points
14
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
Current limitations
❖ Only supported by GNU/Linux platforms
❖ No support for auxiliary connections nor multiple controllers
❖ OpenFlow channel without TLS encryption
15
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
Server 0
Server 1
OpenFlowborder switch
OpenFlowaggregation switch
OpenFlowclient switch
OpenFlow QoS controller
OpenFlowlearning controller
Client 0
Client N
…
100Mbps100
Mbps
10Mbps
100Mbps
10Mbps
Case study scenarioTwo OpenFlow controllersTwo 10 Mbps long-distance connectionsFour client nodes with a single TCP uplink flow for each client
16
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
New OpenFlow QoS controller
❖ Implement QoS functionalities exploiting OpenFlow 1.3 features
❖ Link aggregation at MAC level
❖ Load balancing at application level
❖ QoS per-flow metering solution
❖ QoS controller manages both border and aggregation switches
17
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
Link aggregation
18
❖ Combine multiple connections to increase throughput
❖ OpenFlow Groups are used to randomly select the output port for each packet
❖ Both border and aggregation switches split the traffic over the two narrowband long-distance connections
0
10
20
30
0 10 20 30 40 50 60 70 80 90 100Ne
twor
k th
roug
hput
(Mbp
s)Simulation time
With link aggregationWithout link aggregation
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
Load balancing
19
❖ Implement a server farm and distribute the workload
❖ OpenFlow extensible match is used to filter ARP requests
❖ Set-field action is used to replace IP packet headers
❖ Border switch forwards new requests to controller, which selects the internal server for each connection
0
10
20
30
0 10 20 30 40 50 60 70 80 90 100Se
rver
load
thro
ughp
ut (M
bps)
Simulation time
Server 0Server 1
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
Per-flow meters
20
❖ Limit flow throughput to ensure network policy
❖ OpenFlow Meters are used to measure and limit flow throughput
❖ Border switch implements the rate limiter mechanism
0
2
4
6
8
10
0 10 20 30 40 50 60 70 80 90 100TC
P co
nnec
tion
thro
ughp
ut (M
bps)
Simulation time
With meter entriesWithout meter entries
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016
Conclusions and future work❖ The OFSwitch13 enhances ns-3 with OpenFlow 1.3 support
❖ Requires minimal changes to ns-3 source code
❖ Available as free software at www.lrc.ic.unicamp.br/ofswitch13
❖ Complete documentation, examples, and a VM ready for use
❖ As future work…
❖ Overcome some of the module current limitations
❖ Implement a set of ns-3 tests to endorse module validation
❖ Possible incorporation within ns-3 source code
21
SBRC’16: The 34th Brazilian Symposium on Computer Networks and Distributed SystemsJune 2, 2016 22