SlideShare a Scribd company logo
1 of 43
Download to read offline
ONOS SDN Controller
소스코드 분석 및 SDN 응용개발
Mobile Convergence Lab, Computer Engineering,
Kyung Hee University
Sangyun Han
Email : sangyun0628@khu.ac.kr
SDN/NFV 이론, 실습, 최신동향
[ONOS 환경설정, 빌드 및 테스트 환경 구축]
Setting
Mobile Convergence Laboratory 2
목차
A Table of Contents
Install
Test
환경설정
가상머신 셋팅, 네트워크 환경 설정
의존성SW 설치 및 빌드
관련 오픈소스 설치 및 변수 설정, 빌드
테스트 환경 구축
SDN 컨트롤러 테스트를 위한 물리 및 가상 환경 셋팅
Q&A
질의응답
Prerequisites
• Ubuntu 14.04 LTS 64bits
• 2GB or more RAM
• 2 or more processors
• 8GB or more storage
• Java 8 JDK
• Apache Maven(3.3.9 and later)
• Apache Karaf(3.0.5 and later)
• Git
Mobile Convergence Laboratory 3
제공된 VM instance
• Ubuntu 14.04 LTS
• 2GB memory
• 12GB hard disk
(dynamic allocation)
• eth0 NAT / eth1 host-only
• username : sdn
• password : mclab
Mobile Convergence Laboratory 4
Setting
1. Installing VM
2. Creating VM instance
3. Configuring network option
Mobile Convergence Laboratory 5
Virtual Box
• Virtual Box 다운로드 및 설치
• https://www.virtualbox.org/wiki/Downloads
• Ubuntu 설치
• www.ubuntu.com/download/desktop
Mobile Convergence Laboratory 6
Set VM (1/2)
Mobile Convergence Laboratory 7
• 가상머신 생성 및 Ubuntu 설치
Set VM (2/2)
• 하드디스크 할당
• 최소 여유 공간 8GB
• Ubuntu OS 할당 공간 + α
Mobile Convergence Laboratory 8
Install Ubuntu (1/2)
Mobile Convergence Laboratory 9
Install Ubuntu (2/2)
• username : sdn // 다중 인스턴스 설치 때 필요
Mobile Convergence Laboratory 10
VM Network Setting
• 설정 è 네트워크 è 어댑터 1 è NAT
• For connecting internet
• 설정 è 네트워크 è 어댑터 2 è 호스트 전용 어댑터
• For communicating ONOS cluster member
11
Structure of Machines
• 다중 인스턴스 설치 시, 사용할 머신들의 구조
Mobile Convergence Laboratory 12
Internet
Physical machine
Virtual machine Virtual machine Virtual machine
Instance 1 Instance 2 Instance 3
Eth0 Eth1 Eth0 Eth1 Eth0 Eth1
Host-Only Network
Structure of Machines
• 다중 인스턴스 설치 시, 사용할 머신들의 구조
Mobile Convergence Laboratory 13
Internet
Physical machine
Virtual machine Virtual machine Virtual machine
Instance 1 Instance 2 Instance 3
Eth0 Eth1 Eth0 Eth1 Eth0 Eth1
Host-Only Network
현재 설치 중인
인스턴스 Instance Duplication
ONOS - Install
Single Instance setting
1. Getting ONOS
2. Installing ONOS
3. Start ONOS
Mobile Convergence Laboratory 14
https://wiki.onosproject.org/display/ONOS/Installing+and+Running+ONOS
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 15
Single Instance Setting (1/10)
1. Install Java 8
Mobile Convergence Laboratory 16
Single Instance Setting (1/10)
• Java8 라이선스 동의
2. 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 17
Single Instance Setting (2/10)
3. Install Git
$ sudo apt-get install git-core
$ git --version
Mobile Convergence Laboratory 18
Single Instance Setting (3/10)
4. Set Maven
$ cd; mkdir Downloads Applications
$ cd Downloads
$ wget http://archive.apache.org/dist/maven/maven-
3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
$ tar -zxvf apache-maven-3.3.9-bin.tar.gz -C ../Applications/
Mobile Convergence Laboratory 19
Single Instance Setting (4/10)
4. Set Maven
$ cd; mkdir Downloads Applications
$ cd Downloads
$ wget http://archive.apache.org/dist/maven/maven-
3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
$ tar -zxvf apache-maven-3.3.9-bin.tar.gz -C ../Applications/
Mobile Convergence Laboratory 20
Single Instance Setting (4/10)
중요!
static path
5. Set Karaf
$ cd Downloads
$ wget http://archive.apache.org/dist/karaf/3.0.5/apache-karaf-
3.0.5.tar.gz
$ tar -zxvf apache-karaf-3.0.5.tar.gz -C ../Applications/
Mobile Convergence Laboratory 21
Single Instance Setting (5/10)
6. Clone ONOS
$ cd ~/
$ git clone https://gerrit.onosproject.org/onos/
$ cd onos
if> getting specific ONOS version
$ git checkout onos-1.5
Mobile Convergence Laboratory 22
Single Instance Setting (6/10)
7. Configure ONOS Path
$ export ONOS_ROOT=~/onos
$ source $ONOS_ROOT/tools/dev/bash_profile
Mobile Convergence Laboratory 23
Single Instance Setting (7/10)
# add bash
sudo vi /etc/bash.bashrc
export ONOS_ROOT=~/onos
source $ONOS_ROOT/tools/dev/bash_profile
8. Build ONOS
$ cd ~/onos
$ mvn clean install
Mobile Convergence Laboratory 24
빌드 성공
Single Instance Setting (8/10)
9. Start ONOS CLI
$ ok clean
Mobile Convergence Laboratory 25
Single Instance Setting (9/10)
10. Start ONOS GUI
• start ONOS (ONOS CLI)
• In web browser
• http://localhost:8181/onos/ui/login.html
Default ID: karaf / PW: karaf
Mobile Convergence Laboratory 26
Single Instance Setting (10/10)
Mobile Convergence Laboratory 27
Mobile Convergence Laboratory 28
Activate ONOS app
onos> app activate <APP_NAME>
onos> app deactivate <APP_NAME>
Mobile Convergence Laboratory 29
Test
1. mininet을 이용한 가상 테스트 환경 구축
2. Open vSwitch를 이용한 물리 테스트 환경 구축
Mobile Convergence Laboratory 30
Mininet
• Open source 네트워크 에뮬레이터
• 네트워크 테스트, 디버깅 등의 용도로 사용가능
• 단일 Linux kernel에 수 백 개의 가상 host, switch, router 구축
• 각 node에서 Linux sw를 실행가능
• wireshark, tcpdump, web server, etc
• OpenFlow 지원
• Python API를 이용한 custom topology 생성
Mobile Convergence Laboratory 31
1. mininet을 이용한 가상 테스트 환경 구축 (1/6)
mininet 설치
• Ubuntu package
• $ apt-get install mininet
• $ sudo mn
• Source build
• $ git clone git://github.com/mininet/mininet.git
• $ ./mininet/util/install.sh -nfw
• $ sudo mn
Mobile Convergence Laboratory 32
1. mininet을 이용한 가상 테스트 환경 구축 (2/6)
토폴로지 생성 및 ONOS 연동
• mininet을 이용한 tree 토폴로지 생성
• // OpenFlow 1.0의 경우, 6633 포트를 사용, ONOS는 OpenFlow 1.0과 1.3만 지원
• $ sudo mn -- [topology][,depth=][,fanout=]
• $ sudo mn --topo tree,2,3 --controller=remote,ip=127.0.0.1,port=6633
Mobile Convergence Laboratory 33
1. mininet을 이용한 가상 테스트 환경 구축 (3/6)
Python을 이용한
mininet 커스텀
토폴로지 예제
ping test & host discovery
mininet> pingall
Mobile Convergence Laboratory 34
만약 SDN controlle를
연동하지 않았다면
pingall 테스트 시에
unreachable 문제 발생
(포워딩 문제)
1. mininet을 이용한 가상 테스트 환경 구축 (4/6)
ping test & host discovery
Mobile Convergence Laboratory 35
1. mininet을 이용한 가상 테스트 환경 구축 (5/6)
mininet tool
• xterm
• node의 terminal 접속
• xterm <node_name>
• ifconfig
• <node_name> ifconfig
• ping
• <src_node_name> ping <dst_node_name>
• net
• node간 연결 정보 출력
Mobile Convergence Laboratory 36
1. mininet을 이용한 가상 테스트 환경 구축 (6/6)
Open vSwitch를 이용한 물리 테스트 환경 구축
• PC/Server/RaspberryPi를 기반으로 OpenFlow 스위치를 구축
• 테스트베드로 실제 망에 적용 및 테스트 가능
Mobile Convergence Laboratory 37
Open vSwitch를 이용한 물리 테스트 환경 구축
Mobile Convergence Laboratory 38
• Pi Stack Switch
• https://github.com/MobileConvergenceLab/pi-switch
• 리눅스 기반이라면 Raspberry Pi에 셋팅한 과정 그대로
사용 가능
Mobile Convergence Laboratory 39
실제 캠퍼스 망에 설치 및 테스트
Mobile Convergence Laboratory 40
Pi only SDN (1/3)
Raspberry Pi
Mobile Convergence Laboratory 41
Pi only SDN (2/3)
ONOS controller
Pi Stack Switch
(SDN Switch)
Mobile Convergence Laboratory 42
Pi only SDN (3/3)
Raspberry Pi Screen running ONOS
Mobile Convergence Laboratory 43

