我是靠谱客的博主 平淡鸡,最近开发中收集的这篇文章主要介绍openVswitch 在centos下安装,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

OpenvSwitch概念:用作虚拟交换机,传递虚拟机VM之间的流量,以及实现VM和外界网络的通信。

OpenvSwitch数据路径需要桥接支持(CONFIG_BRIDGE)作为内核模块构建。(这在Linux发行版提供的内核中是常见的)桥接模块不能加载或使用。如果桥模块正在运行(使用“lsmod | grep bridge”进行检查),则在启动数据路径之前必须先删除它(“rmmod bridge”)。

安装openvswitch-2.5.0

安装依赖包:

yum -y install make gcc openssl-devel autoconf automake rpm-build redhat-rpm-config

yum -y install python-devel openssl-devel kernel-devel kernel-debug-devel libtool wget

预处理

mkdir -p ~/rpmbuild/SOURCES

wget http://openvswitch.org/releases/openvswitch-2.5.0.tar.gz

cp openvswitch-2.5.0.tar.gz ~/rpmbuild/SOURCES/

tar xfz openvswitch-2.5.0.tar.gz

sed ‘s/openvswitch-kmod,
//g’ openvswitch-2.5.0/rhel/openvswitch.spec > openvswitch-2.5.0/rhel/openvswitch_no_kmod.spec

构建RPM包

rpmbuild -bb –nocheck~/openvswitch-2.5.0/rhel/openvswitch_no_kmod.spec

安装:

yum localinstall ~/ rpmbuild/RPMS/x86_64/openvswitch-2.5.0-1.x86_64.rpm

5.启动相关服务:
操作前先cd

cd ~

systemctl start openvswitch.service

如果需要使用openvswitch进行网络配置请看以下步骤:

配置openvswitch

注意:在禁用内核的bridge时候,要先禁止防火墙的开机启动。
centos7以后的版本为:

systemctl stop firewalld
systemctl disable firewalld

[root@localhost ~]# lsmod |grep bridge

bridge                119562  1 ebtable_broute
stp                    12976  1 bridge
llc                    14552  2 stp,bridge

此时可以发现已经有bridge启动了,执行rmmod bridge会报错

rmmod: ERROR: Module bridge is in use by: ebtable_broute

解决方法:
service etbales status

Redirecting to /bin/systemctl status  ebtables.service
● ebtables.service - Ethernet Bridge Filtering tables
   Loaded: loaded (/usr/lib/systemd/system/ebtables.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

发现ebtables.service 的路径

vim /usr/lib/systemd/system/ebtables.service

[Unit]
Description=Ethernet Bridge Filtering tables

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/libexec/ebtables start
ExecStop=/usr/libexec/ebtables stop

[Install]
WantedBy=multi-user.target

执行 /usr/libexec/ebtables stop
然后再rmmod bridge 即可删除内核的桥模块
但是这样重启之后系统会再自动开启,所以要加入黑名单,防止系统重启后bridge加载

vim /etc/modprobe.d/blacklist.conf

blacklist bridge

将Open vSwitch在内核中加载

[root@localhost ~]# find / -name * openvswitch.ko *
/usr/lib/modules/3.10.0-327.el7.x86_64/kernel/net/openvswitch/openvswitch.ko

将openvswith 在内核中加载

insmod /usr/lib/modules/3.10.0-327.el7.x86_64/kernel/net/openvswitch/openvswitch.ko

使Open vSwitch自动启动

# cd /usr/lib/modules/3.10.0-327.el7.x86_64/kernel/net/openvswitch/
# chmod a+x openvswitch.ko
# depmod -a

vim /etc/sysconfig/modules/openvswitch.modules

增加以下内容:

#!/bin/sh
if [ $(grep -c openvswitch /proc/modules) -eq 0 ]; then
modprobe -b openvswitch > /dev/null 2>&1
fi
if [ $(grep -c brcompat /proc/modules) -eq 0 ]; then
modprobe -b brcompat > /dev/null 2>&1
fi

修改文件权限

chmod 755 /etc/sysconfig/modules/openvswitch.modules

初始化OVS数据库与服务器

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

# mkdir -p /etc/openvswitch
# ovsdb-tool create  /etc/openvswitch/conf.db $HOME/rpmbuild/BUILD/openvswitch-2.5.0/vswitchd/vswitch.ovsschema

在启动OVS之前,我们需要先启动ovsdb-server配置数据库。注意后面的命令大部分是由两个短“-”组成的。

# ovsdb-server -v --remote=punix:/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

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

# ovs-vsctl --no-wait init

 启动OVS主进程
# ovs-vswitchd --pidfile  --detach

我们可以通过如下命令查看所安装OVS的版本号。


[root@localhost ~]# ovs-vsctl --version
ovs-vsctl (Open vSwitch) 2.5.0
Compiled May 24 2017 08:34:21
DB Schema 7.12.1


如果到这步你都没有问题,那么恭喜,你已经成功安装并启动了OVS 2.5.0。

利用openvswitch配置网络桥接

vim /etc/sysconfig/network-scripts/ifcfg-enps10

BOOTPROTO=none
NAME=enp1s0
DEVICE=enp1s0
ONBOOT=yes
OVS_BRIDGE=br0
DEVICETYPE=ovs
TYPE=OVSPort
HWADDR=dc:4a:3e:42:7f:e4
DNS1=8.8.8.8
DNS2=8.8.4.4
IPADDR=192.168.77.102
NETMASK=255.255.255.0

vim /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
NAME=br0
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=192.168.77.102
GATEWAY=192.168.77.254
NETMASK=255.255.255.0
HOTPLUG=no
DNS1=8.8.8.8
DNS2=8.8.4.4

最后

以上就是平淡鸡为你收集整理的openVswitch 在centos下安装的全部内容,希望文章能够帮你解决openVswitch 在centos下安装所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部