View
160
Download
0
Category
Preview:
DESCRIPTION
2012년 10월 16일 진행된 제1차 SDN Interest Group Seminar의 발표 자료 입니다.
Citation preview
ktds openflow controller October 17, 2012 Version 1.0
Contact : Seung Jae Lee, Assistant Manager, sDSP Team ktds, sjlee7373@kt.com Mi Ju Lee, Assistant Manager, sDSP Team ktds, ruby@kt.com
ktds
Controller
1. About Controller
5. Demonstration
4. Scenario
2. NOX tutorial
3. ktds controller
목차
Open Flow Projects
Name Language Platform(s) License Original Author
OpenFlow C Linux OpenFlow License
Stanford/Nicira
NOX Python, C++ Linux GPL Nicira
POX Python Any GPL
Floodlight Java Any Apache-licensed BigSwitch, based on Beacon
Beacon Java Win, Mac,
Linux, Android
GPL (core) David Erickson (Stanford)
RouteFlow C++, Python Linux Apache CPqD (Brazil)
Maestro Java Win, Mac,
Linux LGPL Zheng Cai (Rice)
Trema Ruby, C Linux GPL NEC
MORE…
• NOX Classic NOX was programmable in C++ and Python
• NOX [NEW fork] C++ Only
Remove Python from NOX: “New”NOX
• POX Python only
Build a new platform in pure Python
Target Linux, Mac OS, and Windows
Good for research
NOX & POX CONTROLLER
About NOX & POX
4
• NOX was the first SDN controller
• Linux
• C++ and Python
• Component system
• Event-based programming model
• OpenFlow interface
• Packet construction/dissection libraries
• Applications:
Forwarding (reactive), topology discovery, host tracking,…
NOX
• A Java-based OpenFlow Controller(forked from Beacon)
• Apache Licensed
• REST API
• Pure java(no OSGI know how required)
• Dead simple to build and run
• Tested and hardened in real environmets
Physical OpenFlow switches and real networks
Code included in commercial product from Big Switch Networks
Floodlight
About NOX & Floodlight
5
Setup
1. Download VirtualBox
https://www.virtualbox.org/wiki/Downloads
2. $ unzip OpenFlowTutorial-101311.zip
3. http://www.openflow.org/wk/index.php/OpenFlow_Tutorial
NOX Tutorial
6
Developing a Network Topology
Customizing by MININET
Developing a custom controller
Run NOX controller
./nox_core –v –I ptcp: pyswitch
Example Controllers
Basic NOX Controller
~/noxcore/src/nox/coreapps/examples/pyswitch.py
https://github.com/noxrepo/nox-classic/blob/destiny/src/nox/coreapps/examples/pyswitch.py
8
OS, Kernel ARCHITECTURE LANGUAGE PART LAYER
NOX GUI
NOX CONTROLLER APPLICATION
NOX I/F
NOX CONTROLLER COMPONENT
OPEN FLOW PROTOCOL (SERVER)
OPEN FLOW VISOR
OPEN FLOW PROTOCOL
MININET
USER I/F
ENVI
LINUX
UBUNTU 11.10
JAVA 1.6
PERL
PYTHON 4.7
LINUX
UBUNTU 11.10
PERL
PYTHON 4.7
Open Flow Over TCP/IP
Open Flow Over TCP/IP
PROTOCOL
CONTROL
DATA PLAN
CONTROL
GUI JAVA, Python
C, C++, Python
JAVA
C ,PERL
C ,PERL
C++ Python
Python
C, C++, Python
ON Controller
Nox 0.9.1
Switch, Router
KTDS Architecture
9
1. Displays and Refresh Network status
2. Display NOX Console log
3. Show Switch status (Flow , table, Aggregate statistics)
4. FlowManager
A. Add/Del/Change Flow Table
B. Get Switch info
C. Get Flow table list
D. Profile list
5. Flow Trace
6. OpenFlow Switch Specification Version 1.0.0
ktds Open Flow Controller Support
10
1. Test 환경구성 (MININET) 3 hosts – 4 switch topology
2. Ping test
A. H1 ping H7
B. H2 ping H7
3. Packet 경로 및 Flow table 확인
4. Change H2 <-> H7 path by Flow modification
5. ADD Flow table on Switch 3 (change outport! Which IP is H2)
6. Check H2 ping H7 ping status!
7. Add flow table on switch 5, and switch 6
8. Now ping works!
We will change Data path by Flow modification
Test Scenario
11
H1 : 10.0.0.1
S4
S5
S6
1
2
4
3
S3
1 2
2
2 1
1
Open Flow Protocol
controller Openflow GUI
NOX
Controller
OpenFlow
Vitual
Network
OpenFlow
NOX GUI
OpenFlow
3 hosts – 4 switch topology
H2 : 10.0.0.2
H7 : 10.0.0.7
3
12
H1 : 10.0.0.1
S5
S4
S6
1
2
3
4
S3
1 2
2
2 1
1
Open Flow Protocol
controller Openflow GUI
NOX
Controller
OpenFlow
Vitual
Network
OpenFlow
NOX GUI
OpenFlow
H1 ping H7
H2 : 10.0.0.2
H7 : 10.0.0.7
3
13
H1 : 10.0.0.1
S5
S4
S6
1
2
3
4
S3
1 2
2
2 1
1
3
Open Flow Protocol
controller Openflow GUI
NOX
Controller
OpenFlow
Vitual
Network
OpenFlow
NOX GUI
OpenFlow
H2 ping H7
H2 : 10.0.0.2
H7 : 10.0.0.7
14
H1 : 10.0.0.1
S5
S4
S6
1
2
3
4
S3
1 2
2
2 1
1
Open Flow Protocol
controller Openflow GUI
NOX
Controller
OpenFlow
Vitual
Network
OpenFlow
NOX GUI
OpenFlow
Add Flow on Switch 3
H2 : 10.0.0.2
H7 : 10.0.0.7
ADD
FLOW
( IP : 10.0.0.2 inport: 2 outport 4 ->3)
3
15
H1 : 10.0.0.1
S5
S4
S6
1
2
3
4
S3
1 2
2
2 1
1
Open Flow Protocol
controller Openflow GUI
NOX
Controller
OpenFlow
Vitual
Network
OpenFlow
NOX GUI
OpenFlow
H2 PING H7
H2 : 10.0.0.2
H7 : 10.0.0.7
ADD
FLOW
ADD
FLOW ADD
FLOW 3
16
H1 : 10.0.0.1
S5
S4
S6
1
2
3
4
S3
1 2
2
2 1
1
3
Open Flow Protocol
controller Openflow GUI
NOX
Controller
OpenFlow
Vitual
Network
OpenFlow
NOX GUI
OpenFlow
H2 PING H7
H2 : 10.0.0.2
H7 : 10.0.0.7
ADD
FLOW
ADD
FLOW ADD
FLOW
17
Demonstration
www. ktds.co.kr
Recommended