1. 程式人生 > >基於centos搭建OVS

基於centos搭建OVS

一 安裝配置

 

1、安裝依賴包

# yum -y install wget openssl-devel kernel-devel

2.安裝開發工具

# yum groupinstall "Development Tools"

3.新增使用者:

# adduser ovswitch

4.切換使用者並跳轉至使用者資料夾

# su - ovswitch

5.建立編譯目錄

# mkdir -p ~/rpmbuild/SOURCES

6.進入目錄

# cd ~/rpmbuild/SOURCES

7.下載原始碼:

# wget http://openvswitch.org/releases/openvswitch-2.3.1.tar.gz

8.解壓:

# tar xfz openvswitch-2.3.1.tar.gz

9.從spec檔案中刪除openvswitch-kmod的依賴包,並建立一個新的spec檔案:

# sed 's/openvswitch-kmod, //g' openvswitch-2.3.1/rhel/openvswitch.spec > openvswitch-2.3.1/rhel/openvswitch_no_kmod.spec

10.開始編譯:

# rpmbuild -bb --without check /home/ovswitch/rpmbuild/SOURCES/openvswitch-2.3.1/rhel/openvswitch_no_kmod.spec

可能出現錯誤

error: File /home/ovswitch/rpmbuild/SOURCES/openvswitch-2.3.0.tar.gz: No such file or directory

解決辦法:檢查openvswitch-2.3.1.tar.gz檔案目錄是否正確。

11.退出當前使用者使用root:

# exit

12安裝編譯生成的rpm檔案:

# yum localinstall /home/ovswitch/rpmbuild/RPMS/x86_64/openvswitch-2.3.1-1.x86_64.rpm

13.啟動服務:

# systemctl start openvswitch.service

可能出現問題:服務起不起來

 

解決辦法:

 

# yum install policycoreutils-python.x86_64 0:2.2.5-11.el7

# mkdir /etc/openvswitch

# semanage fcontext -a -t openvswitch_rw_t "/etc/openvswitch(/.*)?"

# restorecon -Rv /etc/openvswitch

再重啟啟動服務

【問題】

服務啟不起來,報如下錯誤:

【解決方法】

殺死所有ovs的程序,然後重啟服務

# ps aux | grep ovs*

# kill -9 {程序ID}

# systemctl start openvswitch.service

 

14.檢查服務狀態

#systemctl -l status openvswitch.service

 

 

二 常用操作

 

以下操作都需要root許可權執行,在所有命令中br0表示網橋名稱,eth0為網絡卡名稱。

新增網橋:

#ovs-vsctl add-br br0

列出open vswitch中的所有網橋:

#ovs-vsctl list-br

判斷網橋是否存在

#ovs-vsctl br-exists br0

將物理網絡卡掛接到網橋:

Eg:想把物理網絡卡eth0掛接到網橋bro上

1.修改網絡卡eth0檔案

#Vi /etc/sysconfig/network-scripts/ifcfg-eth0

修改內容如下:

TYPE=Ethernet

BOOTPROTO=dhcp

DEVICE=eth0(改為自己網絡卡名字)

ONBOOT=yes

2.把網絡卡設定為動態自動獲取地址模式  

# vi/etc/sysconfig/network-scripts/ifcfg-br0

TYPE=bridge

BOOTPROTO=static

DEVICE=br0

ONBOOT=yes

IPADDR=10.10.3.103(改為自己的IP)

NETMASK=255.255.255.0

GATEWAY=10.10.3.254

ifcfg-br0是一個openvswitch的連線外網的bridge

3.將網路介面eth0掛接到網橋br0上

#ovs-vsctl add-port br0 eth0(配置完需要重啟系統)

列出網橋中的所有埠:

#ovs-vsctl list-ports br0

列出所有掛接到網絡卡的網橋:

#ovs-vsctl port-to-br eth0

檢視open vswitch的網路狀態:

#ovs-vsctl show

刪除網橋上已經掛接的網口:

#ovs-vsctl del-port br0 eth0

刪除網橋:

#ovs-vsctl del-br br0