More Related Content

What's hot

Open network operating system (onos)
Open network operating system (onos)Open network operating system (onos)
Open network operating system (onos)Ameer Sameer
 
OpenVirtex (OVX) Tutorial
OpenVirtex (OVX) TutorialOpenVirtex (OVX) Tutorial
OpenVirtex (OVX) Tutorial동호 손
 
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화OpenStack Korea Community
 
Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for TestingMukta Aphale
 
Cloud Network Virtualization with Juniper Contrail
Cloud Network Virtualization with Juniper ContrailCloud Network Virtualization with Juniper Contrail
Cloud Network Virtualization with Juniper Contrailbuildacloud
 
Mininet multiple controller
Mininet   multiple controllerMininet   multiple controller
Mininet multiple controllerCatur Mei Rahayu
 
Routed Provider Networks on OpenStack
Routed Provider Networks on OpenStack Routed Provider Networks on OpenStack
Routed Provider Networks on OpenStack Romana Project
 
Troubleshooting containerized triple o deployment
Troubleshooting containerized triple o deploymentTroubleshooting containerized triple o deployment
Troubleshooting containerized triple o deploymentSadique Puthen
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric OverviewMichelle Holley
 
Docker containers : introduction
Docker containers : introductionDocker containers : introduction
Docker containers : introductionrinnocente
 
