SDN 테스트베드 구축
라즈베리파이를 이용하여 이더넷 스위치를 제작,
ON.Lab의 ONOS/OVX SDN 컨트롤러로 제어
Programmable Network 구축
한국정보과학회 단기강좌
경희대학교 이성원 교수
Email : drsungwon@khu.ac.kr
Web : http://mobilelab.khu.ac.kr
경희대학교 컴퓨터공학과 모바일컨버전스Lab 한상윤
Email : sangyun0628@khu.ac.kr
Mobile Convergence Laboratory 2
목차
A Table of Contents
ONOS
ONOS(Open Network Operating System) 소개, 아키텍처 분석, 설치 및 데모
Keyword : Distributed core, Hazelcast, Intent Framework, maven, karaf
OpenVirteX
OVX 소개, Network Hypervisor와 가상화 플랫폼의 기능, 설치 및 데모
Keyword : Hypervisor, 네트워크 가상화 플랫폼, Resilient, elastic
Pi Stack Switch
Raspberry Pi와 Open vSwitch를 이용한 SDN 테스트베드 구축
Keyword : Raspberry Pi, Open vSwitch, OpenFlow 스위치
Q&A
질의응답
Pi Stack Switch
ONOS
SDN Network Operating System & SDN Control Platform
Mobile Convergence Laboratory 3
Mobile Convergence Laboratory 4
• Service Provider를 위한 캐리어급 SDN 네트워크 운영체제
• 이 주도한 프로젝트
Mobile Convergence Laboratory 5
• Service Provider를 위한 캐리어급 SDN 네트워크 운영체제
• 이 주도한 프로젝트
Mobile Convergence Laboratory 6
Mobile Convergence Laboratory 7
Non-profit
Tools/Platforms for SDN community
Mobile Convergence Laboratory 8
Mobile Convergence Laboratory 9
Mobile Convergence Laboratory 10
Mobile Convergence Laboratory 11
Mobile Convergence Laboratory 12
Supporting members
Mobile Convergence Laboratory 13
Projects
• Service Provider를 위한 캐리어급 SDN 네트워크 운영체제
• 이 주도한 프로젝트
Mobile Convergence Laboratory 14
15Mobile Convergence Laboratory
ONOS의 목표는
뭘까?
기존의 수많은
SDN controller
Mobile Convergence Laboratory 16
Mobile Convergence Laboratory 17
commercial
products
Mobile Convergence Laboratory 18
commercial
products
Mobile Convergence Laboratory 19
commercial
products
Mobile Convergence Laboratory 20
High Availability
• Multiple Instance Clustering
• Fault tolerance using Distributed Core
• Five Nines 수준의 가용성
Mobile Convergence Laboratory 21
High Availability High Performance
• High Throughput
• ~500K-1M path setups/second
• High Volume
• ~500GB-1TB state data
• Low Latency
• 10~100ms
Mobile Convergence Laboratory 22
High Availability High Performance Scalability
• OSGi 기반의 오픈소스 Karaf
 쉽고 빠른 배포
• 분산 클러스터링 지원
 Sync, Share
