How to Install and Run OpenvSwitch on CentOS 6.4x64
=========================================================================================================================================
1. Install OpenvSwitch
wget http://openvswitch.org/releases/openvswitch-1.11.0.tar.gz
mkdir -p /root/rpmbuild/SOURCES
cp openvswitch-1.11.0.tar.gz /root/rpmbuild/SOURCES
cd /root/rpmbuild/SOURCES
tar -zxvf openvswitch-1.11.0.tar.gz
cd openvswitch-1.11.0
2. vi rhel/openvswitch-kmod-rhel6.spec
搜尋Open
vSwitch Linux kernel module.,下一行增加以下這三行
%files
/lib/modules/2.6.32-358.18.1.el6.x86_64/extra/openvswitch/openvswitch.ko
/etc/depmod.d/openvswitch.conf
3. vi rhel/openvswitch-kmod-rhel6.spec.in
/lib/modules/2.6.32-358.18.1.el6.x86_64/extra/openvswitch/openvswitch.ko
/etc/depmod.d/openvswitch.conf
4. Configure OpenvSwitch
./boot.sh
./configure
make dist
5. 創建 rpm 安裝包
rpmbuild -bb rhel/openvswitch.spec
rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec
6. Install rpm OpenvSwitch 安裝包
cd /root/rpmbuild/RPMS/x86_64
rpm -ivh openvswitch-1.11.0-1.x86_64.rpm openvswitch-kmod-1.11.0-1.el6.x86_64.rpm
rpm -ivh kmod-openvswitch-1.11.0-1.el6.x86_64.rpm
7. Start OpenvSwitch
modprobe openvswitch
/etc/init.d/openvswitch start
8.Configure OpenvSwitch interface
vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
BOOTPROTO=none
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=ovs0
ONBOOT=yes
IPV6INIT=yes
IPV6_AUTOCONF=no
ONBOOT=yes
HWADDR=00:22:B0:03:D0:4B
vi /etc/sysconfig/network-scripts/ifcfg-ovs0
DEVICE=ovs0
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=163.22.21.83
NETMASK=255.255.255.0
GATEWAY=163.22.21.254
HOTPLUG=no
9. Check status
(SRC=192.168.1.0/24 and DST=192.168.1.0/24 為 normal)
ovs-ofctl add-flow ovs0 dl_type=0x0800, nw_src=192.168.1.0/24, nw_dst=192.168.1.0/24,
actions=normal
(檢查是否比對到rule)
ovs-ofctl dump-ports ovs0
10. OpenvSwitch and Controller(RYU)連線
ovs-vsctl set-controller ovs0 tcp:10.21.10.47:6633
11. 其它常用指令
說明 | 指令 |
ovs-vsctl 使用:(查詢和更新 vswitch 配置) | |
增加 ovs0 虛擬網卡 | ovs-vsctl add-br ovs0 |
刪除 ovs0 虛擬網卡 | ovs-vsctl del-br ovs0 |
列出所有虛擬網卡 | ovs-vsctl list-br |
判斷虛擬交換器 ovs0 是否存在 | ovs-vsctl br-exists ovs0 |
列出掛在虛擬網卡 ovs0 上所有網路介面 | ovs-vsctl list-ports ovs0 |
將網路介面 eth1 掛在虛擬網卡 ovs0 上 | ovs-vsctl add-port ovs0 eth1 |
刪除網路介面 eth1 掛在虛擬網卡 ovs0 上 | ovs-vsctl del-port ovs0 eth1 |
列出已經接在 eth1 網路介面的虛擬網卡 | ovs-vsctl port-to-br eth1 |
vSwitch 支援版本 | ovs-vsctl set bridge ovs0 protocols=OpenFlow10,OpenFlow12,OpenFlow13 |
ovs-ofctl 使用:(查詢和控制 openflow 交換器和 controller) | |
查看虛擬交換器 ovs0 訊息 | ovs-ofctl show ovs0 |
查看 ovs0 上各交換器 port 狀態 | ovs-ofctl dump-ports ovs0 |
查看 ovs0 上所有 flow 規則 | ovs-ofctl dump-flows ovs0 |
刪除 ovs0 上所有 flow 規則 | ovs-ofctl del-flows ovs0 |
ovs-dpctl 使用:(配置 switch 模組) ovs-dpctl show ovs-dpctl show -sovs-dpctl dump-flows |