Open Source MANO(OSM)
Open Source MANO(OSM)Open Source MANO(OSM)
Open Source MANO(OSM)Eggy Cheng
 
Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Sam Kim
 
Simple callcenter platform with PHP
Simple callcenter platform with PHPSimple callcenter platform with PHP
Simple callcenter platform with PHPMorten Amundsen
 
Drone CI/CD Platform
Drone CI/CD PlatformDrone CI/CD Platform
Drone CI/CD PlatformBo-Yi Wu
 
Tomcat and apache httpd training
Tomcat and apache httpd trainingTomcat and apache httpd training
Tomcat and apache httpd trainingFranck SIMON
 
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方tshiroyama
 
Getting started with Jenkins
Getting started with JenkinsGetting started with Jenkins
Getting started with JenkinsEdureka!
 

What's hot (20)

Open network operating system (onos)
Open network operating system (onos)Open network operating system (onos)
Open network operating system (onos)
 
OpenVirtex (OVX) Tutorial
OpenVirtex (OVX) TutorialOpenVirtex (OVX) Tutorial
OpenVirtex (OVX) Tutorial
 
Docker
DockerDocker
Docker
 
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
[OpenStack 하반기 스터디] Docker를 이용한 OpenStack 가상화
 
Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for Testing
 
Cloud Network Virtualization with Juniper Contrail
Cloud Network Virtualization with Juniper ContrailCloud Network Virtualization with Juniper Contrail
Cloud Network Virtualization with Juniper Contrail
 
Mininet multiple controller
Mininet   multiple controllerMininet   multiple controller
Mininet multiple controller
 
Routed Provider Networks on OpenStack
Routed Provider Networks on OpenStack Routed Provider Networks on OpenStack
Routed Provider Networks on OpenStack
 