Mobile Convergence Laboratory 23
High Availability High Performance Scalability White Box (Open)
Reference : ONOS wiki
Mobile Convergence Laboratory 24
High Availability High Performance Scalability White Box (Open)
Mobile Convergence Laboratory 25
ONOS Framework(ONOSFW)
Mobile Convergence Laboratory 26
ONOS as an SDN
controller within the
VIM
Mobile Convergence Laboratory 27
ONOS Architecture
Mobile Convergence Laboratory 28
Mobile Convergence Laboratory 29
구체적인 서비스를
위한 Application 계층
Mobile Convergence Laboratory 30
Application 계층에
네트워크 정보 전달,
하위 컴포넌트 제어를
위한 인터페이스 제공
Mobile Convergence Laboratory 31
ONOS의 핵심적인 역할
을 하며,
HA와 Scalability를 위한
분산 클러스터링 기능
Mobile Convergence Laboratory 32
네트워크 인프라 제어를
위한 인터페이스 제공
Network Element 추상화
Mobile Convergence Laboratory 33
Network Element 설정
을 위한 프로토콜
OpenFlow : SDN
NetConf : Legacy
Mobile Convergence Laboratory 34
Distributed
Core
Instance 1
Scale-out by Distributed Core (1)
Network Graph
Global network view
Mobile Convergence Laboratory 35
Distributed
Core
Instance 1 Instance 2 Instance 3
Scale-out by Distributed Core (2)
Network Graph
Global network view
Mobile Convergence Laboratory 36
Distributed
Core
Instance 1 Instance 2 Instance 3
Network Graph
Global network view
HA by Distributed Core (1)
Mobile Convergence Laboratory 37
Distributed
Core
Instance 1 Instance 2 Instance 3
Network Graph
Global network view
HA by Distributed Core (2)
Mobile Convergence Laboratory 38
Distributed
Core
Instance 1 Instance 2 Instance 3
Network Graph
Global network view
HA by Distributed Core (3)
Mobile Convergence Laboratory 39
Clustering Synchronize Data
Sharing
ONOS - Install
1. Getting ONOS
2. Installing ONOS
3. Start ONOS
Mobile Convergence Laboratory 40
Prerequisites
• Ubuntu 14.04 LTS 64bits
• 2GB or more RAM
• 2 or more processors
• 8GB or more storage
• Java 8 JDK
• Apache Maven(3.0 and later)
• Apache Karaf(3.0.2 and later)
• Git
Mobile Convergence Laboratory 41
1. Install Java 8
$ sudo apt-get install software-properties-common -y
$ sudo add-apt-repository ppa:webupd8team/java -y
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer oracle-java8-set-default
Mobile Convergence Laboratory 42
1.1. Configure Java Path
• on Ubuntu
$ env | grep JAVA_HOME
JAVA_HOME=/usr/lib/jvm/java-8-oracle
$ export JAVA_HOME=/usr/lib/jvm/java-8-oracle
Mobile Convergence Laboratory 43
2. Install Git
$ sudo apt-get install git-core
$ git --version
Mobile Convergence Laboratory 44
3. Set Maven
$ cd; mkdir Downloads Applications
$ cd Downloads
$ wget http://archive.apache.org/dist/maven/maven-
3/3.3.1/binaries/apache-maven-3.3.1-bin.tar.gz
$ tar -zxvf apache-maven-3.3.1-bin.tar.gz -C ../Applications/
Mobile Convergence Laboratory 45
4. Set Karaf
$ cd Downloads
$ wget http://download.nextag.com/apache/karaf/3.0.3/apache-
karaf-3.0.3.tar.gz
$ tar -zxvf apache-karaf-3.0.3.tar.gz -C ../Applications/
Mobile Convergence Laboratory 46
5. Clone ONOS
$ git clone https://gerrit.onosproject.org/onos/
$ cd onos
if> getting specific ONOS version
$ git checkout <ver>
Mobile Convergence Laboratory 47
5.1. Configure ONOS Path
$ export ONOS_ROOT=~/onos
$ source $ONOS_ROOT/tools/dev/bash_profile
Mobile Convergence Laboratory 48
6. Build ONOS
$ cd ~/onos
$ mvn clean install
Mobile Convergence Laboratory 49
빌드 성공
7. Start ONOS CLI
$ karaf clean
Mobile Convergence Laboratory 50
8. Start ONOS GUI
• start ONOS (ONOS CLI)
• In web browser
• http://localhost:8181/onos/ui/index.html
Mobile Convergence Laboratory 51
Mobile Convergence Laboratory 52
<Network Graph>
토폴로지 GUI와 Host 정보
<Node Info>
해당 노드(스위치)의 정보
Protocol / Ports / Flow
버전 및 지리적 정보
<ONOS Summary>
Network Element의 수
링크의 수
호스트의 수
Flow의 수…
Mobile Convergence Laboratory 53
<ONOS Instance>
OpenVirteX
Network Virtualization Platform & Network Hypervisor
Mobile Convergence Laboratory 54
OpenVirteX (OVX)
• Network Virtualization Platform
• Network Hypervisor
Mobile Convergence Laboratory 55
Mobile Convergence Laboratory 56
주요 기능
• Topology Virtualization
• Address Space Virtualization
• Control Function Virtualization
Mobile Convergence Laboratory 57
주요 기능 - Topology Virtualization
• 가상화를 통해 물리적 네트워크를 분리
• 물리 계층을 추상화
• 다수의 스위치를 묶어서 하나의 스위치로 가상화(Big Switch)
Mobile Convergence Laboratory 58
주요 기능 - Address Space Virtualization
Mobile Convergence Laboratory 59
주요 기능 - Control Function Virtualization
Mobile Convergence Laboratory 60
SDN Controller
(NOS)
Big Switch
Controll Plane
(by OpenFlow Channel)
OVX
OpenVirteX - Install
Mobile Convergence Laboratory 61
Prerequisites
Recommended
• 4 Cores
• 4GB Java heap size
Minimum
• 2 Cores
• 1GB Java heap size
Mobile Convergence Laboratory 62
• Git
• Oracle Java7 (Not OpenJDK, Not Java8)
• Maven
• Python 2.7.x
1. Install Git & Maven
$ apt-get install git-core
$ apt-get install maven
Mobile Convergence Laboratory 63
2. Install Java7
$ sudo apt-get install software-properties-common -y
$ sudo add-apt-repository ppa:webupd8team/java -y
$ sudo apt-get update
$ sudo apt-get install oracle-java7-installer
Mobile Convergence Laboratory 64
3. Clone OpenVirteX
$ git clone https://github.com/OPENNETWORKINGLAB/OpenVirteX.git -b 0.0-MAINT
$ cd ~/OpenVirteX/scripts.
Mobile Convergence Laboratory 65
4. Start OVX
$ sh ovx.sh
ex> 가상 네트워크 생성 및 Big Switch 생성
$ python ovxctl.py -n createNetwork tcp:localhost:30000 10.0.0.0 16
$ python ovxctl.py -n createSwitch DPID_1,DPID_2,DPID_3,DPID_4
<Tutorial & API Doc>
http://ovx.onlab.us/getting-started/tutorial/
http://ovx.onlab.us/documentation/api/
Mobile Convergence Laboratory 66
Pi Stack Switch
Raspberry Pi를 이용한 SDN 테스트베드 개발
Mobile Convergence Laboratory 67
Raspberry Pi
• 영국의 라즈베리파이 재단이 만든 교육용 싱글 보드 컴퓨터
• Single Board Computer
• 대략 US$ 35
• Pi A/B, Pi B+, Pi2 출시
Mobile Convergence Laboratory 68
Raspberry Pi2의 스펙
• Single Board Computer(Micro Computer)
• CPU : 900MHz ARM Cortex-A7 쿼드코어
• RAM : 1GB
• USB 2.0 * 4 + HDMI * 1 + Micro USB전원
• 10/100 Mbit/s Ethernet
Mobile Convergence Laboratory 69출처 : Wikipedia(wikipedia.org/wiki/Raspberry_Pi)
Pi Stack Switch HW구성
Mobile Convergence Laboratory 70
Mobile Convergence Laboratory 71
Pi Stack Switch HW구성
메인 스위치 x 1개 x 1포트
+
서브 스위치 x 3개 x 3포트
= 10포트 스위치
Mobile Convergence Laboratory 72
Pi Stack Switch 완성
Mobile Convergence Laboratory 73
USB허브를 이용한 17포트 스위치
Mobile Convergence Laboratory 74
Raspbian OS
Software
Mobile Convergence Laboratory 75
Software
Mobile Convergence Laboratory 76
System
Architecture
USBtoEthernet
Bridge
eth1 eth2 eth3
eth0
Ethernet
Port
USBtoEthernet
USBtoEthernet
FlowTable
Pi Stack Switch - Install
• OpenvSwitch 설치
$ sudo apt-get install openvswitch-switch openvswitch-
controller openvswitch-common
$ sudo ovs-vsctl add-br <BridgeName>
$ sudo ovs-vsctl add-port <BridgeName> eth_n
$ sudo ovs-vsctl set-controller <BridgeName> tcp:Ctrl_IP:6633
https://github.com/MobileConvergenceLab/pi-switch
Mobile Convergence Laboratory 77
Pi Stack Switch와 ONOS 연결
Mobile Convergence Laboratory 78
메인 스위치
서브 스위치1
서브 스위치2
서브 스위치3
SDN Network 구축
SDN 테스트베드와 하이퍼바이저 그리고 SDN 컨트롤러
Mobile Convergence Laboratory 79
Mobile Convergence Laboratory 80
Pi Stack Switch
Mobile Convergence Laboratory 81
Network
Architecture
Network
Operating
System
Virtual Network
Physical Layer
OpenFlow Interface
Pi Stack Switch
OpenFlow Interface
Big Switch
Mobile Convergence Laboratory 82
Network Element Mapping
Mobile Convergence Laboratory 83
Big Switch
Network Element Mapping
Reference
• ONOS
• http://onosproject.org/
• https://wiki.onosproject.org/ 공식 Wiki
• https://wiki.onosproject.org/display/ONOS/ONOS+from+Scratch
• https://wiki.onosproject.org/display/ONOS/Installing+and+Running+ONOS
• https://www.youtube.com/watch?v=dWhtswhSpWE
• Pankaj Berde and others, “ONOS: Towards an Open, Distributed SDN OS”, HostSDN 2014
• OpenVirteX
• http://ovx.onlab.us/
• Ali Al-Shabibi and others, “OpenVirteX: Make Your Virtual SDNs Programmable”, HotSDN 2014
• OpenvSwitch
• http://www.openvswitch.org/
• Raspberry Pi
• https://www.raspberrypi.org/
• http://en.wikipedia.org/wiki/Raspberry_Pi
Mobile Convergence Laboratory 84
Q&A
Mobile Convergence Laboratory 85

