基於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