SlideShare a Scribd company logo
Introducton to SDN
Muhammahmad Moinur Rahman
History of Networking
● Blackbox networking equipments
● Big name companies building switching/routng devices
● Includes Proprietary/OEM Silicon Chip
● Wrapped up with a closed source Operatng System (e.g. A
desktop PC with MS Windows and MS Ofce)
Disadvantages of Current Scenario
Technology was not designed keeping today in mind
○ Massive Scalability
○ Mult Tenant Networks
○ Virtualizaton
○ Cloud Computng
○ Mobility (Users/Devices/VM)
Disadvantages of Current
Scenario(Contd)
Protocols are Box Centric; Not Fabric Centric
• Difcult to confgure correctly(consistency)
• Difcult to add new features(upgrades)
• Difcult to debug(look at all devices)
Disadvantages of Current
Scenario(Contd)
Closed Systems (Vendor Hardware)
• Stuck with given interfaces (CLI, SNMP, etc.)
• Hard to meaningfully collaborate
• Vendors hesitant to open up
• No way to add new features by yourself
ANSWER: Sofware Defned Networking
What is SDN?
SDN is a framework to allow network administrators to
automatcally and dynamically manage and control a large
number of network devices, services, topology, trafc paths,
and packet handling (quality of service) policies using high-
level languages and APIs. Management includes provisioning,
operatng, monitoring, optmizing, and managing FCAPS
(fault, confguraton, accountng, performance, and security)
in a mult-tenant environment.
Networking Planes
• Data Plane
• Carries Network User Trafc
• Control Panel
• Carried Signalling Trafc
• Management Panel
• Carries Administratve Trafc
SDN Architecture
Need for SDN - Virtualizaton
Use network resource
• without worrying about where it is physically located
• how much it is
• how it is organized
Need for SDN - Orchestraton
Should be able to control and manage thousands of devices
with one command
Need for SDN - Programmable
Should be able to change behavior on the fy
Need for SDN - Dynamic Scaling
Should be able to change size, quantty, capacity
Need for SDN - Automaton
• To lower OpEx
• Minimize manual involvement
• Troubleshootng
• Reduce downtme
• Policy enforcement
• Provisioning/Re-provisioning/Segmentaton of resources
• Add new workloads, sites, devices, and resources
Need for SDN - Visibility
Monitor resources, connectvity
Need for SDN - Performance
Optmize network device utlizaton
• Trafc engineering/Bandwidth management
• Capacity optmizaton
• Load balancing
• High utlizaton
• Fast failure handling
Need for SDN - Mult Tenancy
Tenants need complete control over their
• Addresses
• Topology
• Routng
• Security
Need for SDN - Service Integraton
Provisioned on demand and placed appropriately on the
trafc path
• Load balancers
• Firewalls
• Intrusion Detecton Systems (IDS)
Alternatve APIs
• Southbound APIs: XMPP (Juniper), OnePK (Cisco)
• Northbound APIs: I2RS, I2AEX, ALTO
• Overlay: VxLAN, TRILL, LISP, STT, NVO3, PWE3, L2VPN,
L3VPN
• Confguraton API: NETCONF
• Controller: PCE, ForCES
History
Feb, 2011 - OpenFlow 1.1 Released
Dec, 2011 - OpenFlow 1.2 Released
Feb, 2012 - “Floodlight” Project Announced
Apr, 2012 - Google announces at ONF
Jul, 2012 - Vmware acquires Nicira
Apr, 2013 - “OpenDaylight” Released
Hardware Internals
• Logical View of a Switch • Physical Architecture of a Switch
Switchin
g
Fabric
Processo
r
ASI
C
AIS
C
data plane
control plane
Network O.S.
ASIC
ApplicatonsApplicatons
Internals of SDN
• Southbound API: decouples the switch hardware from control functon
– Data plane from control plane
• Switch Operatng System: exposes switch hardware primitves
Network O.S.
ApplicatonsApplicatonsApplicatons
Southbound
API
SDN
Switch Operatng System
Switch Hardware
Network O.S.
ASIC
ApplicatonsApplicatons
Current
Switch
Vertcal stack
SDN
Switch
Decoupled
stack
How SDN Works
Controller (N. O.S.)
ApplicatonsApplicatonsApplicatons
Southbound
API
Switch H.W
Switch O.S
Switch H.W
Switch O.S
Implicatons of SDN
Controller (N. O.S.)
ApplicatonsApplicatonsApplicatons
Southboun
d
API
Switch O.S
Switch
HW
Switch O.S
Switch
HW
Switch O.S
Switch
HW
Global View
Programmatc
Control
Current Networking SDN Enabled Environment
Network O.S.
ASIC
ApplicatonsApplicatons
Network O.S.
ASIC
ApplicatonsApplicatons
Network O.S.
ASIC
ApplicatonsApplicatons
Implicatons of SDN(Cont)
Current Networking SDN Enabled Environment
Controller (N. O.S.)
ApplicatonsApplicatonsApplicatons
Southbound
API
Switch O.S
Switch HW
Switch O.S
Switch HW
Switch O.S
Switch HW
• Distributed protocols
• Each switch has a brain
• Hard to achieve optmal
soluton
• Network confgured indirectly
• Confgure protocols
• Hope protocols converge
• Global view of the network
• Applicatons can achieve optmal
• Southbound API gives fne grained control
over switch
• Network confgured directly
• Allows automaton
• Allows defniton of new interfaces
Network O.S.
ASIC
ApplicatonsApplicatons
Network O.S.
ASIC
ApplicatonsApplicatons
Network O.S.
ASIC
ApplicatonsApplicatons
25
The SDN Stack
ControllerNOX
Slicing
SofwareFlowVisor
FlowVisor
Console
25
ApplicatonsLAVIENVI (GUI) …n-Castng
NetFPGA
Sofware
Ref. Switch
Broadcom
Ref. Switch
OpenWRT
PCEngine
WiFi AP
Commercial Switches
OpenFlow
Switches
RyU
Monitoring/
debugging tools
ofopsofrace openseer
Open vSwitch
HP, IBM, NEC,
Pronto, Juniper..
and many more
Beacon Trema
FloodLigh
t
Source: SDN Tutorial by B. Heller
Open Networking Summit, April 2012
Dimensions of SDN Environments:
Vendor Devices
Vertcal Stacks
• Vendor bundles switch and
switch OS
• Restricted to vendor OS and
vendor interface
• Low operatonal overhead
• One stop shop
Whitebox Networking
• Vendor provides hardware with
no switch OS
• Switch OS provided by third
party
• Flexibility in picking OS
• High operatonal overhead
• Must deal with multple vendors
Dimensions of SDN Environments:
Switch Hardware
Virtual: Overlay
• Pure sofware implementaton
• Assumes programmable virtual switches
• Run in Hypervisor or in the OS
• Larger Flow Table entries (more memory and CPU)
• Backward compatble
• Physical switches run traditonal protocols
• Trafc sent in tunnels
• Lack of visibility into physical network
Physical: Underlay
• Fine grained control and visibility into network
• Assumes specialized hardware
• Limited Flow Table entries
Dimensions of SDN Environments:
Southbound Interface
OpenFlow
• Flexible matching
• L2, L3, VLAN, MPLS
• Flexible actons
• Encapsulaton: IP-in-IP
• Address rewritng:
• IP address
• Mac address
BGP/XMPP/IS-IS/NetConf
• Limited matching
• IS-IS: L3
• BGP+MPLS: L3+MPLS
• Limited actons
• L3/l2 forwarding
• Encapsulaton
Dimensions of SDN Environments:
Controller Types
Modular Controllers
• Applicaton code manipulates forwarding
rules
• E.g. OpenDaylight, Floodlight
• Writen in imperatve languages
• Java, C++, Python
• Dominant controller style
High Level Controllers
• Applicaton code specifes declaratve policies
• E.g. Frenetc, McNetle
• Applicaton code is verifable
• Amendable to formal verifcaton
• Writen in functonal languages
• Netle, OCamal
• Controller Type
• Modular: Floodlight
• Southbound API:
OpenFlow
• OpenFlow 1.3
• SDN Device: Whitebox
• (indigo)
• SDN Flavor
• Underlay+Overlay
Ecosystem : BigSwitch
• Controller Type
• Modular: OpenContrail
• Southbound API:
XMPP/NetConf
• BGP+MPLS
• SDN Device: Vertcal Stack
• Propriety Junos
• SDN Flavor
• Overlay
Ecosystem : Juniper
SDN EcoSystem
Arista
OF + proprietary
Underlay
Vertcal Stack
Broadcom
OF + proprietary
Underlay
Vertcal Stack
HP
OF
Underlay
Vertcal Stack
Cisco
OF + proprietary
Underlay+Overlay
Vertcal Stack
FloodLight
OF
Underlay+Overlay
Whitebox
Dell
OF
Underlay
Vertcal Stack
HP
OF
Underlay
Vertcal Stack
Alcatel
BGP
Overlay
Vertcal Stack
Juniper
BGP+NetConf
Overlay
Vertcal Stack
OpenFlow
• Developed in Stanford
• Standardized by Open Networking Foundaton (ONF)
• Current Version 1.4
• Version implemented by switch vendors: 1.3
• Allows control of underlay + overlay
• Overlay switches: OpenVSwitch/Indigo-light PC
SDN vs OpenFlow
• Leading SDN protocol
• Decouples control and data plane by giving a controller the
ability to install fow rules on switches(Bare Metal)
• Hardware or sofware switches can use OpenFlow
• Spec driven by ONF
How SDN Works: OpenFlow
Controller (N. O.S.)
ApplicatonsApplicatonsApplicatons
Southbound
API
Switch H.W
Switch O.S
Switch H.W
Switch O.S
OpenFlow
OpenFlow
OpenFlow: Anatomy of a Flow Table
Entry
Switch
Port
MAC
src
MAC
dst
Eth
type
VLAN
ID
IP
Src
IP
Dst
IP
Prot
L4
sport
L4
dport
Matc
h
Acto
n
Counte
r
1. Forward packet to zero or more ports
2. Encapsulate and forward to controller
3. Send to normal processing pipeline
4. Modify Fields
When to delete the
entry
VLAN
pcp
IP
ToS
Priorit
y
Time-
out
What order to process the
rule
# of Packet/Bytes processed by the rule
Examples
Switching
*
Switch
Port
MAC
src
MAC
dst
Eth
type
VLAN
ID
IP
Src
IP
Dst
IP
Prot
TCP
sport
TCP
dport
Acton
* 00:1f:.. * * * * * * * port6
Flow Switching
port3
Switch
Port
MAC
src
MAC
dst
Eth
type
VLAN
ID
IP
Src
IP
Dst
IP
Prot
TCP
sport
TCP
dport
Acton
00:20.. 00:1f.. 0800 vlan1 1.2.3.4 5.6.7.8 4 17264 80 port6
Firewall
*
Switch
Port
MAC
src
MAC
dst
Eth
type
VLAN
ID
IP
Src
IP
Dst
IP
Prot
TCP
sport
TCP
dport
Acton
* * * * * * * * 22 drop
37
Examples
Routng
*
Switch
Port
MAC
src
MAC
dst
Eth
type
VLAN
ID
IP
Src
IP
Dst
IP
Prot
TCP
sport
TCP
dport
Acton
* * * * * 5.6.7.8 * * * port6
VLAN
Switching
*
Switch
Port
MAC
src
MAC
dst
Eth
type
VLAN
ID
IP
Src
IP
Dst
IP
Prot
TCP
sport
TCP
dport
Acton
* * vlan1 * * * * *
port6,
port7,
port9
00:1f..
38
Data Path (Hardware)
Control Path OpenFlow
OpenFlow Controller
OpenFlow Protocol
(SSL/TCP)
39
OpenFlow: How it works
Controller PC
Hardwar
e
Layer
Sofware
Layer
Flow Table
MAC
src
MAC
dst
IP
Src
IP
Dst
TCP
sport
TCP
dport
Acton
OpenFlow Client
**5.6.7.8*** port 1
port 4port 3port 2port 1
1.2.3.45.6.7.8
40
OpenFlow: Anatomy of a Flow Table
Entry
SDN Components : Hardwares
OpenFlow Compliant (1.0-1.4) Switch
• HP 8200 ZL, 6600, 6200ZL
• Brocade 5400ZL, 3500
• IBM NetIron
• Juniper OCX1100
• Baremetal Switch
• OpenVSwitch
SDN Components : Controllers
•OpenFlow Compliant (1.0-1.4) Controller
• POX: (Python) Pox as a general SDN controller that supports
OpenFlow. It has a high-level SDN API including a queriable
topology graph and support for virtualizaton.
• IRIS: (Java) a Resursive SDN Openfow Controller created by
IRIS Research Team of ETRI.
• MUL: (C) MūL, is an openfow (SDN) controller.
• NOX: (C++/Python) NOX was the frst OpenFlow controller.
SDN Components : Controllers (Contd)
• Jaxon: (Java) Jaxon is a NOX-dependent Java-based OpenFlow
Controller.
• Trema: (C/Ruby) Trema is a full-stack framework for
developing OpenFlow controllers in Ruby and C.
• Beacon: (Java) Beacon is a Java-based controller that
supports both event-based and threaded operaton.
•ovs-controller (C) Trivial reference controller packaged with
Open vSwitch.
SDN Components : Controllers (Contd)
• Floodlight: (Java) The Floodlight controller is Java-based
OpenFlow Controller. It was forked from the Beacon
controller, originally developed by David Erickson at Stanford.
• Maestro: (Java) Maestro is an OpenFlow "operatng system"
for orchestratng network control applicatons.
•NodeFlow (JavaScript) NodeFlow is an OpenFlow controller
writen in pure JavaScript for Node.JS.
• NDDI - OESS: OESS is an applicaton to confgure and control
OpenFlow Enabled switches through a very simple and user
friendly User Interface.
• Ryu: (Python) Ryu is an open-sourced Network Operatng
System (NOS) that supports OpenFlow.
SDN Components : Controllers (Contd)
• NDDI - OESS: OESS is an applicaton to confgure and control
OpenFlow Enabled switches through a very simple and user
friendly User Interface.
• Ryu: (Python) Ryu is an open-sourced Network Operatng
System (NOS) that supports OpenFlow.
Demonstraton Lab
Objectves
• Basics of running Mininet in a virtual machine.
• Mininet facilitates creatng and manipulatng Sofware Defned Networking
components.
• Explore OpenFlow
•An open interface for controlling the network elements through their
forwarding tables.
• Experience with the platorms and debugging tools most
useful for developing network control applicatons on
OpenFlow.
• Run the Ryu controller with a sample applicaton
• Use various commands to gain experience with OpenFlow
control of OpenvSwitch
Objectves (Contd)
• Run the Ryu controller with a sample applicaton
• Use various commands to gain experience with OpenFlow
control of OpenvSwitch
Topology
• Three hosts named h1, h2 and h3 respectvely. Each host has an
Ethernet interface called h1-eth0, h2-eth0 and h3-eth0
respectvely.
• Three hosts are connected through a switch names s1. The switch
s1 has three ports named s1-eth1, s1-eth2 and s1-eth3.
• The controller is connected on the loopback interface (in real life
this may or may not be the case, it means the switch and
controller are built in a single box). The controller is identfed as
c0 and connected through port 6633.
Topology Diagram
C0 - Controller
Switch H.W
S1 Switch
OpenFlow
H1 – h1-eth0
H2 – h2-eth0
H3 – h3-eth0
S1-eth2
S1-eth1
S1-eth0
RYU Openfow controller
Ensure that no other controller is present
root@mininet-vm:~# killall controller
controller: no process found
root@mininet-vm:~#
Note that 'controller' is a simple OpenFlow reference controller
implementaton in linux. We want to
ensure that this is not running before we start our own
controller.
RYU Openfow controller(Cont)
Clear all mininet components
root@mininet-vm:~# mn -c
*** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_core lt-nox_core ovs-openflowd
ovs-controller udpbwtest mnexec ivs 2> /dev/null
killall -9 controller ofprotocol ofdatapath ping nox_core lt-nox_core ovsopenflowd
ovs-controller udpbwtest mnexec ivs 2> /dev/null
pkill -9 -f "sudo mnexec"
*** Removing junk from /tmp
rm -f /tmp/vconn* /tmp/vlogs* /tmp/*.out /tmp/*.log
*** Removing old X11 tunnels
*** Removing excess kernel datapaths
ps ax | egrep -o 'dp[0-9]+' | sed 's/dp/nl:/'
*** Removing OVS datapathsovs-vsctl --timeout=1 list-br
ovs-vsctl del-br s1
ovs-vsctl del-br s2
ovs-vsctl del-br s3
ovs-vsctl del-br s4
*** Removing all links of the pattern foo-ethX
ip link show | egrep -o '(w+-ethw+)'
*** Cleanup complete.
root@mininet-vm:~#
RYU Openfow controller(Cont)
Start the Ryu controller
root@mininet-vm:~# ryu-manager --verbose ./simple_switch_13.py
loading app ./simple_switch_13.py
loading app ryu.controller.ofp_handler
instantiating app ./simple_switch_13.py of SimpleSwitch13
instantiating app ryu.controller.ofp_handler of OFPHandler
BRICK SimpleSwitch13
CONSUMES EventOFPSwitchFeatures
CONSUMES EventOFPPacketIn
BRICK ofp_event
PROVIDES EventOFPSwitchFeatures TO {'SimpleSwitch13': set(['config'])}
PROVIDES EventOFPPacketIn TO {'SimpleSwitch13': set(['main'])}
CONSUMES EventOFPHello
CONSUMES EventOFPErrorMsg
CONSUMES EventOFPEchoRequest
CONSUMES EventOFPPortDescStatsReply
CONSUMES EventOFPSwitchFeatures
Understanding simple_switch.py
MiniNet Environment
root@mininet-vm:~# mn --topo=tree,1,3 --mac --controller=remote --switch
ovsk,protocols=OpenFlow13
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2 h3
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1) (h3, s1)
*** Configuring hosts
h1 h2 h3
*** Starting controller
*** Starting 1 switches
s1
*** Starting CLI:
mininet>
MiniNet Environment(Cont)
Monitor controller to ensure that the switch connects
connected socket:<eventlet.greenio.GreenSocket object at 0xa986c0c>
address: ('127.0.0.1', 42733)
connected socket:<eventlet.greenio.GreenSocket object at 0xa986cec>
address: ('127.0.0.1', 42734)
hello ev <ryu.controller.ofp_event.EventOFPHello object at 0xa9897ac>
move onto config mode
EVENT ofp_event->SimpleSwitch13 EventOFPSwitchFeatures
switch features ev version: 0x4 msg_type 0x6 xid 0xb15cb575
OFPSwitchFeatures(auxiliary_id=0,capabilities=71,datapath_id=1,n_buffers
=256,n_tables=254)
move onto main mode
MiniNet Environment(Cont)
Dump fows on switch s1
mininet> dpctl dump-flows -O OpenFlow13
*** s1 -----------------------------------------
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0x0, duration=2.481s, table=0,
n_packets=0, n_bytes=0, priority=0
actions=FLOOD,CONTROLLER:64
mininet>
MiniNet Environment(Cont)
Passing Packets
mininet> h1 ping h2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_req=1 ttl=64 time=5.10 ms
64 bytes from 10.0.0.2: icmp_req=2 ttl=64 time=0.238 ms
64 bytes from 10.0.0.2: icmp_req=3 ttl=64 time=0.052 ms
64 bytes from 10.0.0.2: icmp_req=4 ttl=64 time=0.051 ms
^C
--- 10.0.0.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.051/1.360/5.100/2.160 ms
mininet>
MiniNet Environment(Cont)
Passing Packets
mininet> h1 ping h2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_req=1 ttl=64 time=5.10 ms
64 bytes from 10.0.0.2: icmp_req=2 ttl=64 time=0.238 ms
64 bytes from 10.0.0.2: icmp_req=3 ttl=64 time=0.052 ms
64 bytes from 10.0.0.2: icmp_req=4 ttl=64 time=0.051 ms
^C
--- 10.0.0.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.051/1.360/5.100/2.160 ms
mininet>
Controller Environment
Monitor new messages in the controller window
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
packet in from 00:00:00:00:00:01 port 1 to 00:00:00:00:00:02 on dpid 1
associate 00:00:00:00:00:01 with port 1 on dpid 1
packet in from 00:00:00:00:00:02 port 2 to 00:00:00:00:00:01 on dpid 1
associate 00:00:00:00:00:02 with port 2 on dpid 1
add unicast flow from 00:00:00:00:00:02 port 2 to 00:00:00:00:00:01 port 1 on dpid 1
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
packet in from 00:00:00:00:00:01 port 1 to 00:00:00:00:00:02 on dpid 1
add unicast flow from 00:00:00:00:00:01 port 1 to 00:00:00:00:00:02 port 2 on dpid 1
Mininet Environment
Dump fows again to view diferences
mininet> dpctl dump-flows -O OpenFlow13
*** s1 ------------------------------------------------------------------------
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0x0, duration=38.044s, table=0, n_packets=0, n_bytes=0, priority=10,in_port=1,dl_src=00:00:00:00:00:01,dl_dst=ff:ff:ff:ff:ff:ff
actions=ALL
cookie=0x0, duration=37.044s, table=0, n_packets=3, n_bytes=238, priority=100,in_port=1,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02
actions=output:2
cookie=0x0, duration=38.043s, table=0, n_packets=0, n_bytes=0, priority=10,in_port=2,dl_src=00:00:00:00:00:02,dl_dst=ff:ff:ff:ff:ff:ff
actions=ALL
cookie=0x0, duration=38.043s, table=0, n_packets=4, n_bytes=336, priority=100,in_port=2,dl_src=00:00:00:00:00:02,dl_dst=00:00:00:00:00:01
actions=output:1
cookie=0x0, duration=38.043s, table=0, n_packets=0, n_bytes=0, priority=5,in_port=2,dl_src=00:00:00:00:00:02,dl_type=0x88cc actions=drop
cookie=0x0, duration=38.043s, table=0, n_packets=0, n_bytes=0, priority=5,in_port=1,dl_src=00:00:00:00:00:01,dl_type=0x88cc actions=drop
cookie=0x0, duration=38.043s, table=0, n_packets=0, n_bytes=0, priority=10,in_port=2,dl_src=00:00:00:00:00:02,dl_dst=01:00:00:00:00:00/01:00:00
:00:00:00 actions=ALL
cookie=0x0, duration=38.044s, table=0, n_packets=0, n_bytes=0, priority=10,in_port=1,dl_src=00:00:00:00:00:01,dl_dst=01:00:00:00:00:00/01:00:00
:00:00:00 actions=ALL
cookie=0x0, duration=73.001s, table=0, n_packets=3, n_bytes=294, priority=0 actions=FLOOD,CONTROLLER:64
Mininet Environment
Running a high bandwidth fow
mininet> iperf
*** Iperf: testing TCP bandwidth between
h1 and h2
Waiting for iperf to start up...***
Results: ['5.52 Gbits/sec', '5.52
Gbits/sec']
mininet>
Mininet Environment
Dump fows to see the fows which match
mininet> dpctl dump-flows -O OpenFlow13
*** s1 ------------------------------------------------------------------------
OFPST_FLOW reply (OF1.3) (xid=0x2):
...
cookie=0x0, duration=209.485s, table=0, n_packets=2384026, n_bytes=3609389036,
priority=100,in_port=1,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:0a actions=output:10
...
cookie=0x0, duration=209.485s, table=0, n_packets=27163, n_bytes=1792770,
priority=100,in_port=10,dl_src=00:00:00:00:00:0a,dl_dst=00:00:00:00:00:01 actions=output:1
...
cookie=0x0, duration=392.419s, table=0, n_packets=150, n_bytes=11868, priority=0
actions=FLOOD,CONTROLLER:6
Refereces
1. Mininet/Openfow Tutorials – Dean Pemberton
2. SDN – The Next Wave of Networking – Siva Valiappan
Questons

More Related Content

PPTX
Introduction to SDN and NFV
PDF
Cto’s guide to sdn, nfv and vnf
PDF
NFV for beginners
PDF
NFV and OpenStack
PDF
Network Function Virtualization (NFV) BoF
PDF
Cisco SDN/NVF Innovations (SDN NVF Day ITB 2016)
PPTX
Understanding and deploying Network Virtualization
PDF
The NFV, SDN & Wireless Network Infrastructure Market: 2015 - 2020 - Opportun...
Introduction to SDN and NFV
Cto’s guide to sdn, nfv and vnf
NFV for beginners
NFV and OpenStack
Network Function Virtualization (NFV) BoF
Cisco SDN/NVF Innovations (SDN NVF Day ITB 2016)
Understanding and deploying Network Virtualization
The NFV, SDN & Wireless Network Infrastructure Market: 2015 - 2020 - Opportun...

What's hot (20)

PDF
The evolution of data center network fabrics
PDF
Network Function Virtualization - Telkomsel Perspective (SDN NFV Day ITB 2016)
PDF
[OpenStack Day in Korea 2015] Track 2-3 - 오픈스택 클라우드에 최적화된 네트워크 가상화 '누아지(Nuage)'
PPTX
SDN and NFV: Friends or Enemies
PPTX
PLNOG16: Obsługa 100M pps na platformie PC , Przemysław Frasunek, Paweł Mała...
PPTX
Network Virtualization Architectural & Technological aspects
PDF
VMworld 2013: An Introduction to Network Virtualization
PDF
Openstack meetup: NFV and Openstack
PDF
PLNOG16: IOS XR – 12 lat innowacji, Krzysztof Mazepa
PDF
Modern Data Center Network Architecture - The house that Clos built
PDF
[OpenStack Day in Korea 2015] Track 3-4 - Software Defined Storage (SDS) and ...
PDF
Unified Underlay and Overlay SDNs for OpenStack Clouds
PDF
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017 - ...
PPTX
NFV & SDN ( Efficiency & Automation )
PPTX
Agile Networking with OpenStack
PPTX
Erez Cohen & Aviram Bar Haim, Mellanox - Enhancing Your OpenStack Cloud With ...
PPTX
Network Virtualization
PDF
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017 - ...
PDF
OpenStack and OpenContrail for FreeBSD platform by Michał Dubiel
PDF
Architecting data center networks in the era of big data and cloud
The evolution of data center network fabrics
Network Function Virtualization - Telkomsel Perspective (SDN NFV Day ITB 2016)
[OpenStack Day in Korea 2015] Track 2-3 - 오픈스택 클라우드에 최적화된 네트워크 가상화 '누아지(Nuage)'
SDN and NFV: Friends or Enemies
PLNOG16: Obsługa 100M pps na platformie PC , Przemysław Frasunek, Paweł Mała...
Network Virtualization Architectural & Technological aspects
VMworld 2013: An Introduction to Network Virtualization
Openstack meetup: NFV and Openstack
PLNOG16: IOS XR – 12 lat innowacji, Krzysztof Mazepa
Modern Data Center Network Architecture - The house that Clos built
[OpenStack Day in Korea 2015] Track 3-4 - Software Defined Storage (SDS) and ...
Unified Underlay and Overlay SDNs for OpenStack Clouds
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017 - ...
NFV & SDN ( Efficiency & Automation )
Agile Networking with OpenStack
Erez Cohen & Aviram Bar Haim, Mellanox - Enhancing Your OpenStack Cloud With ...
Network Virtualization
Intel's Out of the Box Network Developers Ireland Meetup on March 29 2017 - ...
OpenStack and OpenContrail for FreeBSD platform by Michał Dubiel
Architecting data center networks in the era of big data and cloud
Ad

Similar to Introduction to SDN (20)

PDF
Introductionto SDN
PDF
Introduction to Software Defined Networking (SDN)
PPTX
Software Defined Networking: Primer
PPTX
Introduction to Software Defined Networking (SDN)
PDF
Introduction to Software Defined Networking (SDN) presentation by Warren Finc...
PPTX
btNOG 9 presentation Introduction to Software Defined Networking
PPTX
Software Defined networking (SDN)
PPT
OpenFlow Tutorial
ODP
Why sdn
PDF
SDN Basics
PPTX
M.Tech Internet of Things Unit - IV.pptx
PDF
btNOG 5: Network Automation
PDF
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
PDF
Software Defined Optical Networks - Mayur Channegowda
PDF
Software Defined Optical Networks - Mayur Channegowda
PDF
SDN Security Talk - (ISC)2_3
PPTX
sdnppt-140325015756-phpapp01.pptx
PPTX
Operators experience and perspective on SDN with VLANs and L3 Networks
PPTX
PPTX
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014
Introductionto SDN
Introduction to Software Defined Networking (SDN)
Software Defined Networking: Primer
Introduction to Software Defined Networking (SDN)
Introduction to Software Defined Networking (SDN) presentation by Warren Finc...
btNOG 9 presentation Introduction to Software Defined Networking
Software Defined networking (SDN)
OpenFlow Tutorial
Why sdn
SDN Basics
M.Tech Internet of Things Unit - IV.pptx
btNOG 5: Network Automation
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Software Defined Optical Networks - Mayur Channegowda
Software Defined Optical Networks - Mayur Channegowda
SDN Security Talk - (ISC)2_3
sdnppt-140325015756-phpapp01.pptx
Operators experience and perspective on SDN with VLANs and L3 Networks
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014
Ad

More from Muhammad Moinur Rahman (14)

PDF
FreeBSD is not Linux
PDF
Introduction to Blockchain
PDF
Network tips tricks
PDF
IRR toolset with rpsl
PDF
Practical Implementation of Large BGP communities with Geotags and Traffic En...
PDF
Importance of sshfp and configuring sshfp for network devices
PDF
BGP communities and geotags
PDF
The FreeBSD - PRIMER
PDF
FreeBSD Portscamp, Kuala Lumpur 2016
PDF
Software defined networking: Primer
PDF
Rpki with rpki.net tools
PDF
FreeBSD and Hardening Web Server
PDF
Blockchain - The future of internet
PDF
Practical Implementation of BGP Community with Geotags
FreeBSD is not Linux
Introduction to Blockchain
Network tips tricks
IRR toolset with rpsl
Practical Implementation of Large BGP communities with Geotags and Traffic En...
Importance of sshfp and configuring sshfp for network devices
BGP communities and geotags
The FreeBSD - PRIMER
FreeBSD Portscamp, Kuala Lumpur 2016
Software defined networking: Primer
Rpki with rpki.net tools
FreeBSD and Hardening Web Server
Blockchain - The future of internet
Practical Implementation of BGP Community with Geotags

Recently uploaded (20)

PPTX
Module 1 - Cyber Law and Ethics 101.pptx
PDF
Sims 4 Historia para lo sims 4 para jugar
PDF
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
PDF
Slides PDF The World Game (s) Eco Economic Epochs.pdf
PPTX
Internet___Basics___Styled_ presentation
PDF
Testing WebRTC applications at scale.pdf
PPTX
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
PPTX
Funds Management Learning Material for Beg
PPTX
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx
PPTX
presentation_pfe-universite-molay-seltan.pptx
PPTX
international classification of diseases ICD-10 review PPT.pptx
PPTX
522797556-Unit-2-Temperature-measurement-1-1.pptx
PPTX
Introduction to Information and Communication Technology
PDF
Tenda Login Guide: Access Your Router in 5 Easy Steps
PPTX
artificial intelligence overview of it and more
PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PPTX
Introuction about ICD -10 and ICD-11 PPT.pptx
PDF
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
PDF
An introduction to the IFRS (ISSB) Stndards.pdf
PPTX
Introuction about WHO-FIC in ICD-10.pptx
Module 1 - Cyber Law and Ethics 101.pptx
Sims 4 Historia para lo sims 4 para jugar
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
Slides PDF The World Game (s) Eco Economic Epochs.pdf
Internet___Basics___Styled_ presentation
Testing WebRTC applications at scale.pdf
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
Funds Management Learning Material for Beg
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx
presentation_pfe-universite-molay-seltan.pptx
international classification of diseases ICD-10 review PPT.pptx
522797556-Unit-2-Temperature-measurement-1-1.pptx
Introduction to Information and Communication Technology
Tenda Login Guide: Access Your Router in 5 Easy Steps
artificial intelligence overview of it and more
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
Introuction about ICD -10 and ICD-11 PPT.pptx
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
An introduction to the IFRS (ISSB) Stndards.pdf
Introuction about WHO-FIC in ICD-10.pptx

Introduction to SDN

  • 2. History of Networking ● Blackbox networking equipments ● Big name companies building switching/routng devices ● Includes Proprietary/OEM Silicon Chip ● Wrapped up with a closed source Operatng System (e.g. A desktop PC with MS Windows and MS Ofce)
  • 3. Disadvantages of Current Scenario Technology was not designed keeping today in mind ○ Massive Scalability ○ Mult Tenant Networks ○ Virtualizaton ○ Cloud Computng ○ Mobility (Users/Devices/VM)
  • 4. Disadvantages of Current Scenario(Contd) Protocols are Box Centric; Not Fabric Centric • Difcult to confgure correctly(consistency) • Difcult to add new features(upgrades) • Difcult to debug(look at all devices)
  • 5. Disadvantages of Current Scenario(Contd) Closed Systems (Vendor Hardware) • Stuck with given interfaces (CLI, SNMP, etc.) • Hard to meaningfully collaborate • Vendors hesitant to open up • No way to add new features by yourself ANSWER: Sofware Defned Networking
  • 6. What is SDN? SDN is a framework to allow network administrators to automatcally and dynamically manage and control a large number of network devices, services, topology, trafc paths, and packet handling (quality of service) policies using high- level languages and APIs. Management includes provisioning, operatng, monitoring, optmizing, and managing FCAPS (fault, confguraton, accountng, performance, and security) in a mult-tenant environment.
  • 7. Networking Planes • Data Plane • Carries Network User Trafc • Control Panel • Carried Signalling Trafc • Management Panel • Carries Administratve Trafc
  • 9. Need for SDN - Virtualizaton Use network resource • without worrying about where it is physically located • how much it is • how it is organized
  • 10. Need for SDN - Orchestraton Should be able to control and manage thousands of devices with one command
  • 11. Need for SDN - Programmable Should be able to change behavior on the fy
  • 12. Need for SDN - Dynamic Scaling Should be able to change size, quantty, capacity
  • 13. Need for SDN - Automaton • To lower OpEx • Minimize manual involvement • Troubleshootng • Reduce downtme • Policy enforcement • Provisioning/Re-provisioning/Segmentaton of resources • Add new workloads, sites, devices, and resources
  • 14. Need for SDN - Visibility Monitor resources, connectvity
  • 15. Need for SDN - Performance Optmize network device utlizaton • Trafc engineering/Bandwidth management • Capacity optmizaton • Load balancing • High utlizaton • Fast failure handling
  • 16. Need for SDN - Mult Tenancy Tenants need complete control over their • Addresses • Topology • Routng • Security
  • 17. Need for SDN - Service Integraton Provisioned on demand and placed appropriately on the trafc path • Load balancers • Firewalls • Intrusion Detecton Systems (IDS)
  • 18. Alternatve APIs • Southbound APIs: XMPP (Juniper), OnePK (Cisco) • Northbound APIs: I2RS, I2AEX, ALTO • Overlay: VxLAN, TRILL, LISP, STT, NVO3, PWE3, L2VPN, L3VPN • Confguraton API: NETCONF • Controller: PCE, ForCES
  • 19. History Feb, 2011 - OpenFlow 1.1 Released Dec, 2011 - OpenFlow 1.2 Released Feb, 2012 - “Floodlight” Project Announced Apr, 2012 - Google announces at ONF Jul, 2012 - Vmware acquires Nicira Apr, 2013 - “OpenDaylight” Released
  • 20. Hardware Internals • Logical View of a Switch • Physical Architecture of a Switch Switchin g Fabric Processo r ASI C AIS C data plane control plane Network O.S. ASIC ApplicatonsApplicatons
  • 21. Internals of SDN • Southbound API: decouples the switch hardware from control functon – Data plane from control plane • Switch Operatng System: exposes switch hardware primitves Network O.S. ApplicatonsApplicatonsApplicatons Southbound API SDN Switch Operatng System Switch Hardware Network O.S. ASIC ApplicatonsApplicatons Current Switch Vertcal stack SDN Switch Decoupled stack
  • 22. How SDN Works Controller (N. O.S.) ApplicatonsApplicatonsApplicatons Southbound API Switch H.W Switch O.S Switch H.W Switch O.S
  • 23. Implicatons of SDN Controller (N. O.S.) ApplicatonsApplicatonsApplicatons Southboun d API Switch O.S Switch HW Switch O.S Switch HW Switch O.S Switch HW Global View Programmatc Control Current Networking SDN Enabled Environment Network O.S. ASIC ApplicatonsApplicatons Network O.S. ASIC ApplicatonsApplicatons Network O.S. ASIC ApplicatonsApplicatons
  • 24. Implicatons of SDN(Cont) Current Networking SDN Enabled Environment Controller (N. O.S.) ApplicatonsApplicatonsApplicatons Southbound API Switch O.S Switch HW Switch O.S Switch HW Switch O.S Switch HW • Distributed protocols • Each switch has a brain • Hard to achieve optmal soluton • Network confgured indirectly • Confgure protocols • Hope protocols converge • Global view of the network • Applicatons can achieve optmal • Southbound API gives fne grained control over switch • Network confgured directly • Allows automaton • Allows defniton of new interfaces Network O.S. ASIC ApplicatonsApplicatons Network O.S. ASIC ApplicatonsApplicatons Network O.S. ASIC ApplicatonsApplicatons
  • 25. 25 The SDN Stack ControllerNOX Slicing SofwareFlowVisor FlowVisor Console 25 ApplicatonsLAVIENVI (GUI) …n-Castng NetFPGA Sofware Ref. Switch Broadcom Ref. Switch OpenWRT PCEngine WiFi AP Commercial Switches OpenFlow Switches RyU Monitoring/ debugging tools ofopsofrace openseer Open vSwitch HP, IBM, NEC, Pronto, Juniper.. and many more Beacon Trema FloodLigh t Source: SDN Tutorial by B. Heller Open Networking Summit, April 2012
  • 26. Dimensions of SDN Environments: Vendor Devices Vertcal Stacks • Vendor bundles switch and switch OS • Restricted to vendor OS and vendor interface • Low operatonal overhead • One stop shop Whitebox Networking • Vendor provides hardware with no switch OS • Switch OS provided by third party • Flexibility in picking OS • High operatonal overhead • Must deal with multple vendors
  • 27. Dimensions of SDN Environments: Switch Hardware Virtual: Overlay • Pure sofware implementaton • Assumes programmable virtual switches • Run in Hypervisor or in the OS • Larger Flow Table entries (more memory and CPU) • Backward compatble • Physical switches run traditonal protocols • Trafc sent in tunnels • Lack of visibility into physical network Physical: Underlay • Fine grained control and visibility into network • Assumes specialized hardware • Limited Flow Table entries
  • 28. Dimensions of SDN Environments: Southbound Interface OpenFlow • Flexible matching • L2, L3, VLAN, MPLS • Flexible actons • Encapsulaton: IP-in-IP • Address rewritng: • IP address • Mac address BGP/XMPP/IS-IS/NetConf • Limited matching • IS-IS: L3 • BGP+MPLS: L3+MPLS • Limited actons • L3/l2 forwarding • Encapsulaton
  • 29. Dimensions of SDN Environments: Controller Types Modular Controllers • Applicaton code manipulates forwarding rules • E.g. OpenDaylight, Floodlight • Writen in imperatve languages • Java, C++, Python • Dominant controller style High Level Controllers • Applicaton code specifes declaratve policies • E.g. Frenetc, McNetle • Applicaton code is verifable • Amendable to formal verifcaton • Writen in functonal languages • Netle, OCamal
  • 30. • Controller Type • Modular: Floodlight • Southbound API: OpenFlow • OpenFlow 1.3 • SDN Device: Whitebox • (indigo) • SDN Flavor • Underlay+Overlay Ecosystem : BigSwitch
  • 31. • Controller Type • Modular: OpenContrail • Southbound API: XMPP/NetConf • BGP+MPLS • SDN Device: Vertcal Stack • Propriety Junos • SDN Flavor • Overlay Ecosystem : Juniper
  • 32. SDN EcoSystem Arista OF + proprietary Underlay Vertcal Stack Broadcom OF + proprietary Underlay Vertcal Stack HP OF Underlay Vertcal Stack Cisco OF + proprietary Underlay+Overlay Vertcal Stack FloodLight OF Underlay+Overlay Whitebox Dell OF Underlay Vertcal Stack HP OF Underlay Vertcal Stack Alcatel BGP Overlay Vertcal Stack Juniper BGP+NetConf Overlay Vertcal Stack
  • 33. OpenFlow • Developed in Stanford • Standardized by Open Networking Foundaton (ONF) • Current Version 1.4 • Version implemented by switch vendors: 1.3 • Allows control of underlay + overlay • Overlay switches: OpenVSwitch/Indigo-light PC
  • 34. SDN vs OpenFlow • Leading SDN protocol • Decouples control and data plane by giving a controller the ability to install fow rules on switches(Bare Metal) • Hardware or sofware switches can use OpenFlow • Spec driven by ONF
  • 35. How SDN Works: OpenFlow Controller (N. O.S.) ApplicatonsApplicatonsApplicatons Southbound API Switch H.W Switch O.S Switch H.W Switch O.S OpenFlow OpenFlow
  • 36. OpenFlow: Anatomy of a Flow Table Entry Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot L4 sport L4 dport Matc h Acto n Counte r 1. Forward packet to zero or more ports 2. Encapsulate and forward to controller 3. Send to normal processing pipeline 4. Modify Fields When to delete the entry VLAN pcp IP ToS Priorit y Time- out What order to process the rule # of Packet/Bytes processed by the rule
  • 37. Examples Switching * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Acton * 00:1f:.. * * * * * * * port6 Flow Switching port3 Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Acton 00:20.. 00:1f.. 0800 vlan1 1.2.3.4 5.6.7.8 4 17264 80 port6 Firewall * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Acton * * * * * * * * 22 drop 37
  • 38. Examples Routng * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Acton * * * * * 5.6.7.8 * * * port6 VLAN Switching * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Acton * * vlan1 * * * * * port6, port7, port9 00:1f.. 38
  • 39. Data Path (Hardware) Control Path OpenFlow OpenFlow Controller OpenFlow Protocol (SSL/TCP) 39 OpenFlow: How it works
  • 40. Controller PC Hardwar e Layer Sofware Layer Flow Table MAC src MAC dst IP Src IP Dst TCP sport TCP dport Acton OpenFlow Client **5.6.7.8*** port 1 port 4port 3port 2port 1 1.2.3.45.6.7.8 40 OpenFlow: Anatomy of a Flow Table Entry
  • 41. SDN Components : Hardwares OpenFlow Compliant (1.0-1.4) Switch • HP 8200 ZL, 6600, 6200ZL • Brocade 5400ZL, 3500 • IBM NetIron • Juniper OCX1100 • Baremetal Switch • OpenVSwitch
  • 42. SDN Components : Controllers •OpenFlow Compliant (1.0-1.4) Controller • POX: (Python) Pox as a general SDN controller that supports OpenFlow. It has a high-level SDN API including a queriable topology graph and support for virtualizaton. • IRIS: (Java) a Resursive SDN Openfow Controller created by IRIS Research Team of ETRI. • MUL: (C) MūL, is an openfow (SDN) controller. • NOX: (C++/Python) NOX was the frst OpenFlow controller.
  • 43. SDN Components : Controllers (Contd) • Jaxon: (Java) Jaxon is a NOX-dependent Java-based OpenFlow Controller. • Trema: (C/Ruby) Trema is a full-stack framework for developing OpenFlow controllers in Ruby and C. • Beacon: (Java) Beacon is a Java-based controller that supports both event-based and threaded operaton. •ovs-controller (C) Trivial reference controller packaged with Open vSwitch.
  • 44. SDN Components : Controllers (Contd) • Floodlight: (Java) The Floodlight controller is Java-based OpenFlow Controller. It was forked from the Beacon controller, originally developed by David Erickson at Stanford. • Maestro: (Java) Maestro is an OpenFlow "operatng system" for orchestratng network control applicatons. •NodeFlow (JavaScript) NodeFlow is an OpenFlow controller writen in pure JavaScript for Node.JS. • NDDI - OESS: OESS is an applicaton to confgure and control OpenFlow Enabled switches through a very simple and user friendly User Interface. • Ryu: (Python) Ryu is an open-sourced Network Operatng System (NOS) that supports OpenFlow.
  • 45. SDN Components : Controllers (Contd) • NDDI - OESS: OESS is an applicaton to confgure and control OpenFlow Enabled switches through a very simple and user friendly User Interface. • Ryu: (Python) Ryu is an open-sourced Network Operatng System (NOS) that supports OpenFlow.
  • 47. Objectves • Basics of running Mininet in a virtual machine. • Mininet facilitates creatng and manipulatng Sofware Defned Networking components. • Explore OpenFlow •An open interface for controlling the network elements through their forwarding tables. • Experience with the platorms and debugging tools most useful for developing network control applicatons on OpenFlow. • Run the Ryu controller with a sample applicaton • Use various commands to gain experience with OpenFlow control of OpenvSwitch
  • 48. Objectves (Contd) • Run the Ryu controller with a sample applicaton • Use various commands to gain experience with OpenFlow control of OpenvSwitch
  • 49. Topology • Three hosts named h1, h2 and h3 respectvely. Each host has an Ethernet interface called h1-eth0, h2-eth0 and h3-eth0 respectvely. • Three hosts are connected through a switch names s1. The switch s1 has three ports named s1-eth1, s1-eth2 and s1-eth3. • The controller is connected on the loopback interface (in real life this may or may not be the case, it means the switch and controller are built in a single box). The controller is identfed as c0 and connected through port 6633.
  • 50. Topology Diagram C0 - Controller Switch H.W S1 Switch OpenFlow H1 – h1-eth0 H2 – h2-eth0 H3 – h3-eth0 S1-eth2 S1-eth1 S1-eth0
  • 51. RYU Openfow controller Ensure that no other controller is present root@mininet-vm:~# killall controller controller: no process found root@mininet-vm:~# Note that 'controller' is a simple OpenFlow reference controller implementaton in linux. We want to ensure that this is not running before we start our own controller.
  • 52. RYU Openfow controller(Cont) Clear all mininet components root@mininet-vm:~# mn -c *** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes killall controller ofprotocol ofdatapath ping nox_core lt-nox_core ovs-openflowd ovs-controller udpbwtest mnexec ivs 2> /dev/null killall -9 controller ofprotocol ofdatapath ping nox_core lt-nox_core ovsopenflowd ovs-controller udpbwtest mnexec ivs 2> /dev/null pkill -9 -f "sudo mnexec" *** Removing junk from /tmp rm -f /tmp/vconn* /tmp/vlogs* /tmp/*.out /tmp/*.log *** Removing old X11 tunnels *** Removing excess kernel datapaths ps ax | egrep -o 'dp[0-9]+' | sed 's/dp/nl:/' *** Removing OVS datapathsovs-vsctl --timeout=1 list-br ovs-vsctl del-br s1 ovs-vsctl del-br s2 ovs-vsctl del-br s3 ovs-vsctl del-br s4 *** Removing all links of the pattern foo-ethX ip link show | egrep -o '(w+-ethw+)' *** Cleanup complete. root@mininet-vm:~#
  • 53. RYU Openfow controller(Cont) Start the Ryu controller root@mininet-vm:~# ryu-manager --verbose ./simple_switch_13.py loading app ./simple_switch_13.py loading app ryu.controller.ofp_handler instantiating app ./simple_switch_13.py of SimpleSwitch13 instantiating app ryu.controller.ofp_handler of OFPHandler BRICK SimpleSwitch13 CONSUMES EventOFPSwitchFeatures CONSUMES EventOFPPacketIn BRICK ofp_event PROVIDES EventOFPSwitchFeatures TO {'SimpleSwitch13': set(['config'])} PROVIDES EventOFPPacketIn TO {'SimpleSwitch13': set(['main'])} CONSUMES EventOFPHello CONSUMES EventOFPErrorMsg CONSUMES EventOFPEchoRequest CONSUMES EventOFPPortDescStatsReply CONSUMES EventOFPSwitchFeatures Understanding simple_switch.py
  • 54. MiniNet Environment root@mininet-vm:~# mn --topo=tree,1,3 --mac --controller=remote --switch ovsk,protocols=OpenFlow13 *** Creating network *** Adding controller *** Adding hosts: h1 h2 h3 *** Adding switches: s1 *** Adding links: (h1, s1) (h2, s1) (h3, s1) *** Configuring hosts h1 h2 h3 *** Starting controller *** Starting 1 switches s1 *** Starting CLI: mininet>
  • 55. MiniNet Environment(Cont) Monitor controller to ensure that the switch connects connected socket:<eventlet.greenio.GreenSocket object at 0xa986c0c> address: ('127.0.0.1', 42733) connected socket:<eventlet.greenio.GreenSocket object at 0xa986cec> address: ('127.0.0.1', 42734) hello ev <ryu.controller.ofp_event.EventOFPHello object at 0xa9897ac> move onto config mode EVENT ofp_event->SimpleSwitch13 EventOFPSwitchFeatures switch features ev version: 0x4 msg_type 0x6 xid 0xb15cb575 OFPSwitchFeatures(auxiliary_id=0,capabilities=71,datapath_id=1,n_buffers =256,n_tables=254) move onto main mode
  • 56. MiniNet Environment(Cont) Dump fows on switch s1 mininet> dpctl dump-flows -O OpenFlow13 *** s1 ----------------------------------------- OFPST_FLOW reply (OF1.3) (xid=0x2): cookie=0x0, duration=2.481s, table=0, n_packets=0, n_bytes=0, priority=0 actions=FLOOD,CONTROLLER:64 mininet>
  • 57. MiniNet Environment(Cont) Passing Packets mininet> h1 ping h2 PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data. 64 bytes from 10.0.0.2: icmp_req=1 ttl=64 time=5.10 ms 64 bytes from 10.0.0.2: icmp_req=2 ttl=64 time=0.238 ms 64 bytes from 10.0.0.2: icmp_req=3 ttl=64 time=0.052 ms 64 bytes from 10.0.0.2: icmp_req=4 ttl=64 time=0.051 ms ^C --- 10.0.0.2 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3001ms rtt min/avg/max/mdev = 0.051/1.360/5.100/2.160 ms mininet>
  • 58. MiniNet Environment(Cont) Passing Packets mininet> h1 ping h2 PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data. 64 bytes from 10.0.0.2: icmp_req=1 ttl=64 time=5.10 ms 64 bytes from 10.0.0.2: icmp_req=2 ttl=64 time=0.238 ms 64 bytes from 10.0.0.2: icmp_req=3 ttl=64 time=0.052 ms 64 bytes from 10.0.0.2: icmp_req=4 ttl=64 time=0.051 ms ^C --- 10.0.0.2 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3001ms rtt min/avg/max/mdev = 0.051/1.360/5.100/2.160 ms mininet>
  • 59. Controller Environment Monitor new messages in the controller window EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn packet in from 00:00:00:00:00:01 port 1 to 00:00:00:00:00:02 on dpid 1 associate 00:00:00:00:00:01 with port 1 on dpid 1 packet in from 00:00:00:00:00:02 port 2 to 00:00:00:00:00:01 on dpid 1 associate 00:00:00:00:00:02 with port 2 on dpid 1 add unicast flow from 00:00:00:00:00:02 port 2 to 00:00:00:00:00:01 port 1 on dpid 1 EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn packet in from 00:00:00:00:00:01 port 1 to 00:00:00:00:00:02 on dpid 1 add unicast flow from 00:00:00:00:00:01 port 1 to 00:00:00:00:00:02 port 2 on dpid 1
  • 60. Mininet Environment Dump fows again to view diferences mininet> dpctl dump-flows -O OpenFlow13 *** s1 ------------------------------------------------------------------------ OFPST_FLOW reply (OF1.3) (xid=0x2): cookie=0x0, duration=38.044s, table=0, n_packets=0, n_bytes=0, priority=10,in_port=1,dl_src=00:00:00:00:00:01,dl_dst=ff:ff:ff:ff:ff:ff actions=ALL cookie=0x0, duration=37.044s, table=0, n_packets=3, n_bytes=238, priority=100,in_port=1,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:02 actions=output:2 cookie=0x0, duration=38.043s, table=0, n_packets=0, n_bytes=0, priority=10,in_port=2,dl_src=00:00:00:00:00:02,dl_dst=ff:ff:ff:ff:ff:ff actions=ALL cookie=0x0, duration=38.043s, table=0, n_packets=4, n_bytes=336, priority=100,in_port=2,dl_src=00:00:00:00:00:02,dl_dst=00:00:00:00:00:01 actions=output:1 cookie=0x0, duration=38.043s, table=0, n_packets=0, n_bytes=0, priority=5,in_port=2,dl_src=00:00:00:00:00:02,dl_type=0x88cc actions=drop cookie=0x0, duration=38.043s, table=0, n_packets=0, n_bytes=0, priority=5,in_port=1,dl_src=00:00:00:00:00:01,dl_type=0x88cc actions=drop cookie=0x0, duration=38.043s, table=0, n_packets=0, n_bytes=0, priority=10,in_port=2,dl_src=00:00:00:00:00:02,dl_dst=01:00:00:00:00:00/01:00:00 :00:00:00 actions=ALL cookie=0x0, duration=38.044s, table=0, n_packets=0, n_bytes=0, priority=10,in_port=1,dl_src=00:00:00:00:00:01,dl_dst=01:00:00:00:00:00/01:00:00 :00:00:00 actions=ALL cookie=0x0, duration=73.001s, table=0, n_packets=3, n_bytes=294, priority=0 actions=FLOOD,CONTROLLER:64
  • 61. Mininet Environment Running a high bandwidth fow mininet> iperf *** Iperf: testing TCP bandwidth between h1 and h2 Waiting for iperf to start up...*** Results: ['5.52 Gbits/sec', '5.52 Gbits/sec'] mininet>
  • 62. Mininet Environment Dump fows to see the fows which match mininet> dpctl dump-flows -O OpenFlow13 *** s1 ------------------------------------------------------------------------ OFPST_FLOW reply (OF1.3) (xid=0x2): ... cookie=0x0, duration=209.485s, table=0, n_packets=2384026, n_bytes=3609389036, priority=100,in_port=1,dl_src=00:00:00:00:00:01,dl_dst=00:00:00:00:00:0a actions=output:10 ... cookie=0x0, duration=209.485s, table=0, n_packets=27163, n_bytes=1792770, priority=100,in_port=10,dl_src=00:00:00:00:00:0a,dl_dst=00:00:00:00:00:01 actions=output:1 ... cookie=0x0, duration=392.419s, table=0, n_packets=150, n_bytes=11868, priority=0 actions=FLOOD,CONTROLLER:6
  • 63. Refereces 1. Mininet/Openfow Tutorials – Dean Pemberton 2. SDN – The Next Wave of Networking – Siva Valiappan