Implementing SDN Testbed(ONOS & OpenVirteX)

  • 1.
    SDN 테스트베드 구축 라즈베리파이를이용하여 이더넷 스위치를 제작, ON.Lab의 ONOS/OVX SDN 컨트롤러로 제어 Programmable Network 구축 한국정보과학회 단기강좌 경희대학교 이성원 교수 Email : [email protected] Web : http://mobilelab.khu.ac.kr 경희대학교 컴퓨터공학과 모바일컨버전스Lab 한상윤 Email : [email protected]
  • 2.
    Mobile Convergence Laboratory2 목차 A Table of Contents ONOS ONOS(Open Network Operating System) 소개, 아키텍처 분석, 설치 및 데모 Keyword : Distributed core, Hazelcast, Intent Framework, maven, karaf OpenVirteX OVX 소개, Network Hypervisor와 가상화 플랫폼의 기능, 설치 및 데모 Keyword : Hypervisor, 네트워크 가상화 플랫폼, Resilient, elastic Pi Stack Switch Raspberry Pi와 Open vSwitch를 이용한 SDN 테스트베드 구축 Keyword : Raspberry Pi, Open vSwitch, OpenFlow 스위치 Q&A 질의응답 Pi Stack Switch
  • 3.
    ONOS SDN Network OperatingSystem & SDN Control Platform Mobile Convergence Laboratory 3
  • 4.
  • 5.
    • Service Provider를위한 캐리어급 SDN 네트워크 운영체제 • 이 주도한 프로젝트 Mobile Convergence Laboratory 5
  • 6.
    • Service Provider를위한 캐리어급 SDN 네트워크 운영체제 • 이 주도한 프로젝트 Mobile Convergence Laboratory 6
  • 7.
    Mobile Convergence Laboratory7 Non-profit Tools/Platforms for SDN community
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
    Mobile Convergence Laboratory12 Supporting members
  • 13.
  • 14.
    • Service Provider를위한 캐리어급 SDN 네트워크 운영체제 • 이 주도한 프로젝트 Mobile Convergence Laboratory 14
  • 15.
    15Mobile Convergence Laboratory ONOS의목표는 뭘까? 기존의 수많은 SDN controller
  • 16.
  • 17.
    Mobile Convergence Laboratory17 commercial products
  • 18.
    Mobile Convergence Laboratory18 commercial products
  • 19.
    Mobile Convergence Laboratory19 commercial products
  • 20.
    Mobile Convergence Laboratory20 High Availability • Multiple Instance Clustering • Fault tolerance using Distributed Core • Five Nines 수준의 가용성
  • 21.
    Mobile Convergence Laboratory21 High Availability High Performance • High Throughput • ~500K-1M path setups/second • High Volume • ~500GB-1TB state data • Low Latency • 10~100ms
  • 22.
    Mobile Convergence Laboratory22 High Availability High Performance Scalability • OSGi 기반의 오픈소스 Karaf  쉽고 빠른 배포 • 분산 클러스터링 지원  Sync, Share
  • 23.
    Mobile Convergence Laboratory23 High Availability High Performance Scalability White Box (Open) Reference : ONOS wiki
  • 24.
    Mobile Convergence Laboratory24 High Availability High Performance Scalability White Box (Open)
  • 25.
    Mobile Convergence Laboratory25 ONOS Framework(ONOSFW)
  • 26.
    Mobile Convergence Laboratory26 ONOS as an SDN controller within the VIM
  • 27.
  • 28.
  • 29.
    Mobile Convergence Laboratory29 구체적인 서비스를 위한 Application 계층
  • 30.
    Mobile Convergence Laboratory30 Application 계층에 네트워크 정보 전달, 하위 컴포넌트 제어를 위한 인터페이스 제공
  • 31.
    Mobile Convergence Laboratory31 ONOS의 핵심적인 역할 을 하며, HA와 Scalability를 위한 분산 클러스터링 기능
  • 32.
    Mobile Convergence Laboratory32 네트워크 인프라 제어를 위한 인터페이스 제공 Network Element 추상화
  • 33.
    Mobile Convergence Laboratory33 Network Element 설정 을 위한 프로토콜 OpenFlow : SDN NetConf : Legacy
  • 34.
    Mobile Convergence Laboratory34 Distributed Core Instance 1 Scale-out by Distributed Core (1) Network Graph Global network view
  • 35.
    Mobile Convergence Laboratory35 Distributed Core Instance 1 Instance 2 Instance 3 Scale-out by Distributed Core (2) Network Graph Global network view
  • 36.
    Mobile Convergence Laboratory36 Distributed Core Instance 1 Instance 2 Instance 3 Network Graph Global network view HA by Distributed Core (1)
  • 37.
    Mobile Convergence Laboratory37 Distributed Core Instance 1 Instance 2 Instance 3 Network Graph Global network view HA by Distributed Core (2)
  • 38.
    Mobile Convergence Laboratory38 Distributed Core Instance 1 Instance 2 Instance 3 Network Graph Global network view HA by Distributed Core (3)
  • 39.
    Mobile Convergence Laboratory39 Clustering Synchronize Data Sharing
  • 40.
    ONOS - Install 1.Getting ONOS 2. Installing ONOS 3. Start ONOS Mobile Convergence Laboratory 40
  • 41.
    Prerequisites • Ubuntu 14.04LTS 64bits • 2GB or more RAM • 2 or more processors • 8GB or more storage • Java 8 JDK • Apache Maven(3.0 and later) • Apache Karaf(3.0.2 and later) • Git Mobile Convergence Laboratory 41
  • 42.
    1. Install Java8 $ sudo apt-get install software-properties-common -y $ sudo add-apt-repository ppa:webupd8team/java -y $ sudo apt-get update $ sudo apt-get install oracle-java8-installer oracle-java8-set-default Mobile Convergence Laboratory 42
  • 43.
    1.1. Configure JavaPath • on Ubuntu $ env | grep JAVA_HOME JAVA_HOME=/usr/lib/jvm/java-8-oracle $ export JAVA_HOME=/usr/lib/jvm/java-8-oracle Mobile Convergence Laboratory 43
  • 44.
    2. Install Git $sudo apt-get install git-core $ git --version Mobile Convergence Laboratory 44
  • 45.
    3. Set Maven $cd; mkdir Downloads Applications $ cd Downloads $ wget http://archive.apache.org/dist/maven/maven- 3/3.3.1/binaries/apache-maven-3.3.1-bin.tar.gz $ tar -zxvf apache-maven-3.3.1-bin.tar.gz -C ../Applications/ Mobile Convergence Laboratory 45
  • 46.
    4. Set Karaf $cd Downloads $ wget http://download.nextag.com/apache/karaf/3.0.3/apache- karaf-3.0.3.tar.gz $ tar -zxvf apache-karaf-3.0.3.tar.gz -C ../Applications/ Mobile Convergence Laboratory 46
  • 47.
    5. Clone ONOS $git clone https://gerrit.onosproject.org/onos/ $ cd onos if> getting specific ONOS version $ git checkout <ver> Mobile Convergence Laboratory 47
  • 48.
    5.1. Configure ONOSPath $ export ONOS_ROOT=~/onos $ source $ONOS_ROOT/tools/dev/bash_profile Mobile Convergence Laboratory 48
  • 49.
    6. Build ONOS $cd ~/onos $ mvn clean install Mobile Convergence Laboratory 49 빌드 성공
  • 50.
    7. Start ONOSCLI $ karaf clean Mobile Convergence Laboratory 50
  • 51.
    8. Start ONOSGUI • start ONOS (ONOS CLI) • In web browser • http://localhost:8181/onos/ui/index.html Mobile Convergence Laboratory 51
  • 52.
    Mobile Convergence Laboratory52 <Network Graph> 토폴로지 GUI와 Host 정보 <Node Info> 해당 노드(스위치)의 정보 Protocol / Ports / Flow 버전 및 지리적 정보 <ONOS Summary> Network Element의 수 링크의 수 호스트의 수 Flow의 수…
  • 53.
  • 54.
    OpenVirteX Network Virtualization Platform& Network Hypervisor Mobile Convergence Laboratory 54
  • 55.
    OpenVirteX (OVX) • NetworkVirtualization Platform • Network Hypervisor Mobile Convergence Laboratory 55
  • 56.
  • 57.
    주요 기능 • TopologyVirtualization • Address Space Virtualization • Control Function Virtualization Mobile Convergence Laboratory 57
  • 58.
    주요 기능 -Topology Virtualization • 가상화를 통해 물리적 네트워크를 분리 • 물리 계층을 추상화 • 다수의 스위치를 묶어서 하나의 스위치로 가상화(Big Switch) Mobile Convergence Laboratory 58
  • 59.
    주요 기능 -Address Space Virtualization Mobile Convergence Laboratory 59
  • 60.
    주요 기능 -Control Function Virtualization Mobile Convergence Laboratory 60 SDN Controller (NOS) Big Switch Controll Plane (by OpenFlow Channel) OVX
  • 61.
    OpenVirteX - Install MobileConvergence Laboratory 61
  • 62.
    Prerequisites Recommended • 4 Cores •4GB Java heap size Minimum • 2 Cores • 1GB Java heap size Mobile Convergence Laboratory 62 • Git • Oracle Java7 (Not OpenJDK, Not Java8) • Maven • Python 2.7.x
  • 63.
    1. Install Git& Maven $ apt-get install git-core $ apt-get install maven Mobile Convergence Laboratory 63
  • 64.
    2. Install Java7 $sudo apt-get install software-properties-common -y $ sudo add-apt-repository ppa:webupd8team/java -y $ sudo apt-get update $ sudo apt-get install oracle-java7-installer Mobile Convergence Laboratory 64
  • 65.
    3. Clone OpenVirteX $git clone https://github.com/OPENNETWORKINGLAB/OpenVirteX.git -b 0.0-MAINT $ cd ~/OpenVirteX/scripts. Mobile Convergence Laboratory 65
  • 66.
    4. Start OVX $sh ovx.sh ex> 가상 네트워크 생성 및 Big Switch 생성 $ python ovxctl.py -n createNetwork tcp:localhost:30000 10.0.0.0 16 $ python ovxctl.py -n createSwitch DPID_1,DPID_2,DPID_3,DPID_4 <Tutorial & API Doc> http://ovx.onlab.us/getting-started/tutorial/ http://ovx.onlab.us/documentation/api/ Mobile Convergence Laboratory 66
  • 67.
    Pi Stack Switch RaspberryPi를 이용한 SDN 테스트베드 개발 Mobile Convergence Laboratory 67
  • 68.
    Raspberry Pi • 영국의라즈베리파이 재단이 만든 교육용 싱글 보드 컴퓨터 • Single Board Computer • 대략 US$ 35 • Pi A/B, Pi B+, Pi2 출시 Mobile Convergence Laboratory 68
  • 69.
    Raspberry Pi2의 스펙 •Single Board Computer(Micro Computer) • CPU : 900MHz ARM Cortex-A7 쿼드코어 • RAM : 1GB • USB 2.0 * 4 + HDMI * 1 + Micro USB전원 • 10/100 Mbit/s Ethernet Mobile Convergence Laboratory 69출처 : Wikipedia(wikipedia.org/wiki/Raspberry_Pi)
  • 70.
    Pi Stack SwitchHW구성 Mobile Convergence Laboratory 70
  • 71.
    Mobile Convergence Laboratory71 Pi Stack Switch HW구성 메인 스위치 x 1개 x 1포트 + 서브 스위치 x 3개 x 3포트 = 10포트 스위치
  • 72.
    Mobile Convergence Laboratory72 Pi Stack Switch 완성
  • 73.
    Mobile Convergence Laboratory73 USB허브를 이용한 17포트 스위치
  • 74.
    Mobile Convergence Laboratory74 Raspbian OS Software
  • 75.
  • 76.
    Mobile Convergence Laboratory76 System Architecture USBtoEthernet Bridge eth1 eth2 eth3 eth0 Ethernet Port USBtoEthernet USBtoEthernet FlowTable
  • 77.
    Pi Stack Switch- Install • OpenvSwitch 설치 $ sudo apt-get install openvswitch-switch openvswitch- controller openvswitch-common $ sudo ovs-vsctl add-br <BridgeName> $ sudo ovs-vsctl add-port <BridgeName> eth_n $ sudo ovs-vsctl set-controller <BridgeName> tcp:Ctrl_IP:6633 https://github.com/MobileConvergenceLab/pi-switch Mobile Convergence Laboratory 77
  • 78.
    Pi Stack Switch와ONOS 연결 Mobile Convergence Laboratory 78 메인 스위치 서브 스위치1 서브 스위치2 서브 스위치3
  • 79.
    SDN Network 구축 SDN테스트베드와 하이퍼바이저 그리고 SDN 컨트롤러 Mobile Convergence Laboratory 79
  • 80.
  • 81.
    Mobile Convergence Laboratory81 Network Architecture Network Operating System Virtual Network Physical Layer OpenFlow Interface Pi Stack Switch OpenFlow Interface Big Switch
  • 82.
    Mobile Convergence Laboratory82 Network Element Mapping
  • 83.
    Mobile Convergence Laboratory83 Big Switch Network Element Mapping
  • 84.
    Reference • ONOS • http://onosproject.org/ •https://wiki.onosproject.org/ 공식 Wiki • https://wiki.onosproject.org/display/ONOS/ONOS+from+Scratch • https://wiki.onosproject.org/display/ONOS/Installing+and+Running+ONOS • https://www.youtube.com/watch?v=dWhtswhSpWE • Pankaj Berde and others, “ONOS: Towards an Open, Distributed SDN OS”, HostSDN 2014 • OpenVirteX • http://ovx.onlab.us/ • Ali Al-Shabibi and others, “OpenVirteX: Make Your Virtual SDNs Programmable”, HotSDN 2014 • OpenvSwitch • http://www.openvswitch.org/ • Raspberry Pi • https://www.raspberrypi.org/ • http://en.wikipedia.org/wiki/Raspberry_Pi Mobile Convergence Laboratory 84
  • 85.