티스토리 뷰
설치 환경
맥북을 개발 환경, 윈도우에 VirtualBOX를 이용해 VM을 생성하고, ONOS 컨트롤러, OVS, 그리고 mininet등을 설치하여 사용 예정
VM의 운영체제는 Ubuntu를 사용할 예정
Mac에서 로컬로 돌린다면 15번까지만 하고, 17번을 이용해서 실행하면된다. 이게 젤 빠르고 편하다.
개발을 한다면 수정된 모듈로 가서 mci하면 전체 빌드를 다시 할 필요 없이 적용된다.
ONOS 설치 튜토리얼
https://wiki.onosproject.org/display/ONOS/ONOS+from+Scratch#ONOSfromScratch-OntheBuildmachine
1. VirtualBox 설치, VirtualBox에 VM을 만들고 Ubuntu 설치
VirtualBox 환경설정에서, VM에 2개의 Network interface 생성 (NAT, Host Only)
각각의 인터페이스는 eth0, eth1에 해당.
eth0 - 외부 인터넷을 위해 사용
eth1 - 각 VM의 연결을 위해 사용
2. 네트워크 인터페이스 설정
NAT로 설정된 eth0는 자동으로 설정되지만, eth1은 수동으로 설정해줘야함.
/etc/network/interfaces 파일에 다음 내용 추가.
auto eth1
iface eth1 inet static
address 192.168.56.101
gateway 192.168.56.1
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
네트워크 서비스 재시작
sudo /etc/init.d/networking restart
Ifconfig를 통해 eth0과 eth1이 정상적으로 작동하는지 확인
기존 package들 업데이트
sudo apt-update
2. 생성된 VM 사용자 계정생성
sudo adduser
ID/passwd : sdn/rocks
id와user를 다르게 세팅 시, 나중에 환경변수에서 수정해줘야 한다.
3. 생성된 사용자에게 sudo 권한 주기
sudo visudo
sdn 유저 권한 추가를 위해 아래 구문 삽입
sdn ALL=(ALL) NOPASSWD:ALL
4. SSH 로그인시 passwd 필요 없도록 하기 (선택사항)
이 과정은 생략가능, 이후에 ONOS 설치 후 onos-push-keys 명령어를 통해 동일하게 설정가능. (14번 항목 참조)
rsa key 생성
ssh-keygen –t rsa
rsa key 복사
ssh-copy-id sdn@192.168.56.101
5. Git 설치 (이후 내용 모두 sdn 계정으로 접속하여 진행)
sudo apt-get install git-core
6. Karaf 3.0.3과 Maven 3.3.9 설치
cd; mkdir Downloads Applications
cd Downloads
wget http://archive.apache.org/dist/karaf/3.0.3/apache-karaf-3.0.3.tar.gz
wget http://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
tar -zxvf apache-karaf-3.0.3.tar.gz -C ../Applications/
tar -zxvf apache-maven-3.3.9-bin.tar.gz -C ../Applications/
바이너리 파일이므로 추가적인 설치 과정 불필요.
7. 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 -y
8. ONOS 소스 다운 받기
git clone https://gerrit.onosproject.org/onos
sdn 사용자의 홈폴더에서 진행 할것.
현재 최신 버전으로 나와있는 1.5.0은 제대로 설치가 안되는것 같아. 1.3.0을 사용하기로 함.
cd ~/onos
git checkout 1.3.0
9. 환경변수 설정
환경변수는 위의 설치 위치가 다르다면 ~/onos/tools/dev/bash_profile를 수정할것.
sdn 로그인시 마다, 자동으로 환경변수들을 추가하기 위해 ~/.profile에 아래내용 추가. (.bashrc, .bash_aliases도 가능)
. ~/onos/tools/dev/bash_profile
export 명령 시 다음과 같이 ONOS관련 환경 변수, karaf 위치, JAVA_HOME등이 정상적으로 설정되었는지 확인할 것.
declare -x MAVEN="/home/sdn/Applications/apache-maven-3.3.9"
declare -x OC1="192.168.56.101"
declare -x OC2="192.168.56.102"
declare -x OCI="192.168.56.101"
declare -x OCN="192.168.56.103"
declare -x OLDPWD
declare -x ONOS_APPS="drivers,openflow,fwd,proxyarp,mobility"
declare -x ONOS_CELL="local"
declare -x ONOS_INSTANCES="192.168.56.101
192.168.56.102"
declare -x ONOS_NIC="192.168.56.*"
declare -x ONOS_ROOT="/home/sdn/onos"
declare -x ONOS_SCENARIOS="/home/sdn/onos/tools/test/scenarios"
declare -x ONOS_USER="sdn"
declare -x ONOS_WEB_PASS="rocks"
declare -x ONOS_WEB_USER="onos"
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/sdn/onos/tools/dev/bin:/home/sdn/onos/tools/test/bin:/home/sdn/onos/tools/test/scenarios/bin:/home/sdn/onos/tools/build:/home/sdn/Applications/apache-maven-3.3.9/bin:/home/sdn/Applications/apache-karaf-3.0.3/bin"
10. Apache Karaf 설정하기
이과정은 onos-karaf 명령을 치면 자동으로 된다. 그냥 넘어가길.
Karaf에서 ONOS feature들을 인식하게 하기 위해 필요.
~/Applications/apache-karaf-3.0.3/etc/org.apache.karaf.features.cfg 파일의 featuresRepositories에 아래 내용 추가.
mvn:org.onosproject/onos-features/1.5.0-SNAPSHOT/xml/features
튜토리얼에는 나와있지 않지만, onos-branding을 karaf에 추가해야 로고가 보인다.
cp ~/onos/tools/package/branding/target/onos-branding-1.5.0-SNAPSHOT.jar ~/Applications/apache-karaf-3.0.3/lib/
제대로 설정 되었다면 아래와 같은 형태가 될것임.
featuresRepositories=mvn:org.apache.karaf.features/standard/3.0.3/xml/features,mvn:org.apache.karaf.features/enterprise/3.0.3/xml/features,mvn:org.ops4j.pax.web/pax-web-features/3.1.4/xml/features,mvn:org.apache.karaf.features/spring/3.0.3/xml/features,mvn:org.onosproject/onos-features/1.5.0-SNAPSHOT/xml/features
11. ONOS 빌드하기
mvn clean install 대신 mci명령어로 대체 가능.
이 과정은 처음에 수행할 경우, 의존성이 있는 패키지들을 다운받아야 하므로 시간이 오래 걸림.
cd ~/onos
mvn clean install
빌드 과정 중, java.lang.OutOfMemoryError: Java heap space 발생할 경우.
~/onos/tools/dev/bash_profile에 아래 변수 추가.
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m"
업데이트된 환경변수는 자동적용되지 않으므로, shell에 다시 접속하거나 아래 명령으로 환경변수 갱신.
source ~/.profile
12. ONOS 설정하기
ONOS에서 내부적으로 사용되는 변수들의 집합을 cell으로 표현함.
Cell의 샘플들은 ${ONOS_ROOT}/tools/test/cells/ 에서 확인 할 수 있음.
tutorial이라는 파일을 생성 후, 아래 내용 작성.
# ONOS from Scratch tutorial cell
# the address of the VM to install the package onto
export OC1="192.168.56.101"
# the default address used by ONOS utilities when none are supplied
export OCI="192.168.56.101"
# the ONOS apps to load at startup
export ONOS_APPS="drivers,openflow,fwd,proxyarp,mobility"
# the Mininet VM (if you have one)
export OCN="192.168.56.102"
# pattern to specify which address to use for inter-ONOS node communication (not used with single-instance core)
export ONOS_NIC="192.168.56.*"
13. Cell 적용하기
cell은 ONOS에서 제공하는 명령임. 12에서 작성한 tutorial 파일을 읽어서 적용함.
cell tutorial
14. SSH 환경 설정
password 없이 ssh를 통한 VM 접속.
rsa key 생성.
ssh-keygen –t rsa
비밀번호는 sdn 계정의 비밀번호와 동일.
onos-push-keys 192.168.56.101
sudo: start: command not found 에러 발생시, upstart가 없는 것이므로 설치해준다.
sudo apt-get install upstart
sudo apt-get install upstart-sysv
sudo dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
17. ONOS CLI 환경 접속하기
onos-karaf clean
CLI에서 나가는 방법은 Ctrl+D임.
web의 경우 아이디와 비밀번호 기본은 karaf/karaf로 되어 있다.
- Total
- Today
- Yesterday