一、安装openvswitch出现的问题
1、在执行命令之前,最好执行“sudo apt-get update/grade”进行包更新/升级,可以避免不必要的错误发生。
2、若在执行“./configure”之后,执行编译并安装OVS“make && make install”出现“版本不支持”,参见官方OVS版本与Linux Kernel版本的对应关系。http://docs.openvswitch.org/en/latest/faq/releases/
二、安装环境:ubuntu 16.04,openvswitch-2.6.0
按照安装文档一步步安装,make && make install 命令成功后,执行insmod datapath/linux/openvswitch.ko
,将路径插入kernel内核时,遇到问题
insmod: ERROR: could not insert moudle datapath/linux/openvswitch.ko: Unknown symbol in moudle
解决办法:首先执行命令modinfo datapath/linux/openvswitch.ko
,出现如下信息:
可以看到,openvswitch.ko依赖于
nf_conntrack, nf_nat,nf_defrag_ipv6, libcrc32c, nf_nat_ipv6,gre,nf_nat_ipv4
这几个文件,问题就在于这几个文件没有被载入!
modprobe nf_conntrack && modprobe nf_nat && modprobe nf_defrag_ipv6 && modprobe libcrc32c && modprobe nf_nat_ipv6 && modprobe gre && modprobe nf_nat_ipv4
执行上述命令,然后再执行insmod datapath/linux/openvswitch.ko
即可。
三、OVS需要的进程未启动(文件找不到意味着未产生该文件或未安装)
重装好ovs后直接操作一切正常,但是重启虚拟机后会出现:
ovs-vsctl: unix:/usr/local/var/run/openvswitch/db.sock: database connection failed (No such file or directory)
ovs-vsctl exited with code 1
* Error connecting to ovs-db with ovs-vsctl
Make sure that Open vSwitch is installed, that ovsdb-server is running, and that
“ovs-vsctl show” works correctly.
You may wish to try “service openvswitch-switch start”.
无法正确添加ovs,原因是:ovs 需要 the ovsdb, ovs-vswitchd, ovs-vsctl, 但是关机后它们会默认关闭,所以无法生成相关的文件导致无法正常启动。
所以解决方法是每次重新开机都运行(run as root):
ovsdb-server --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
ovs-vsctl --no-wait init
ovs-vswitchd --pidfile --detach