Ubuntu16.04安装包方式安装Open vSwitch

下载安装Open vSwitch

准备工作

apt-get update
apt-get install build-essential

下载解压安装包

下载Open vSwitch安装包:Open vSwitch官网下载地址
这里我下载的是最新的2.10.1版本:

wget https://www.openvswitch.org/releases/openvswitch-2.10.1.tar.gz
tar -xzvf openvswitch-2.10.1.tar.gz

构建基于Linux内核的交换机

cd openvswitch-2.10.1
./configure --with-linux=/lib/modules/"uname -r"/build
# 注意这条命令中的"uname -r"是输出当前系统的版本号
# 比如我执行"uname -r"后的结果为4.4.0-21-generic,那么我应该执行的命令即为:
# ./configure --with-linux=/lib/modules/4.4.0-21-generic/build

编译安装Open vSwitch

make
make install

加载openvswitch.ko模块(遇到错误)

如果需要OVS支持VLAN功能,还需要加载openvswitch.ko模块,如果不需要,此步可以忽略。

modprobe gre
insmod datapath/linux/openvswitch.ko

我在执行第二条命令时遇到了如下错误:

insmod: ERROR: could not insert module openvswitch.ko: Unkown symbol in module

google了几个方法都没能成功解决问题,有人说是bug,也有说是因为兼容性问题,因为我暂时用不到VLAN功能,就暂时跳过此步骤了。

安装并加载构建的内核模块

make modules_install
/sbin/modprobe openvswitch

使用ovsdb工具初始化配置数据库

ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema
# 在执行此命令时报错没有此文件夹,我直接手动创建了对应的文件夹:
# mkdir -p /usr/local/etc/openvswitch

启动Open vSwitch

启动ovsdb-server配置数据库:

ovsdb-server -v --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --private-key=db:Open_vSwitch,SSL,private_key --certificate=db:Open_vSwitch,SSL,certificate --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert --pidfile --detach --log-file
# 这里同样报错没有此文件夹,同样手动创建了相应的文件夹

首次用ovsdb-tool创建数据库时需用ovs-vsctl命令初始化下数据库:

ovs-vsctl --no-wait init

启动OVS主进程:

ovs-vswitchd --pidfile --detach --log-file

查看OVS进程是否启动:

ps aux|grep ovs

查看所安装OVS的版本号:

ovs-vsctl --version

至此,Open vSwitch就安装完成了,安装过程中的几个小问题本次没有解决,希望之后能找到解决办法。最后再补充一个更简单的方式——使用apt install的方式直接安装:

apt-get install openvswitch-switch