Troubleshooting containerized triple o deployment
Troubleshooting containerized triple o deploymentTroubleshooting containerized triple o deployment
Troubleshooting containerized triple o deployment
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric Overview
 
Docker containers : introduction
Docker containers : introductionDocker containers : introduction
Docker containers : introduction
 
Open Source MANO(OSM)
Open Source MANO(OSM)Open Source MANO(OSM)
Open Source MANO(OSM)
 
Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1
 
Simple callcenter platform with PHP
Simple callcenter platform with PHPSimple callcenter platform with PHP
Simple callcenter platform with PHP
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Drone CI/CD Platform
Drone CI/CD PlatformDrone CI/CD Platform
Drone CI/CD Platform
 
Multicast in OpenStack Tips
Multicast in OpenStack TipsMulticast in OpenStack Tips
Multicast in OpenStack Tips
 
Tomcat and apache httpd training
Tomcat and apache httpd trainingTomcat and apache httpd training
Tomcat and apache httpd training
 
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
 
Getting started with Jenkins
Getting started with JenkinsGetting started with Jenkins
Getting started with Jenkins
 

Similar to ONOS - setting, configuration, installation, and test

ONOS - multiple instance setting(Distributed SDN Controller)
ONOS - multiple instance setting(Distributed SDN Controller)ONOS - multiple instance setting(Distributed SDN Controller)
ONOS - multiple instance setting(Distributed SDN Controller)sangyun han
 
Build the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHouseBuild the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHousejieun kim
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)Ian Choi
 
Internship backend
Internship backendInternship backend
Internship backendYein Sim
 
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기John Kim
 
OpenStack DevStack Install - 1부 (All-in-one)
OpenStack DevStack Install - 1부 (All-in-one)OpenStack DevStack Install - 1부 (All-in-one)
OpenStack DevStack Install - 1부 (All-in-one)Ian Choi
 
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지Kyunghee Univ
 
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOSConfd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS충섭 김
 
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개OpenStack Korea Community
 
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석Amazon Web Services Korea
 
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표OpenStack Korea Community
 
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Seung-Hoon Baek
 
Openstack live migration
Openstack live migrationOpenstack live migration
Openstack live migrationymtech
 
Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Steve Shim
 
