OVS安装

安装准备

  • GNU make C 编译器,如:GCC 4.6或更高版本;Clang 3.4或更高版本;MSVC 2013。有关其他Windows构建说明,请参阅在Windows上打开vSwitch。
  • libssl,来自OpenSSL,是可选的,但如果您打算将Open vSwitch连接到OpenFlow控制器,则建议使用它。libssl用于在从OpenvSwitch到OpenFlow控制器的连接中建立机密性和真实性。如果安装了libssl,那么Open vSwitch将自动构建并支持它。
  • 由Steve Grubb编写的libcap-ng是可选的,但推荐使用。作为 具有被删除root权限
    的非根用户运行OVS后台进程是必需的。如果安装了libcap-ng,那么Open vSwitch将自动构建并支持它。
  • Python 2.7。您还必须拥有Python six库版本1.4.0或更高版本。
  • Unbound库(来自http://www.unbound.net)是可选的,但如果您希望在指定OpenFlow和OVSDB远程时启用ovs-vswitchd和其他实用程序使用DNS名称,则建议使用。如果unbound库已经安装,那么Open
    vSwitch将自动构建并支持它。环境变量OVS_RESOLV_CONF可用于指定DNS服务器配置文件(Linux上的默认文件是/etc/resol_conf)。
  • 在Linux上,您可以选择编译OpenvSwitch发行版附带的内核模块,或者使用构建在Linux内核(3.3或更高版本)中的内核模块。请参阅OpenvSwitch FAQ问题“作为上游Linux内核的一部分而发布的OpenvSwitch内核数据路径中有哪些特性是不可用的?”以获取更多有关这种权衡的信息。您还可以使用仅用于用户空间的实现,但在特性和性能上要付出一些代价。

要在Linux上编译内核模块,还必须安装以下软件:

  • 支持的Linux内核版本。对于ingress police的可选支持,您必须启用内核配置选项NET_CLS_BASIC、NET_SCH_INGRESS和NET_ACT_POLICE,这些选项可以是内置的,也可以是作为模块启用的。NET_CLS_POLICE已经过时,不需要了。
  • 在3.11之前的内核中,对于IP上的GRE隧道(NET_IPGRE),不能加载或编译ip_gre模块。
  • 要使用Open vSwitch配置HTB或HFSC服务质量,必须启用相应的配置选项。
  • 要对TAP设备使用Open vSwitch支持,必须启用CONFIG_TUN。
  • 要构建内核模块,您需要与构建内核所用的GCC版本相同。
  • 与模块要运行的Linux内核映像对应的内核构建目录。例如,在Debian和Ubuntu下,每个包含内核二进制文件的linux-image包都有一个相应的linux-headers包,该包具有所需的构建基础结构。

如果您使用的是Git树或快照(而不是发行版tarball),或者修改Open vSwitch构建系统或数据库模式,您还需要以下软件:

  • Autoconf 2.63或更高版本。
  • Automake 1.10或更高版本。
  • libtool 2.4或更高版本。(旧版本也可能可以。)

安装命令

apt-get install git
apt-get install autoconf automake libtool
apt-get install openssl
apt-get install libssl-dev
apt-get install make
apt-get install make-guile
apt-get install python-six 如果没有安装python,请先安装python 2.7 or 3
sudo apt-get install libcap-ng-dev 可选,非root用户使用root权限运行ovs后台程序时推荐安装

sudo apt install gcc uml-utilities libtool build-essential pkg-config linux-headers-`uname –r` libncurses5-dev libncursesw5-dev libssl-dev bc  make python-six

获取源码

wget http://openvswitch.org/releases/openvswitch-2.10.1.tar.gz.
tar -xvf openvswitch-2.10.1.tar.gz
cd openvswitch-2.10.1
#或者
git clone https://github.com/openvswitch/ovs.git
cd ovs

编译安装

下面命令需使用sudo或进入root用户

./boot.sh
./configure --with-linux=/lib/modules/$(uname -r)/build #如需编译内核则需要使用 --with-linux参数
make
make install #安装用户态程序
make modules_install #安装内核模块

内核模块加载配置

下面的代码可以使ovs启动时加载自己编译的内核模块,而不是linux自带的openvswitch.ko

config_file="/etc/depmod.d/openvswitch.conf"
for module in datapath/linux/*.ko; do
  modname="$(basename ${module})"
  echo "override ${modname%.ko} * extra" >> "$config_file"
  echo "override ${modname%.ko} * weak-updates" >> "$config_file"
  done
depmod -a

加载内核模块

/sbin/modprobe openvswitch

modinfo openvswitch 可查看openvswitch依赖的模块
modprobe -D openvswitch 可查看加载的是linux自带的openvswitch.ko模块还是自己编译的
/sbin/lsmod | grep openvswitch 查看安装是否成功

启动ovs

方法1

export PATH=$PATH:/usr/local/share/openvswitch/scripts
ovs-ctl start --system-id=random #启动vswitchd

方法2

#在启动ovsdb-server本身之前,配置一个它可以使用的数据库:
mkdir -p /usr/local/etc/openvswitch
ovsdb-tool create /usr/local/etc/openvswitch/conf.db \
    vswitchd/vswitch.ovsschema

mkdir -p /usr/local/var/run/openvswitch
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 --log-file
#上面这一段有点问题,会提示.log文件不存在,可以参考下面一段
ovsdb-server /etc/openvswitch/conf.db \
-vconsole:emer -vsyslog:err -vfile:info \
--remote=punix:/usr/local/var/run/openvswitch/db.sock \
--private-key=db:Open_vSwitch,SSL,private_key \
--certificate=db:Open_vSwitch,SSL,certificate \
--bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
--no-chdir --detach --monitor \
--log-file=/usr/local/var/log/openvswitch/ovsdb-server.log \
--pidfile=/usr/local/var/run/openvswitch/ovsdb-server.pid 

#使用vs-vsctl初始化数据库
ovs-vsctl --no-wait init

#启动主Open vSwitch后台进程,告诉它连接到同一个Unix域套接
ovs-vswitchd --pidfile --detach --log-file
#或
ovs-vswitchd unix:/usr/local/var/run/openvswitch/db.sock \
-vconsole:emer -vsyslog:err -vfile:info --mlockall --no-chdir \
--log-file=/usr/local/var/log/openvswitch/ovs-vswitchd.log \
--pidfile=/usr/local/var/run/openvswitch/ovs-vswitchd.pid \
--detach --monitor

卸载内核模块

ovs-ctl stop
ovs-dpctl show
ovs-dpctl del-dp ovs-system
rmmod  openvswitch

更多内容可参考官网

http://docs.openvswitch.org/en/latest/intro/install/general/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值