2013년 9월 5일 목요일

openflow setup

토폴로지라고 할 것도 없지만
컨트롤러(1.1.1.1:6633)
|
switch(오픈플로우 스위치, pc가 switch 행동을 합니다)

환경입니다




---------------------------------------------------------
Openflow 설치법 1.0 기준
설치환경(OS): 우분투12.04
설치물: 오픈플로우1.0

설치전 환경: 우분투 10.04 설치 후, 업데이트 센터에서 모든 업데이트를 마치고(업데이트는 daum.net에서 받는 것이 빠르다). 터미널 창으로 가서 sudo passwd를 적고 엔터를 쳐서, 계정비번을 치고 루트의 “비번/비번확인” 을 만들어 주고 아래 명령어를 순차적으로 입력.
보통 ubutu gui환경에서 상단 오른쪽에 있는 네트워크는 사용 안함으로 지정하고 터미널에 들어가서 ifconfig -a를 적어 모든 NIC를 확인한 후
ifconfig eth숫자 up(또는 down) (죽이고 켜기)로 eth을 키고
ifconfig eth0 ip주소/서브넷마스크(e.g 24(24는 255.255.255.0이다)
(해당 eth에 아이피 추가하기)로 컨트롤러 아이피만 지정한 후.
route add eth번호 ip주소
route default gw ip주소 (로 디폴트 게이트 웨이를 입력하고
아래 작업 시작

명령어순서:
sudo apt-get install git-core automake m4 pkg-config libtool gcc vim
git clone git://openflow.org/openflow.git
cd openflow
git fetch
./boot.sh
./configure
make | make install
regress/scripts/install_deps.pl
apt-get remove avahi-daemon
vim /etc/sysctl.conf
위 명령어를 치면 문서 편집기가 나온다 I를 눌러 편집모드로 전환하고
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.diable_ipv6 = 1
위 2줄을 그대로 쓴 다음 esc키를 눌러 편집모드를 종료하고 콜론: 을 적으면 하단에 명령어를 칠 수 있는데 w나 w!를 입력하여 엔터 다시 :을 누르고 q나 q!를 눌러 나온다.
vim /etc/modprobe.d/blacklist.conf
내용추가
blacklist net-pf-10
blacklist ipv6
적고
esc키
:
w 또는 w! 엔터
:
q 또는 q! 엔터
cd ~
cp /home/(우분투 사용자 폴더명:)/openflow/regress/scripts/env_vars .
vim env_vars
편집기창에서 /home/(우분투 사용자 폴더명:)/ home 다음에 실제와 다른 사용자 폴더명을 바꾸고 저장 후 나옴.
source ~/env_vars
/sbin/ifconfig | more
ofdatapath punix:/var/run/dp0.sock -i eth0,eth4(eth0,eth4 이부분 쉼표다음 띄우지 말고 컨트롤러부분의 NIC와 브릿지 NIC 부분 빼고 스위칭 할 호스트들의 eth들을 다 추가)
ofdatapath가 안된다면 /home/유저폴더/openflow/udatapath 안으로 접속한 뒤 ./ofdatapath punix:/var/run/dp0.sock -i eth0,eth4를 입력
새 터미널을 띄워서
su
root계정비번 치고
ofprotocol unix:/var/run/dp0.sock tcp:1.1.1.1:6633
안되면
/home/유저폴더/openflow/udatapath 안으로 접속한 뒤
ofprotocol unix:/var/run/dp0.sock tcp:1.1.1.1:6633 나
./ofprotocol unix:/var/run/dp0.sock tcp:1.1.1.1:6633를 입력
1.1.1.1은 컨트롤러의 아이피이고 6633은 컨트롤러가 정한 오픈플로우 포트이다. 환경에 맞게 변경


wireshark설치
apt-get install wireshark libgtk2.0-dev
오픈플로우 폴더안에서 cd utilities/wireshark_dissectors/openflow
make | make install


명령어 이해:
sudo apt-get install git-core automake m4 pkg-config libtool gcc vim
설치전 기본 APT를 설치한다

git clone git://openflow.org/openflow.git
오픈플로우 폴더를 현재 위치에 복사한다.

cd openflow
오픈플로우 폴더로 들어온다

git fetch
git 목록을 가져온다

./boot.sh
파일을 복사하는 boot.sh 명령어.

./configure
환경설정을 하는 명령어

make | make install
make 소스를 컴파일 make install 은 설치

regress/scripts/install_deps.pl
사용자의 OS등의 환경을 찾아내어 무슨 행동을 하는 ???

ipv6가 켜져있으면 오픈플로우 과정중 오류가 날 수 있음으로 ipv6를 닫아 주는 명령어 시작,

apt-get remove avahi-daemon
간단하게 네트워크 공유 상태를 갱신해주는 녀석인데 지운다.

vim /etc/sysctl.conf
sysctl.conf 파일을 열어 편집

내용추가
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.diable_ipv6 = 1
ipv6를 사용안함


vim /etc/modprobe.d/blacklist.conf
내용추가
blacklist net-pf-10
blacklist ipv6



reboot
컴퓨터 재부팅 명령어

cd ~

cp /home/home/openflow/regress/scripts/env_vars .
cp는 copy명령어 env_vars 파일을 ~ 위치에 복사

vim env_vars (에서 패스 잡아주세용)

source ~/env_vars
env_vars에 있는 명령들을 읽어서 실행

/sbin/ifconfig | more
로 확인

cd /home/유저폴더/openflow/udatapath
ofdatapath punix:/var/run/dp0.sock -i eth0, eth4(띄우지말고 컨트롤러+br부분빼고 다 추가)
오픈플로우 시작전 데이터패스를 잡아준다

새창 터미널 띄워서

su
password입력

cd openflow/secchan
ofprotocol unix:/var/run/dp0.sock tcp:1.1.1.1:6633
만들어진 데이터 패스를 기반으로 컨트롤러와 연결