[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer
[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer
[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy InstallerOpenStack Korea Community
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래NAVER D2
 

Similar to ONOS - setting, configuration, installation, and test (20)

ONOS - multiple instance setting(Distributed SDN Controller)
ONOS - multiple instance setting(Distributed SDN Controller)ONOS - multiple instance setting(Distributed SDN Controller)
ONOS - multiple instance setting(Distributed SDN Controller)
 
Build the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHouseBuild the OpenStack Cloud with Neutron Networing, IceHouse
Build the OpenStack Cloud with Neutron Networing, IceHouse
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)
 
Internship backend
Internship backendInternship backend
Internship backend
 
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
 
OpenStack DevStack Install - 1부 (All-in-one)
OpenStack DevStack Install - 1부 (All-in-one)OpenStack DevStack Install - 1부 (All-in-one)
OpenStack DevStack Install - 1부 (All-in-one)
 
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
GOTHAM 오픈소스 메쉬 네트워킹 소프트웨어 패키지
 
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOSConfd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개
 
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
 
1.develop environment
1.develop environment1.develop environment
1.develop environment
 
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
[OpenInfra Days Korea 2018] (Track 1) 커뮤니티 오픈스택 패키징 도입 전략 및 구현사례 발표
 
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
Open vSwitch와 Mininet을 이용한 가상 네트워크 생성과 OpenDaylight를 사용한 네트워크 제어실험
 
Openstack live migration
Openstack live migrationOpenstack live migration
Openstack live migration
 
Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1
 
[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer
[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer
[OpenInfra Days Korea 2018] (Track 1) Openstack 쉽게 설치하기 - SOfTI Easy Installer
 
kt-cloud
kt-cloudkt-cloud
kt-cloud
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 

More from sangyun han

SDN, ONOS, and Network Virtualization
SDN, ONOS, and Network VirtualizationSDN, ONOS, and Network Virtualization
SDN, ONOS, and Network Virtualizationsangyun han
 
Introduce to OpenVirteX
Introduce to OpenVirteXIntroduce to OpenVirteX
Introduce to OpenVirteXsangyun han
 
XOS in open CORD project
XOS in open CORD projectXOS in open CORD project
XOS in open CORD projectsangyun han
 
Introduction to CORD project
Introduction to CORD projectIntroduction to CORD project
Introduction to CORD projectsangyun han
 
OpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOSOpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOSsangyun han
 
KhuHub student guideline
KhuHub student guidelineKhuHub student guideline
KhuHub student guidelinesangyun han
 
KhuHub professor guideline
KhuHub professor guidelineKhuHub professor guideline
KhuHub professor guidelinesangyun han
 
Introduction of ONOS and core technology
Introduction of ONOS and core technologyIntroduction of ONOS and core technology
Introduction of ONOS and core technologysangyun han
 
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발sangyun han
 
[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbedsangyun han
 
RAFT Consensus Algorithm
RAFT Consensus AlgorithmRAFT Consensus Algorithm
RAFT Consensus Algorithmsangyun han
 
Hazelcast 소개
Hazelcast 소개Hazelcast 소개
Hazelcast 소개sangyun han
 
Git & Github Seminar-1
Git & Github Seminar-1Git & Github Seminar-1
Git & Github Seminar-1sangyun han
 
Git & Github Seminar-2
Git & Github Seminar-2Git & Github Seminar-2
Git & Github Seminar-2sangyun han
 

More from sangyun han (14)

SDN, ONOS, and Network Virtualization
SDN, ONOS, and Network VirtualizationSDN, ONOS, and Network Virtualization
SDN, ONOS, and Network Virtualization
 
Introduce to OpenVirteX
Introduce to OpenVirteXIntroduce to OpenVirteX
Introduce to OpenVirteX
 
XOS in open CORD project
XOS in open CORD projectXOS in open CORD project
XOS in open CORD project
 
Introduction to CORD project
Introduction to CORD projectIntroduction to CORD project
Introduction to CORD project
 
OpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOSOpenWRT/Hostapd with ONOS
OpenWRT/Hostapd with ONOS
 
KhuHub student guideline
KhuHub student guidelineKhuHub student guideline
KhuHub student guideline
 
KhuHub professor guideline
KhuHub professor guidelineKhuHub professor guideline
KhuHub professor guideline
 
Introduction of ONOS and core technology
Introduction of ONOS and core technologyIntroduction of ONOS and core technology
Introduction of ONOS and core technology
 
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
ONOS와 Raspberry Pi 기반 가상물리 SDN 실증 환경 구축과 응용 개발
 
[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed[SoftCon]SDN/IoT 그리고 Testbed
[SoftCon]SDN/IoT 그리고 Testbed
 
RAFT Consensus Algorithm
RAFT Consensus AlgorithmRAFT Consensus Algorithm
RAFT Consensus Algorithm
 
Hazelcast 소개
Hazelcast 소개Hazelcast 소개
Hazelcast 소개
 
Git & Github Seminar-1
Git & Github Seminar-1Git & Github Seminar-1
Git & Github Seminar-1
 
Git & Github Seminar-2
Git & Github Seminar-2Git & Github Seminar-2
Git & Github Seminar-2
 

ONOS - setting, configuration, installation, and test

  • 1. ONOS SDN Controller 소스코드 분석 및 SDN 응용개발 Mobile Convergence Lab, Computer Engineering, Kyung Hee University Sangyun Han Email : sangyun0628@khu.ac.kr SDN/NFV 이론, 실습, 최신동향 [ONOS 환경설정, 빌드 및 테스트 환경 구축]
  • 2. Setting Mobile Convergence Laboratory 2 목차 A Table of Contents Install Test 환경설정 가상머신 셋팅, 네트워크 환경 설정 의존성SW 설치 및 빌드 관련 오픈소스 설치 및 변수 설정, 빌드 테스트 환경 구축 SDN 컨트롤러 테스트를 위한 물리 및 가상 환경 셋팅 Q&A 질의응답
  • 3. Prerequisites • Ubuntu 14.04 LTS 64bits • 2GB or more RAM • 2 or more processors • 8GB or more storage • Java 8 JDK • Apache Maven(3.3.9 and later) • Apache Karaf(3.0.5 and later) • Git Mobile Convergence Laboratory 3
  • 4. 제공된 VM instance • Ubuntu 14.04 LTS • 2GB memory • 12GB hard disk (dynamic allocation) • eth0 NAT / eth1 host-only • username : sdn • password : mclab Mobile Convergence Laboratory 4
  • 5. Setting 1. Installing VM 2. Creating VM instance 3. Configuring network option Mobile Convergence Laboratory 5
  • 6. Virtual Box • Virtual Box 다운로드 및 설치 • https://www.virtualbox.org/wiki/Downloads • Ubuntu 설치 • www.ubuntu.com/download/desktop Mobile Convergence Laboratory 6
  • 7. Set VM (1/2) Mobile Convergence Laboratory 7 • 가상머신 생성 및 Ubuntu 설치
  • 8. Set VM (2/2) • 하드디스크 할당 • 최소 여유 공간 8GB • Ubuntu OS 할당 공간 + α Mobile Convergence Laboratory 8
  • 9. Install Ubuntu (1/2) Mobile Convergence Laboratory 9
  • 10. Install Ubuntu (2/2) • username : sdn // 다중 인스턴스 설치 때 필요 Mobile Convergence Laboratory 10
  • 11. VM Network Setting • 설정 è 네트워크 è 어댑터 1 è NAT • For connecting internet • 설정 è 네트워크 è 어댑터 2 è 호스트 전용 어댑터 • For communicating ONOS cluster member 11
  • 12. Structure of Machines • 다중 인스턴스 설치 시, 사용할 머신들의 구조 Mobile Convergence Laboratory 12 Internet Physical machine Virtual machine Virtual machine Virtual machine Instance 1 Instance 2 Instance 3 Eth0 Eth1 Eth0 Eth1 Eth0 Eth1 Host-Only Network
  • 13. Structure of Machines • 다중 인스턴스 설치 시, 사용할 머신들의 구조 Mobile Convergence Laboratory 13 Internet Physical machine Virtual machine Virtual machine Virtual machine Instance 1 Instance 2 Instance 3 Eth0 Eth1 Eth0 Eth1 Eth0 Eth1 Host-Only Network 현재 설치 중인 인스턴스 Instance Duplication
  • 14. ONOS - Install Single Instance setting 1. Getting ONOS 2. Installing ONOS 3. Start ONOS Mobile Convergence Laboratory 14 https://wiki.onosproject.org/display/ONOS/Installing+and+Running+ONOS
  • 15. 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 15 Single Instance Setting (1/10)
  • 16. 1. Install Java 8 Mobile Convergence Laboratory 16 Single Instance Setting (1/10) • Java8 라이선스 동의
  • 17. 2. 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 17 Single Instance Setting (2/10)
  • 18. 3. Install Git $ sudo apt-get install git-core $ git --version Mobile Convergence Laboratory 18 Single Instance Setting (3/10)
  • 19. 4. Set Maven $ cd; mkdir Downloads Applications $ cd Downloads $ wget http://archive.apache.org/dist/maven/maven- 3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz $ tar -zxvf apache-maven-3.3.9-bin.tar.gz -C ../Applications/ Mobile Convergence Laboratory 19 Single Instance Setting (4/10)
  • 20. 4. Set Maven $ cd; mkdir Downloads Applications $ cd Downloads $ wget http://archive.apache.org/dist/maven/maven- 3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz $ tar -zxvf apache-maven-3.3.9-bin.tar.gz -C ../Applications/ Mobile Convergence Laboratory 20 Single Instance Setting (4/10) 중요! static path
  • 21. 5. Set Karaf $ cd Downloads $ wget http://archive.apache.org/dist/karaf/3.0.5/apache-karaf- 3.0.5.tar.gz $ tar -zxvf apache-karaf-3.0.5.tar.gz -C ../Applications/ Mobile Convergence Laboratory 21 Single Instance Setting (5/10)
  • 22. 6. Clone ONOS $ cd ~/ $ git clone https://gerrit.onosproject.org/onos/ $ cd onos if> getting specific ONOS version $ git checkout onos-1.5 Mobile Convergence Laboratory 22 Single Instance Setting (6/10)
  • 23. 7. Configure ONOS Path $ export ONOS_ROOT=~/onos $ source $ONOS_ROOT/tools/dev/bash_profile Mobile Convergence Laboratory 23 Single Instance Setting (7/10) # add bash sudo vi /etc/bash.bashrc export ONOS_ROOT=~/onos source $ONOS_ROOT/tools/dev/bash_profile
  • 24. 8. Build ONOS $ cd ~/onos $ mvn clean install Mobile Convergence Laboratory 24 빌드 성공 Single Instance Setting (8/10)
  • 25. 9. Start ONOS CLI $ ok clean Mobile Convergence Laboratory 25 Single Instance Setting (9/10)
  • 26. 10. Start ONOS GUI • start ONOS (ONOS CLI) • In web browser • http://localhost:8181/onos/ui/login.html Default ID: karaf / PW: karaf Mobile Convergence Laboratory 26 Single Instance Setting (10/10)
  • 29. Activate ONOS app onos> app activate <APP_NAME> onos> app deactivate <APP_NAME> Mobile Convergence Laboratory 29
  • 30. Test 1. mininet을 이용한 가상 테스트 환경 구축 2. Open vSwitch를 이용한 물리 테스트 환경 구축 Mobile Convergence Laboratory 30
  • 31. Mininet • Open source 네트워크 에뮬레이터 • 네트워크 테스트, 디버깅 등의 용도로 사용가능 • 단일 Linux kernel에 수 백 개의 가상 host, switch, router 구축 • 각 node에서 Linux sw를 실행가능 • wireshark, tcpdump, web server, etc • OpenFlow 지원 • Python API를 이용한 custom topology 생성 Mobile Convergence Laboratory 31 1. mininet을 이용한 가상 테스트 환경 구축 (1/6)
  • 32. mininet 설치 • Ubuntu package • $ apt-get install mininet • $ sudo mn • Source build • $ git clone git://github.com/mininet/mininet.git • $ ./mininet/util/install.sh -nfw • $ sudo mn Mobile Convergence Laboratory 32 1. mininet을 이용한 가상 테스트 환경 구축 (2/6)
  • 33. 토폴로지 생성 및 ONOS 연동 • mininet을 이용한 tree 토폴로지 생성 • // OpenFlow 1.0의 경우, 6633 포트를 사용, ONOS는 OpenFlow 1.0과 1.3만 지원 • $ sudo mn -- [topology][,depth=][,fanout=] • $ sudo mn --topo tree,2,3 --controller=remote,ip=127.0.0.1,port=6633 Mobile Convergence Laboratory 33 1. mininet을 이용한 가상 테스트 환경 구축 (3/6) Python을 이용한 mininet 커스텀 토폴로지 예제
  • 34. ping test & host discovery mininet> pingall Mobile Convergence Laboratory 34 만약 SDN controlle를 연동하지 않았다면 pingall 테스트 시에 unreachable 문제 발생 (포워딩 문제) 1. mininet을 이용한 가상 테스트 환경 구축 (4/6)
  • 35. ping test & host discovery Mobile Convergence Laboratory 35 1. mininet을 이용한 가상 테스트 환경 구축 (5/6)
  • 36. mininet tool • xterm • node의 terminal 접속 • xterm <node_name> • ifconfig • <node_name> ifconfig • ping • <src_node_name> ping <dst_node_name> • net • node간 연결 정보 출력 Mobile Convergence Laboratory 36 1. mininet을 이용한 가상 테스트 환경 구축 (6/6)
  • 37. Open vSwitch를 이용한 물리 테스트 환경 구축 • PC/Server/RaspberryPi를 기반으로 OpenFlow 스위치를 구축 • 테스트베드로 실제 망에 적용 및 테스트 가능 Mobile Convergence Laboratory 37
  • 38. Open vSwitch를 이용한 물리 테스트 환경 구축 Mobile Convergence Laboratory 38 • Pi Stack Switch • https://github.com/MobileConvergenceLab/pi-switch • 리눅스 기반이라면 Raspberry Pi에 셋팅한 과정 그대로 사용 가능
  • 39. Mobile Convergence Laboratory 39 실제 캠퍼스 망에 설치 및 테스트
  • 40. Mobile Convergence Laboratory 40 Pi only SDN (1/3) Raspberry Pi
  • 41. Mobile Convergence Laboratory 41 Pi only SDN (2/3) ONOS controller Pi Stack Switch (SDN Switch)
  • 42. Mobile Convergence Laboratory 42 Pi only SDN (3/3) Raspberry Pi Screen running ONOS