Software Defined Networks
Presented by: Dr. Ritesh Patel
CE Dept., CSPIT, CHARUSAT
riteshpatel.ce@charusat.ac.in
1
VARIOUS CONTROL AND DATA PLANE
Control Plane
Sending data without controller
Ryu Controller
POX Controller
NOX Controller
Floodlight Controller
OpenDaylight Controller
Data Plane
Openflow Switch
OVS Switch
BVM2 Switch
2
SIMULATION :
Writing Topology Program
Using inbuilt commands i.e. mn
Create Custom Topology Using Python
Create Topology using GUI
3
OUTLINE OF PRESENTATION
Traditional Network
Problems associated with traditional network
Software Defined Network-SDN
Introduction
Working of SDN
Architecture & protocol stack
Controllers & Simulators
Research Area and Applications
5
FAT TREE TOPOLOGY
6
TRADITIONAL NETWORK
Router B
PCis
Routing table
generated by
Routing Table exchanging
Match Action Routing
information
Router C
Routing Table
Match Action
Routing Table Router A
Match Action
Packet
OpenFlowSwitch.org 7
TRADITIONAL NETWORK (CONTINUE…)
Router Perform Two Operations
Generating Routing table
Using Routing table, forwards packets
Intelligence for
Generating
Routing Table
Efficient
Searching
8
TRADITIONAL NETWORK NODE
Router
Router can be partitioned into three planes
1. Management plane configuration
2. Control plane make decision for the route
3. Data plane data forwarding
Adjacent Router Router Adjacent Router
Management/Policy plane
Configuration / CLI / GUI
Routing
Control plane Control plane Static routes Control plane
OSPF OSPF OSPF
Neighbor Link state IP routing
table database table
Switching
Data plane Data plane Data plane
Forwarding table
INSIDE ROUTER
Topology DB
Config DB
Control
RIB Plane
Routing and
Signaling
Policy DB
Routing Table
P1 Forwarding
P2 P3 Plane
Pn
10
Network Device
Management Plane
Control Plane
Data Plane
Network
Network Device
Device
(Router/Switc
h)
Basic Terminology
Management/Policy Plane
To configure control plane
Monitor the device its operation, interface, counter etc.
CLI/SNMP/NetConf
Control Plane
Runs in switch/router CPU
Processing speeds of thousands of packets/sec
Processes such as Routing Protocols
Data Plane
Dedicated h/w ASICs
Processing speeds of millions or billions of packets/sec
Data plane functionality such as L2/L3 forwarding , QoS, ACLs etc.
Today's Network Devices
Management Management
Plane Plane
Control Plane Control Plane
Data Plane Data Plane
Network Device Network Device
Current Network Challenges
Vendor Dependent
Higher Operation Cost
Distributed Control Plane
Vendor Dependence
Add New Feature
Vendor
Cisco , Juniper
etc
Customer (Service
Provider)
AirTel, Idea etc.
Vendor Dependence
~4
Add New Feature Add Days
Feature Software
engineer
Vendor Project
Cisco , Juniper Manager 1
year
etc
Hardware
engineer
Customer (Service
Provider)
AirTel, Idea etc.
Vendor Dependence
Network Operators and Owners depend on Vendors to introduce
new features
Vendors software release cycles ~ months
Vendors hardware custom ASIC ~ Years
Interoperability requiers Open Standard ~ Years
Operation Cost
Capex and Opex Costs
30% capex & 70% opex
Many Networking experts are required to manage the
complexity of their own products
IT teams globally under tremendous pressure to
decrease opex costs
PROBLEMS ASSOCIATED WITH TRAD. NW.
Slow convergence
19
TRADITIONAL NETWORK
Router B
PC
It takes some
Routing Table time to
Match Action generate
accurate
routing table
Router C
Routing Table
Match Action
Routing Table Router A
Match Action
Packet
OpenFlowSwitch.org 20
PROBLEMS ASSOCIATED WITH TRAD. NW.
Slow convergence
Distributed computing
Multiple location intelligence computing
21
TRADITIONAL NETWORK
Router B
PC
Routing Table
Match Action
Router C
Routing Table
Match Action
Routing Table Router A
Match Action
Packet
OpenFlowSwitch.org 22
PROBLEMS ASSOCIATED WITH TRAD. NW.
Slow convergence
Routing table updates take some time
Distributed computing
Multiple time & location computing
Proactive
Resources has to allocate and are computing same
thing all the time
Even data are not sent and received
No flexibility of programming to user
23
REQUIREMENT OF GOOGLE [1]
Unified view of the network fabric
High utilization
Faster failure handling
Faster time to market/deployment
Elastic compute
Easy to Manage
Simple to configure each interface
Simple to configure network wide function
Much Flexible
More susceptible to future innovations
24
HISTORY OF PROGRAMMABLE NETWORKS
25
SDN Defination-1 (ONF)
“The physical separation of the network control plane from the
forwarding plane, and where a control plane controls several
devices”
SDN M.P
Controller C.P
M.P M.P
C.P C.P
D.P D.P D.P D.P
Device A Device B Device A Device B
SDN Defination-2 (White Box Vendors)
“Open networking where we segregate the SW from HW and ability
for consumers to pick and choose which SW they need
independent of HW”
M.P (SW) M.P (SW) M.P (SW)
C.P (SW) C.P (SW) C.P (SW)
D.P (HW) D.P (HW) D.P (HW)
Device A Device A Device A
SW from Vendor A SW from Vendor B M.P SW from Vendor
HW from Vendor A HW from Vendor A D
C.P SW from Vendor
C
HW from Vendor A
NETWORK IS CHANGING [2]
Feature Feature
Feature Feature
Feature Feature
Feature Feature
Feature Feature
28
SDN CONCEPT
SDN separates Control and Data plane functions
Control & Management Plane
SDN Controller
(S/W)
OpenFlow
Data Plane
Router/Switch
SDN Switch (H/W)
(source “Understanding L3 Switch”, Netmanias Talk, 2011/11/09)
SDN CONCEPT
SDN Concept
Separates control plane and data plane entities
Network intelligence and state are logically centralized
The underlying network infrastructure is abstracted from the applications
Execute or run control plane software on general purpose hardware
De-couple from specific networking hardware
Use commodity computers
Have programmable data planes
Maintain, control and program data plane state from a central entity
An architecture to control not only a networking device but an entire network
Similar to existing Network Management System (NMS), but more powerful
Control Software (SW)
Control SW operates on view of network
Control SW is not a distributed system
Abstraction hides details of distributed states
EXAMPLE [2]
31
SDN: PLANES OF SDN [2]
Control Plane: establishing the state in routers
Determines how and where packets are forwarded
Routing, traffic engineering, firewall state, …
Slow time-scales (per control event)
Data Plane: processing and delivery of packets
Based on state in routers and endpoints
E.g., IP, TCP, Ethernet, etc.
Fast timescales (per-packet)
32
HOW DOES IT WORK?
Controller
Path to dest
PC
OpenFlow
Rule Switch
Action Statistics
OpenFlow
Protocol
OpenFlow OpenFlow
Rule Action Statistics Rule Action Statistics
Switch Switch
OpenFlowSwitch.org 33
DIFFERENCE
34
THE ACTUAL FLOW TABLE LOOKS LIKE
35
FLOW TABLE: BASIC ACTIONS
All: To all interfaces except incoming interface.
Controller: Encapsulate and send to controller.
Local: send to its local networking stack.
Table: Perform actions in the next flow table (table
chaining or multiple table instructions).
In_port: Send back to input port.
Normal: Forward using traditional Ethernet.
Flood: Send along minimum spanning tree except the
incoming interface.
36
INSTALLATION OF MININET (UBUNTU 14 ONLY)
Open a new terminal:
Ctrl + Alt + t
Install git:
sudo apt-get install git
Go to Desktop via terminal
cd Desktop
Clone Mininet from github
git clone git://github.com/mininet/Mininet
Go to the ‘mininet’ directory created during cloning
and install Mininet
cd mininet
./util/install.sh -a
37
TESTING OF MININET
Verify whether Mininet is installed successfully
sudo mn --test pingall
Using Mininet
sudo mn
mininet >
To display nodes: nodes
To display network: net
To dump information about all nodes: dump
To display links: links
To know all the command: help
38
TESTING OF MININET
Draw the topology
Ping from one host to other host
h1 ping h2
To ping all hosts from every host
Pingall
In case of any problem
Type #sudo mn clean
39
COMMANDS
Pingall
Pingallfull
Ports
40
LINK
links
Link up and down
links1 h1 down
h1 ping h2 //Ping from h1 to h2
h2 ping h1 //Ping from h2 to h1
link s1 h1 up
h1 ping h2 //Ping from h1 to h2
h2 ping h1 //Ping from h2 to h1
41
1. TOPOLOGY IN MININET
Creating a simple topology using CLI and
Python
#sudo mn --topo linear,4
creates
a topology of 4 nodes, each connected with a
separate switch
#sudo mn --topo single,4
creates a topology 4 nodes, each connected with a single
switch
#sudo mn --link tc,bw=10,delay=10ms
setbandwidth to 10Mbps and delay to 10ms for all the
links in network
42
VERIFY DELAY AND BANDWIDTH
#sudo mn --link tc,bw=10,delay=10ms
set bandwidth to 10Mbps and delay to 10ms for all the links
in network
To verify delay
To verify bandwidth
Type following command at mininet terminal (>)
Xterm h1
Xterm h2
On X-terminal of h1 type following command
iperf –s &
On X-terminal of h2 type following command
iperf –c h1
43
2. CREATING CUSTOM TOPOLOGY
#cd Desktop/Mininet
#ls custom
You will get file named topo-2sw-2host.py
Open file
#gedit custom/topo-2sw-2host.py
44
45
46