Introduction to Software Defined Networking (SDN)

Introduction to SDN
Muhammahmad Moinur Rahman
moin@1asia-ahl.com
History of Networking
• Blackbox networking equipments
• Big name companies building switching/routing devices
• Includes Proprietary/OEM Silicon Chip
• Wrapped up with a closed source Operating System (e.g. A desktop
PC with MS Windows and MS Office)
Disadvantages of Current Scenario
Technology was not designed keeping today in mind
• Massive Scalability
• Multi Tenant Networks
• Virtualization
• Cloud Computing
• Mobility (Users/Devices/VM)
Disadvantages of Current Scenario(Contd)
Protocols are Box Centric; Not Fabric Centric
• Difficult to configure correctly(consistency)
• Difficult to add new features(upgrades)
• Difficult 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: Software Defined Networking
What is SDN?
SDN is a framework to allow network administrators to automatically
and dynamically manage and control a large number of network
devices, services, topology, traffic paths, and packet handling (quality
of service) policies using high-level languages and APIs.
Management includes provisioning, operating, monitoring, optimizing,
and managing FCAPS (fault, configuration, accounting, performance,
and security) in a multi-tenant environment.
Networking Planes
• Data Plane
• Carries Network User Traffic
• Control Panel
• Carried Signalling Traffic
• Management Panel
• Carries Administrative Traffic
SDN Architecture
Need for SDN - Virtualization
Use network resource
• without worrying about where it is physically located
• how much it is
• how it is organized
Need for SDN - Orchestration
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 fly
Need for SDN - Dynamic Scaling
Should be able to change size, quantity, capacity
Need for SDN - Automation
• To lower OpEx
• Minimize manual involvement
• Troubleshooting
• Reduce downtime
• Policy enforcement
• Provisioning/Re-provisioning/Segmentation of resources
• Add new workloads, sites, devices, and resources
Need for SDN - Visibility
Monitor resources, connectivity
Need for SDN - Performance
Optimize network device utilization
• Traffic engineering/Bandwidth management
• Capacity optimization
• Load balancing
• High utilization
• Fast failure handling
Need for SDN - Multi Tenancy
Tenants need complete control over their
• Addresses
• Topology
• Routing
• Security
Need for SDN - Service Integration
Provisioned on demand and placed appropriately on the traffic path
• Load balancers
• Firewalls
• Intrusion Detection Systems (IDS)
Alternative APIs
• Southbound APIs: XMPP (Juniper), OnePK (Cisco)
• Northbound APIs: I2RS, I2AEX, ALTO
• Overlay: VxLAN, TRILL, LISP, STT, NVO3, PWE3, L2VPN, L3VPN
• Configuration 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
Switching
Fabric
Processor
ASIC AISC
data plane
control plane
Network O.S.
ASIC
ApplicationsApplications
Internals of SDN
• Southbound API: decouples the switch hardware from control function
– Data plane from control plane
• Switch Operating System: exposes switch hardware primitives
Network O.S.
ApplicationsApplications
Applications
Southbound
API
SDN
Switch Operating System
Switch Hardware
Network O.S.
ASIC
ApplicationsApplications
Current Switch
Vertical stack
SDN Switch
Decoupled
stack
How SDN Works
Controller (N. O.S.)
ApplicationsApplicationsApplications
Southbound
API
Switch H.W
Switch O.S
Switch H.W
Switch O.S
Implications of SDN
Controller (N. O.S.)
ApplicationsApplicationsApplications
Southbound
API
Switch O.S
Switch HW
Switch O.S
Switch HW
Switch O.S
Switch HW
Global View
Programmatic
Control
Current Networking SDN Enabled Environment
Network O.S.
ASIC
ApplicationsApplications
Network O.S.
ASIC
ApplicationsApplications
Network O.S.
ASIC
ApplicationsApplications
Implications of SDN(Cont)
Current Networking SDN Enabled Environment
Controller (N. O.S.)
ApplicationsApplicationsApplications
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 optimal
solution
• Network configured indirectly
• Configure protocols
• Hope protocols converge
• Global view of the network
• Applications can achieve optimal
• Southbound API gives fine grained control
over switch
• Network configured directly
• Allows automation
• Allows definition of new interfaces
Network O.S.
ASIC
ApplicationsApplications
Network O.S.
ASIC
ApplicationsApplications
Network O.S.
ASIC
ApplicationsApplications
Dimensions of SDN Environments:
Vendor Devices
Vertical Stacks
• Vendor bundles switch and
switch OS
• Restricted to vendor OS and
vendor interface
• Low operational overhead
• One stop shop
Whitebox Networking
• Vendor provides hardware with
no switch OS
• Switch OS provided by third
party
• Flexibility in picking OS
• High operational overhead
• Must deal with multiple vendors
Dimensions of SDN Environments:
Switch Hardware
Virtual: Overlay
• Pure software implementation
• Assumes programmable virtual switches
• Run in Hypervisor or in the OS
• Larger Flow Table entries (more memory and CPU)
• Backward compatible
• Physical switches run traditional protocols
• Traffic 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 actions
• Encapsulation: IP-in-IP
• Address rewriting:
• IP address
• Mac address
BGP/XMPP/IS-IS/NetConf
• Limited matching
• IS-IS: L3
• BGP+MPLS: L3+MPLS
• Limited actions
• L3/l2 forwarding
• Encapsulation
Dimensions of SDN Environments:
Controller Types
Modular Controllers
• Application code manipulates forwarding
rules
• E.g. OpenDaylight, Floodlight
• Written in imperative languages
• Java, C++, Python
• Dominant controller style
High Level Controllers
• Application code specifies declarative policies
• E.g. Frenetic, McNettle
• Application code is verifiable
• Amendable to formal verification
• Written in functional languages
• Nettle, 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: Vertical Stack
• Propriety Junos
• SDN Flavor
• Overlay
Ecosystem : Juniper
SDN EcoSystem
Arista
OF + proprietary
Underlay
Vertical Stack
Broadcom
OF + proprietary
Underlay
Vertical Stack
HP
OF
Underlay
Vertical Stack
Cisco
OF + proprietary
Underlay+Overlay
Vertical Stack
FloodLight
OF
Underlay+Overlay
Whitebox
Dell
OF
Underlay
Vertical Stack
HP
OF
Underlay
Vertical Stack
Alcatel
BGP
Overlay
Vertical Stack
Juniper
BGP+NetConf
Overlay
Vertical Stack
OpenFlow
• Developed in Stanford
• Standardized by Open Networking Foundation (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 flow rules on switches(Bare Metal)
• Hardware or software switches can use OpenFlow
• Spec driven by ONF
How SDN Works: OpenFlow
Controller (N. O.S.)
ApplicationsApplicationsApplications
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
Match Action Counter
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
Priority 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
Action
* 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
Action
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
Action
* * * * * * * * 22 drop
37
Examples
Routing
*
Switch
Port
MAC
src
MAC
dst
Eth
type
VLAN
ID
IP
Src
IP
Dst
IP
Prot
TCP
sport
TCP
dport
Action
* * * * * 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
Action
* * 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
Hardware
Layer
Software
Layer
Flow Table
MAC
src
MAC
dst
IP
Src
IP
Dst
TCP
sport
TCP
dport
Action
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 virtualization.
• IRIS: (Java) a Resursive SDN Openflow Controller created by IRIS Research Team of ETRI.
• MUL: (C) MūL, is an openflow (SDN) controller.
• NOX: (C++/Python) NOX was the first OpenFlow controller.
• 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 operation.
• 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 "operating system" for orchestrating network control applications.
• NDDI - OESS: OESS is an application to configure and control OpenFlow Enabled switches through a very simple and user friendly User Interface.
• Ryu: (Python) Ryu is an open-sourced Network Operating System (NOS) that supports OpenFlow.
• NodeFlow (JavaScript) NodeFlow is an OpenFlow controller written in pure JavaScript for Node.JS.
• ovs-controller (C) Trivial reference controller packaged with Open vSwitch.
Demonstration Lab
Objectives
• Basics of running Mininet in a virtual machine.
• Mininet facilitates creating and manipulating Software Defined Networking
components.
• Explore OpenFlow, which is an open interface for controlling the network
elements through their forwarding tables. A network element may be
converted into a switch, router or even an access points via low-level
primitives defined in OpenFlow.
• Experience with the platforms and debugging tools most useful for
developing network control applications on OpenFlow.
• Run the Ryu controller with a sample application
• Use various commands to gain experience with OpenFlow control of
OpenvSwitch
Topology
• Three hosts named h1, h2 and h3 respectively. Each host has an
Ethernet interface called h1-eth0, h2-eth0 and h3-eth0 respectively.
• 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 identified 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 Openflow 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
implementation in linux. We want to
ensure that this is not running before we start our own controller.
RYU Openflow 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 Openflow 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 flows 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>
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 flows again to view differences
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 flow
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 flows to see the flows 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/Openflow Tutorials – Dean Pemberton
2. SDN – The Next Wave of Networking – Siva Valiappan
Questions
1 sur 58

Recommandé

Software Defined Network - SDN par
Software Defined Network - SDNSoftware Defined Network - SDN
Software Defined Network - SDNVenkata Naga Ravi
15.8K vues26 diapositives
SDN: an introduction par
SDN: an introductionSDN: an introduction
SDN: an introductionLuca Profico
1.8K vues23 diapositives
Software defined networking(sdn) vahid sadri par
Software defined networking(sdn) vahid sadriSoftware defined networking(sdn) vahid sadri
Software defined networking(sdn) vahid sadriVahid Sadri
1.5K vues84 diapositives
Software Defined Networks par
Software Defined NetworksSoftware Defined Networks
Software Defined NetworksShreeya Shah
1.5K vues27 diapositives
Software Defined Network (SDN) par
Software Defined Network (SDN)Software Defined Network (SDN)
Software Defined Network (SDN)Ahmed Ayman
949 vues17 diapositives
Sdn presentation par
Sdn presentation Sdn presentation
Sdn presentation Frikha Nour
2.7K vues26 diapositives

Contenu connexe

Tendances

Software-Defined Networking(SDN):A New Approach to Networking par
Software-Defined Networking(SDN):A New Approach to NetworkingSoftware-Defined Networking(SDN):A New Approach to Networking
Software-Defined Networking(SDN):A New Approach to NetworkingAnju Ann
11.7K vues29 diapositives
SDN Fundamentals - short presentation par
SDN Fundamentals -  short presentationSDN Fundamentals -  short presentation
SDN Fundamentals - short presentationAzhar Khuwaja
1.6K vues34 diapositives
Introduction to Network Function Virtualization (NFV) par
Introduction to Network Function Virtualization (NFV)Introduction to Network Function Virtualization (NFV)
Introduction to Network Function Virtualization (NFV)rjain51
40.8K vues28 diapositives
SDN, OpenFlow, NFV, and Virtual Network par
SDN, OpenFlow, NFV, and Virtual NetworkSDN, OpenFlow, NFV, and Virtual Network
SDN, OpenFlow, NFV, and Virtual NetworkTim4PreStartup
5.2K vues72 diapositives
Software defined networking par
Software defined networkingSoftware defined networking
Software defined networkingProf. Dr. Noman Islam
959 vues83 diapositives
Wireless Sensor Networks ppt par
Wireless Sensor Networks pptWireless Sensor Networks ppt
Wireless Sensor Networks pptDevdutta Chakrabarti
89.4K vues22 diapositives

Tendances(20)

Software-Defined Networking(SDN):A New Approach to Networking par Anju Ann
Software-Defined Networking(SDN):A New Approach to NetworkingSoftware-Defined Networking(SDN):A New Approach to Networking
Software-Defined Networking(SDN):A New Approach to Networking
Anju Ann11.7K vues
SDN Fundamentals - short presentation par Azhar Khuwaja
SDN Fundamentals -  short presentationSDN Fundamentals -  short presentation
SDN Fundamentals - short presentation
Azhar Khuwaja1.6K vues
Introduction to Network Function Virtualization (NFV) par rjain51
Introduction to Network Function Virtualization (NFV)Introduction to Network Function Virtualization (NFV)
Introduction to Network Function Virtualization (NFV)
rjain5140.8K vues
SDN, OpenFlow, NFV, and Virtual Network par Tim4PreStartup
SDN, OpenFlow, NFV, and Virtual NetworkSDN, OpenFlow, NFV, and Virtual Network
SDN, OpenFlow, NFV, and Virtual Network
Tim4PreStartup5.2K vues
Introduction to Software Defined Networking (SDN) par rjain51
Introduction to Software Defined Networking (SDN)Introduction to Software Defined Networking (SDN)
Introduction to Software Defined Networking (SDN)
rjain5121.5K vues
Software Defined Networking (SDN) Technology Brief par Zivaro Inc
Software Defined Networking (SDN) Technology BriefSoftware Defined Networking (SDN) Technology Brief
Software Defined Networking (SDN) Technology Brief
Zivaro Inc2.7K vues
Introduction to SDN and NFV par CoreStack
Introduction to SDN and NFVIntroduction to SDN and NFV
Introduction to SDN and NFV
CoreStack3.7K vues
Wireless Sensor Networks par juno susi
Wireless Sensor NetworksWireless Sensor Networks
Wireless Sensor Networks
juno susi6.5K vues
Software-Defined Networking (SDN): Unleashing the Power of the Network par Robert Keahey
Software-Defined Networking (SDN): Unleashing the Power of the NetworkSoftware-Defined Networking (SDN): Unleashing the Power of the Network
Software-Defined Networking (SDN): Unleashing the Power of the Network
Robert Keahey11.2K vues
5G Network Architecture and Design par 3G4G
5G Network Architecture and Design5G Network Architecture and Design
5G Network Architecture and Design
3G4G69.5K vues
Network function virtualization par Satish Chavan
Network function virtualizationNetwork function virtualization
Network function virtualization
Satish Chavan2.5K vues

En vedette

PAN Manager 7/8 ご説明 par
PAN Manager 7/8 ご説明PAN Manager 7/8 ご説明
PAN Manager 7/8 ご説明ShinjiNakai
1.4K vues21 diapositives
SDN Adoption Challenges par
SDN Adoption Challenges SDN Adoption Challenges
SDN Adoption Challenges Vimal Suba
1K vues21 diapositives
Software defined networks and openflow protocol par
Software defined networks and openflow protocolSoftware defined networks and openflow protocol
Software defined networks and openflow protocolMahesh Mohan
1.4K vues24 diapositives
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015 par
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Vimal Suba
2.6K vues28 diapositives
The Challenges of SDN/OpenFlow in an Operational and Large-scale Network par
The Challenges of SDN/OpenFlow in an Operational and Large-scale NetworkThe Challenges of SDN/OpenFlow in an Operational and Large-scale Network
The Challenges of SDN/OpenFlow in an Operational and Large-scale NetworkOpen Networking Summits
1.2K vues30 diapositives
NFV for beginners par
NFV for beginnersNFV for beginners
NFV for beginnersDave Neary
20K vues33 diapositives

En vedette(12)

PAN Manager 7/8 ご説明 par ShinjiNakai
PAN Manager 7/8 ご説明PAN Manager 7/8 ご説明
PAN Manager 7/8 ご説明
ShinjiNakai1.4K vues
SDN Adoption Challenges par Vimal Suba
SDN Adoption Challenges SDN Adoption Challenges
SDN Adoption Challenges
Vimal Suba1K vues
Software defined networks and openflow protocol par Mahesh Mohan
Software defined networks and openflow protocolSoftware defined networks and openflow protocol
Software defined networks and openflow protocol
Mahesh Mohan1.4K vues
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015 par Vimal Suba
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Vimal Suba2.6K vues
The Challenges of SDN/OpenFlow in an Operational and Large-scale Network par Open Networking Summits
The Challenges of SDN/OpenFlow in an Operational and Large-scale NetworkThe Challenges of SDN/OpenFlow in an Operational and Large-scale Network
The Challenges of SDN/OpenFlow in an Operational and Large-scale Network
NFV for beginners par Dave Neary
NFV for beginnersNFV for beginners
NFV for beginners
Dave Neary20K vues
Software Defined Networks Explained par CM Research
Software Defined Networks ExplainedSoftware Defined Networks Explained
Software Defined Networks Explained
CM Research7.8K vues
SDN Basics – What You Need to Know about Software-Defined Networking par SDxCentral
SDN Basics – What You Need to Know about Software-Defined NetworkingSDN Basics – What You Need to Know about Software-Defined Networking
SDN Basics – What You Need to Know about Software-Defined Networking
SDxCentral12.6K vues
Introduction to OpenFlow, SDN and NFV par Kingston Smiler
Introduction to OpenFlow, SDN and NFVIntroduction to OpenFlow, SDN and NFV
Introduction to OpenFlow, SDN and NFV
Kingston Smiler35.4K vues

Similaire à Introduction to Software Defined Networking (SDN)

Introduction to SDN par
Introduction to SDNIntroduction to SDN
Introduction to SDNMuhammad Moinur Rahman
272 vues64 diapositives
Software Defined Networking: Primer par
Software Defined Networking: Primer Software Defined Networking: Primer
Software Defined Networking: Primer Bangladesh Network Operators Group
1.4K vues34 diapositives
Introduction to Software Defined Networking (SDN) presentation by Warren Finc... par
Introduction to Software Defined Networking (SDN) presentation by Warren Finc...Introduction to Software Defined Networking (SDN) presentation by Warren Finc...
Introduction to Software Defined Networking (SDN) presentation by Warren Finc...APNIC
223 vues27 diapositives
Introduction to Software Defined Networking (SDN) par
Introduction to Software Defined Networking (SDN)Introduction to Software Defined Networking (SDN)
Introduction to Software Defined Networking (SDN)Bangladesh Network Operators Group
143 vues27 diapositives
F14_Class1.pptx par
F14_Class1.pptxF14_Class1.pptx
F14_Class1.pptxSameer Ali
1 vue43 diapositives
btNOG 9 presentation Introduction to Software Defined Networking par
btNOG 9 presentation Introduction to Software Defined NetworkingbtNOG 9 presentation Introduction to Software Defined Networking
btNOG 9 presentation Introduction to Software Defined NetworkingAPNIC
187 vues23 diapositives

Similaire à Introduction to Software Defined Networking (SDN)(20)

Introduction to Software Defined Networking (SDN) presentation by Warren Finc... par APNIC
Introduction to Software Defined Networking (SDN) presentation by Warren Finc...Introduction to Software Defined Networking (SDN) presentation by Warren Finc...
Introduction to Software Defined Networking (SDN) presentation by Warren Finc...
APNIC223 vues
btNOG 9 presentation Introduction to Software Defined Networking par APNIC
btNOG 9 presentation Introduction to Software Defined NetworkingbtNOG 9 presentation Introduction to Software Defined Networking
btNOG 9 presentation Introduction to Software Defined Networking
APNIC187 vues
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014 par SAMeh Zaghloul
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014
SDN 101: Software Defined Networking Course - Sameh Zaghloul/IBM - 2014
SAMeh Zaghloul18.1K vues
SDN Security Talk - (ISC)2_3 par Wen-Pai Lu
SDN Security Talk - (ISC)2_3SDN Security Talk - (ISC)2_3
SDN Security Talk - (ISC)2_3
Wen-Pai Lu1.8K vues
Software defined networking par Google
Software defined networkingSoftware defined networking
Software defined networking
Google590 vues
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir... par Radisys Corporation
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Radisys/Wind River: The Telcom Cloud - Deployment Strategies: SDN/NFV and Vir...
Software-Defined Networking Layers presentation par Abdullah Salama
Software-Defined Networking Layers presentationSoftware-Defined Networking Layers presentation
Software-Defined Networking Layers presentation
Abdullah Salama200 vues
Introduction to OpenNetwork and SDN par HungWei Chiu
Introduction to OpenNetwork and SDNIntroduction to OpenNetwork and SDN
Introduction to OpenNetwork and SDN
HungWei Chiu549 vues
Distributed Clouds and Software Defined Networking par US-Ignite
Distributed Clouds and Software Defined NetworkingDistributed Clouds and Software Defined Networking
Distributed Clouds and Software Defined Networking
US-Ignite1K vues
OSDC 2014: Yves Fauser - OpenStack Networking (Neutron) - Overview of network... par NETWAYS
OSDC 2014: Yves Fauser - OpenStack Networking (Neutron) - Overview of network...OSDC 2014: Yves Fauser - OpenStack Networking (Neutron) - Overview of network...
OSDC 2014: Yves Fauser - OpenStack Networking (Neutron) - Overview of network...
NETWAYS1.4K vues

Plus de Bangladesh Network Operators Group

IPv6 Deployment in South Asia 2022 par
IPv6 Deployment in South Asia  2022IPv6 Deployment in South Asia  2022
IPv6 Deployment in South Asia 2022Bangladesh Network Operators Group
43 vues20 diapositives
RPKI Deployment Status in Bangladesh par
RPKI Deployment Status in BangladeshRPKI Deployment Status in Bangladesh
RPKI Deployment Status in BangladeshBangladesh Network Operators Group
45 vues21 diapositives
An Overview about open UDP Services par
An Overview about open UDP ServicesAn Overview about open UDP Services
An Overview about open UDP ServicesBangladesh Network Operators Group
217 vues15 diapositives
12 Years in DNS Security As a Defender par
12 Years in DNS Security As a Defender12 Years in DNS Security As a Defender
12 Years in DNS Security As a DefenderBangladesh Network Operators Group
111 vues21 diapositives
Contents Localization Initiatives to get better User Experience par
Contents Localization Initiatives to get better User ExperienceContents Localization Initiatives to get better User Experience
Contents Localization Initiatives to get better User ExperienceBangladesh Network Operators Group
74 vues31 diapositives
BdNOG-20220625-MT-v6.0.pptx par
BdNOG-20220625-MT-v6.0.pptxBdNOG-20220625-MT-v6.0.pptx
BdNOG-20220625-MT-v6.0.pptxBangladesh Network Operators Group
71 vues36 diapositives

Plus de Bangladesh Network Operators Group(20)

Dernier

IETF 118: Starlink Protocol Performance par
IETF 118: Starlink Protocol PerformanceIETF 118: Starlink Protocol Performance
IETF 118: Starlink Protocol PerformanceAPNIC
414 vues22 diapositives
information par
informationinformation
informationkhelgishekhar
10 vues4 diapositives
ATPMOUSE_융합2조.pptx par
ATPMOUSE_융합2조.pptxATPMOUSE_융합2조.pptx
ATPMOUSE_융합2조.pptxkts120898
35 vues70 diapositives
The Dark Web : Hidden Services par
The Dark Web : Hidden ServicesThe Dark Web : Hidden Services
The Dark Web : Hidden ServicesAnshu Singh
14 vues24 diapositives
Affiliate Marketing par
Affiliate MarketingAffiliate Marketing
Affiliate MarketingNavin Dhanuka
17 vues30 diapositives
How to think like a threat actor for Kubernetes.pptx par
How to think like a threat actor for Kubernetes.pptxHow to think like a threat actor for Kubernetes.pptx
How to think like a threat actor for Kubernetes.pptxLibbySchulze1
5 vues33 diapositives

Dernier(9)

IETF 118: Starlink Protocol Performance par APNIC
IETF 118: Starlink Protocol PerformanceIETF 118: Starlink Protocol Performance
IETF 118: Starlink Protocol Performance
APNIC414 vues
ATPMOUSE_융합2조.pptx par kts120898
ATPMOUSE_융합2조.pptxATPMOUSE_융합2조.pptx
ATPMOUSE_융합2조.pptx
kts12089835 vues
The Dark Web : Hidden Services par Anshu Singh
The Dark Web : Hidden ServicesThe Dark Web : Hidden Services
The Dark Web : Hidden Services
Anshu Singh14 vues
How to think like a threat actor for Kubernetes.pptx par LibbySchulze1
How to think like a threat actor for Kubernetes.pptxHow to think like a threat actor for Kubernetes.pptx
How to think like a threat actor for Kubernetes.pptx
LibbySchulze15 vues
Marketing and Community Building in Web3 par Federico Ast
Marketing and Community Building in Web3Marketing and Community Building in Web3
Marketing and Community Building in Web3
Federico Ast14 vues
Building trust in our information ecosystem: who do we trust in an emergency par Tina Purnat
Building trust in our information ecosystem: who do we trust in an emergencyBuilding trust in our information ecosystem: who do we trust in an emergency
Building trust in our information ecosystem: who do we trust in an emergency
Tina Purnat110 vues

Introduction to Software Defined Networking (SDN)

  • 1. Introduction to SDN Muhammahmad Moinur Rahman moin@1asia-ahl.com
  • 2. History of Networking • Blackbox networking equipments • Big name companies building switching/routing devices • Includes Proprietary/OEM Silicon Chip • Wrapped up with a closed source Operating System (e.g. A desktop PC with MS Windows and MS Office)
  • 3. Disadvantages of Current Scenario Technology was not designed keeping today in mind • Massive Scalability • Multi Tenant Networks • Virtualization • Cloud Computing • Mobility (Users/Devices/VM)
  • 4. Disadvantages of Current Scenario(Contd) Protocols are Box Centric; Not Fabric Centric • Difficult to configure correctly(consistency) • Difficult to add new features(upgrades) • Difficult 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: Software Defined Networking
  • 6. What is SDN? SDN is a framework to allow network administrators to automatically and dynamically manage and control a large number of network devices, services, topology, traffic paths, and packet handling (quality of service) policies using high-level languages and APIs. Management includes provisioning, operating, monitoring, optimizing, and managing FCAPS (fault, configuration, accounting, performance, and security) in a multi-tenant environment.
  • 7. Networking Planes • Data Plane • Carries Network User Traffic • Control Panel • Carried Signalling Traffic • Management Panel • Carries Administrative Traffic
  • 9. Need for SDN - Virtualization Use network resource • without worrying about where it is physically located • how much it is • how it is organized
  • 10. Need for SDN - Orchestration 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 fly
  • 12. Need for SDN - Dynamic Scaling Should be able to change size, quantity, capacity
  • 13. Need for SDN - Automation • To lower OpEx • Minimize manual involvement • Troubleshooting • Reduce downtime • Policy enforcement • Provisioning/Re-provisioning/Segmentation of resources • Add new workloads, sites, devices, and resources
  • 14. Need for SDN - Visibility Monitor resources, connectivity
  • 15. Need for SDN - Performance Optimize network device utilization • Traffic engineering/Bandwidth management • Capacity optimization • Load balancing • High utilization • Fast failure handling
  • 16. Need for SDN - Multi Tenancy Tenants need complete control over their • Addresses • Topology • Routing • Security
  • 17. Need for SDN - Service Integration Provisioned on demand and placed appropriately on the traffic path • Load balancers • Firewalls • Intrusion Detection Systems (IDS)
  • 18. Alternative APIs • Southbound APIs: XMPP (Juniper), OnePK (Cisco) • Northbound APIs: I2RS, I2AEX, ALTO • Overlay: VxLAN, TRILL, LISP, STT, NVO3, PWE3, L2VPN, L3VPN • Configuration 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 Switching Fabric Processor ASIC AISC data plane control plane Network O.S. ASIC ApplicationsApplications
  • 21. Internals of SDN • Southbound API: decouples the switch hardware from control function – Data plane from control plane • Switch Operating System: exposes switch hardware primitives Network O.S. ApplicationsApplications Applications Southbound API SDN Switch Operating System Switch Hardware Network O.S. ASIC ApplicationsApplications Current Switch Vertical stack SDN Switch Decoupled stack
  • 22. How SDN Works Controller (N. O.S.) ApplicationsApplicationsApplications Southbound API Switch H.W Switch O.S Switch H.W Switch O.S
  • 23. Implications of SDN Controller (N. O.S.) ApplicationsApplicationsApplications Southbound API Switch O.S Switch HW Switch O.S Switch HW Switch O.S Switch HW Global View Programmatic Control Current Networking SDN Enabled Environment Network O.S. ASIC ApplicationsApplications Network O.S. ASIC ApplicationsApplications Network O.S. ASIC ApplicationsApplications
  • 24. Implications of SDN(Cont) Current Networking SDN Enabled Environment Controller (N. O.S.) ApplicationsApplicationsApplications 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 optimal solution • Network configured indirectly • Configure protocols • Hope protocols converge • Global view of the network • Applications can achieve optimal • Southbound API gives fine grained control over switch • Network configured directly • Allows automation • Allows definition of new interfaces Network O.S. ASIC ApplicationsApplications Network O.S. ASIC ApplicationsApplications Network O.S. ASIC ApplicationsApplications
  • 25. Dimensions of SDN Environments: Vendor Devices Vertical Stacks • Vendor bundles switch and switch OS • Restricted to vendor OS and vendor interface • Low operational overhead • One stop shop Whitebox Networking • Vendor provides hardware with no switch OS • Switch OS provided by third party • Flexibility in picking OS • High operational overhead • Must deal with multiple vendors
  • 26. Dimensions of SDN Environments: Switch Hardware Virtual: Overlay • Pure software implementation • Assumes programmable virtual switches • Run in Hypervisor or in the OS • Larger Flow Table entries (more memory and CPU) • Backward compatible • Physical switches run traditional protocols • Traffic 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
  • 27. Dimensions of SDN Environments: Southbound Interface OpenFlow • Flexible matching • L2, L3, VLAN, MPLS • Flexible actions • Encapsulation: IP-in-IP • Address rewriting: • IP address • Mac address BGP/XMPP/IS-IS/NetConf • Limited matching • IS-IS: L3 • BGP+MPLS: L3+MPLS • Limited actions • L3/l2 forwarding • Encapsulation
  • 28. Dimensions of SDN Environments: Controller Types Modular Controllers • Application code manipulates forwarding rules • E.g. OpenDaylight, Floodlight • Written in imperative languages • Java, C++, Python • Dominant controller style High Level Controllers • Application code specifies declarative policies • E.g. Frenetic, McNettle • Application code is verifiable • Amendable to formal verification • Written in functional languages • Nettle, OCamal
  • 29. • Controller Type • Modular: Floodlight • Southbound API: OpenFlow • OpenFlow 1.3 • SDN Device: Whitebox • (indigo) • SDN Flavor • Underlay+Overlay Ecosystem : BigSwitch
  • 30. • Controller Type • Modular: OpenContrail • Southbound API: XMPP/NetConf • BGP+MPLS • SDN Device: Vertical Stack • Propriety Junos • SDN Flavor • Overlay Ecosystem : Juniper
  • 31. SDN EcoSystem Arista OF + proprietary Underlay Vertical Stack Broadcom OF + proprietary Underlay Vertical Stack HP OF Underlay Vertical Stack Cisco OF + proprietary Underlay+Overlay Vertical Stack FloodLight OF Underlay+Overlay Whitebox Dell OF Underlay Vertical Stack HP OF Underlay Vertical Stack Alcatel BGP Overlay Vertical Stack Juniper BGP+NetConf Overlay Vertical Stack
  • 32. OpenFlow • Developed in Stanford • Standardized by Open Networking Foundation (ONF) • Current Version 1.4 • Version implemented by switch vendors: 1.3 • Allows control of underlay + overlay • Overlay switches: OpenVSwitch/Indigo-light PC
  • 33. SDN vs OpenFlow • Leading SDN protocol • Decouples control and data plane by giving a controller the ability to install flow rules on switches(Bare Metal) • Hardware or software switches can use OpenFlow • Spec driven by ONF
  • 34. How SDN Works: OpenFlow Controller (N. O.S.) ApplicationsApplicationsApplications Southbound API Switch H.W Switch O.S Switch H.W Switch O.S OpenFlow OpenFlow
  • 35. 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 Match Action Counter 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 Priority Time-out What order to process the rule # of Packet/Bytes processed by the rule
  • 36. Examples Switching * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action * 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 Action 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 Action * * * * * * * * 22 drop 37
  • 37. Examples Routing * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action * * * * * 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 Action * * vlan1 * * * * * port6, port7, port9 00:1f.. 38
  • 38. Data Path (Hardware) Control Path OpenFlow OpenFlow Controller OpenFlow Protocol (SSL/TCP) 39 OpenFlow: How it works
  • 39. Controller PC Hardware Layer Software Layer Flow Table MAC src MAC dst IP Src IP Dst TCP sport TCP dport Action 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
  • 40. 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
  • 41. 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 virtualization. • IRIS: (Java) a Resursive SDN Openflow Controller created by IRIS Research Team of ETRI. • MUL: (C) MūL, is an openflow (SDN) controller. • NOX: (C++/Python) NOX was the first OpenFlow controller. • 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 operation. • 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 "operating system" for orchestrating network control applications. • NDDI - OESS: OESS is an application to configure and control OpenFlow Enabled switches through a very simple and user friendly User Interface. • Ryu: (Python) Ryu is an open-sourced Network Operating System (NOS) that supports OpenFlow. • NodeFlow (JavaScript) NodeFlow is an OpenFlow controller written in pure JavaScript for Node.JS. • ovs-controller (C) Trivial reference controller packaged with Open vSwitch.
  • 43. Objectives • Basics of running Mininet in a virtual machine. • Mininet facilitates creating and manipulating Software Defined Networking components. • Explore OpenFlow, which is an open interface for controlling the network elements through their forwarding tables. A network element may be converted into a switch, router or even an access points via low-level primitives defined in OpenFlow. • Experience with the platforms and debugging tools most useful for developing network control applications on OpenFlow. • Run the Ryu controller with a sample application • Use various commands to gain experience with OpenFlow control of OpenvSwitch
  • 44. Topology • Three hosts named h1, h2 and h3 respectively. Each host has an Ethernet interface called h1-eth0, h2-eth0 and h3-eth0 respectively. • 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 identified as c0 and connected through port 6633.
  • 45. 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
  • 46. RYU Openflow 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 implementation in linux. We want to ensure that this is not running before we start our own controller.
  • 47. RYU Openflow 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:~#
  • 48. RYU Openflow 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
  • 49. 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>
  • 50. 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
  • 51. MiniNet Environment(Cont) Dump flows 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>
  • 52. 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>
  • 53. 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
  • 54. Mininet Environment Dump flows again to view differences 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
  • 55. Mininet Environment Running a high bandwidth flow 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>
  • 56. Mininet Environment Dump flows to see the flows 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
  • 57. Refereces 1. Mininet/Openflow Tutorials – Dean Pemberton 2. SDN – The Next Wave of Networking – Siva Valiappan