在 Ubuntu 12.04 和 Ubuntu 12.04.2 上安裝如下:
- 安裝 Open vSwitch:
apt-get install openvswitch-brcompat openvswitch-switch
- 嘗試啓動 Open vSwitch:
# /etc/init.d/openvswitch-switch restart * ovs-brcompatd is not running * Killing ovs-vswitchd (6011) * Killing ovsdb-server (6002) * Starting ovsdb-server * Configuring Open vSwitch system IDs * Starting ovs-vswitchd * Enabling gre with iptables
- 結果顯示 brcompat 沒有運行:
sed -i 's/# BRCOMPAT=no/BRCOMPAT=yes/g' /etc/default/openvswitch-switch
- 再次嘗試啓動:
# /etc/init.d/openvswitch-switch restart * ovs-brcompatd is not running * ovs-vswitchd is not running * ovsdb-server is not running FATAL: Error inserting brcompat (/lib/modules/3.5.0-23-generic/updates/dkms/brcompat.ko): Unknown symbol in module, or unknown parameter (see dmesg) * Inserting brcompat module Module has probably not been built for this kernel. Install the openvswitch-datapath-source package, then read /usr/share/doc/openvswitch-datapath-source/README.Debian FATAL: Error inserting brcompat (/lib/modules/3.5.0-23-generic/updates/dkms/brcompat.ko): Unknown symbol in module, or unknown parameter (see dmesg) * Inserting brcompat module
這樣的錯誤信息會出現在 Ubuntu-12.04.2 系統上, 我們來強制加載模塊:
# /etc/init.d/openvswitch-switch force-reload-kmod FATAL: Error inserting brcompat (/lib/modules/3.5.0-23-generic/updates/dkms/brcompat.ko): Unknown symbol in module, or unknown parameter (see dmesg) * Inserting brcompat module Module has probably not been built for this kernel. Install the openvswitch-datapath-source package, then read /usr/share/doc/openvswitch-datapath-source/README.Debian Apr 20 17:10:50|00001|stream_unix|ERR|/tmp/stream-unix.10666.0: connection to /var/run/openvswitch/db.sock failed: No such file or directory Apr 20 17:10:50|00002|reconnect|WARN|unix:/var/run/openvswitch/db.sock: connection attempt failed (No such file or directory) Apr 20 17:10:51|00003|stream_unix|ERR|/tmp/stream-unix.10666.1: connection to /var/run/openvswitch/db.sock failed: No such file or directory Apr 20 17:10:51|00004|reconnect|WARN|unix:/var/run/openvswitch/db.sock: connection attempt failed (No such file or directory) Apr 20 17:10:53|00005|stream_unix|ERR|/tmp/stream-unix.10666.2: connection to /var/run/openvswitch/db.sock failed: No such file or directory Apr 20 17:10:53|00006|reconnect|WARN|unix:/var/run/openvswitch/db.sock: connection attempt failed (No such file or directory) Alarm clock * Detected internal interfaces: * ovs-brcompatd is not running * ovs-vswitchd is not running * ovsdb-server is not running * Saving interface configuration * Removing openvswitch module * Inserting openvswitch module * Inserting brcompat module * Starting ovsdb-server * Configuring Open vSwitch system IDs * Starting ovs-vswitchd * Starting ovs-brcompatd * Restoring interface configuration * iptables already has a rule for gre, not explicitly enabling
- 現在 brcompat 模塊就正常加載上了:
# lsmod | grep br brcompat 13513 0 openvswitch 84124 1 brcompat
經過測試,在 Ubuntu-12.04 系統上直接安裝基本上沒有任何問題,如果出現問題就使用 force-reload-kmod。
使用 openvswitch 增加網橋 br0 並把網絡接口 eth0 加入 br0:
# ovs-vsctl add-br br0 # ovs-vsctl add-port br0 eth0 # ovs-vsctl show a23c503b-bfbe-4646-8738-a7f69e5d69a0 Bridge "br0" Port "eth0" Interface "eth0" Port "br0" Interface "br0" type: internal ovs_version: "1.4.0+build0"
配置網橋 br0 和網絡接口 eth0(和用 bridge-utils 工具配置的時候一樣,不同的是這裏用更先進的 openvswitch/brcompat_mod 替換了 bridge-utils):
# ifconfig eth0 0 # ifconfig br0 192.168.2.45 netmask 255.255.255.0 # route add default gw 192.168.1.1 br0
爲了保存網絡設置,最好把上面的配置寫到 /etc/network/interfaces 裏:
# vi /etc/network/interfaces auto lo iface lo inet loopback auto br0 iface br0 inet static address 192.168.2.45 netmask 255.255.255.0 gateway 192.168.2.1 auto eth0 iface eth0 inet manual up ifconfig $IFACE 0.0.0.0 up down ifconfig $IFACE down