加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > 教程文章 > 前沿研究 > 软件定义网络

CentOS 下使用 openvswitch

时间:2014-03-07 16:08:24  来源:  作者:

 源码安装

参考:

安装前需安装软件包:

# yum install gcc rpm-build openssl-devel redhat-rpm-config -y

下载并编绎安装 openvswitch:

# wget http://openvswitch.org/releases/openvswitch-2.0.0.tar.gz
# tar xf openvswitch-2.0.0.tar.gz
# cd openvswitch-2.0.0
# mkdir -p ~/rpmbuild/SOURCES
# cp ../openvswitch-2.0.0.tar.gz ~/rpmbuild/SOURCES/
# cp rhel/openvswitch-kmod.files ~/rpmbuild/SOURCES/
# rpmbuild -bb rhel/openvswitch.spec
# rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec

我尝试的 2.0.0 版本, 最后一步编绎有错误。

参考: http://n40lab.wordpress.com/2014/01/11/centos-6-5-openvswitch-1-9-3-lts-installation/

git 源码安装

上面的安装方案适合 1.9.3 版本的软件包,我测试 2.0.0 会有错误。后来 google 上查到一些信息,就尝试从 git 源编绎。

参考: Installing OpenVSwitch on CentOS 6 (6.5)

yum install kernel-headers kernel-devel gcc make python-devel openssl-devel kernel-devel, graphviz kernel-debug-devel automake rpm-build redhat-rpm-config libtool git

cd /root/
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.64.tar.gz
tar xvf autoconf-2.64.tar.gz
cd autoconf-2.64/
./configure
make
make install

cd /root/
git clone git://git.openvswitch.org/openvswitch
cd openvswitch/
./boot.sh;./configure; make dist
mkdir /root/rpmbuild/SOURCES
cp openvswitch*.tar.gz /root/rpmbuild/SOURCES/
rpmbuild -bb rhel/openvswitch.spec
rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec
rpm -ivh /root/rpmbuild/RPMS/*.rpm

编绎成功!

常见问题

rpmbuild的时候出错 Dependency tokens must begin with alpha-numeric, ‘_’ or ‘/’: BuildRequires: %kernel_module_package_buildreqs

参考: http://www.soliddb.org/2010/07/16/88/

安装 redhat-rpm-config 包即可

error: conflicting types for 'netdev_features_t'

参考: http://n40lab.wordpress.com/2014/01/11/centos-6-5-openvswitch-1-9-3-lts-installation/

使用

启用 openvswitch

注意,我们禁用 NetworkManager 服务,使用 network 服务:

# chkconfig NetworkManager off
# chkconfig network on
# service NetworkManager stop
# service network start

启动 OVS 服务,首次使用添加 br0 网口:

# /etc/init.d/openvswitch start
# ovs-vsctl add-br br0

编辑 /etc/sysconfig/network-scripts/ifcfg-br0 文件,如下:

DEVICE=br0
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=192.168.1.15
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
HOTPLUG=no

编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 文件,如下:

DEVICE=eth0
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br0
BOOTPROTO=none
HOTPLUG=no

重启 network 服务:

# /etc/init.d/network restart

在 KVM 命令行具中使用 OVS

参考: How to Use Open vSwitch with KVM

CentOS 下需要使用 tunctl 命令, 安装:

# yum install bridge-utils tunctl

创建 /etc/ovs-ifup 脚本 :

#!/bin/sh

switch='br0'
/sbin/ifconfig $1 0.0.0.0 up
ovs-vsctl add-port ${switch} $1

创建 /etc/ovs-ifdown 脚本 :

#!/bin/sh

switch='br0'
/sbin/ifconfig $1 0.0.0.0 down
ovs-vsctl del-port ${switch} $1

给脚本添加可执行权限 :

# chmod a+x /etc/ovs-if*

启动虚拟机 :

# /usr/libexec/qemu-kvm -m 2048 -name WIN7-TEST -drive file=/data/jian/vos/win7.img -vga qxl -spice port=5910,addr=0.0.0.0,disable-ticketing -usbdevice tablet -soundhw ac97 -device virtio-serial -chardev spicevmc,id=vdagent,name=vdagent -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 -net nic,model=rtl8139 -net tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown

现在可以使用 spice client 连接机器的 5910 端口。

使用 virtio

参考: kvm安装windows xp、windows7时磁盘使用virtio驱动

加截驱动 iso :

-drive file=/path/to/virtio-win-VERSION.iso,index=1,media=cdrom -boot once=d 

我的 KVM 安装 OS 示例 :

/usr/libexec/qemu-kvm -m 2048 -smp 2 -name WIN7-TEST -drive file=/data/jian/vos/win7_x64.img,if=virtio -vga qxl -spice port=5910,addr=0.0.0.0,disable-ticketing -usbdevice tablet -soundhw ac97 -device virtio-serial -chardev spicevmc,id=vdagent,name=vdagent -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 -net nic,model=virtio -net tap,script=/data/jian/ooclab/kvm/scripts/ovs-ifup,downscript=/data/jian/ooclab/kvm/scripts/ovs-ifdown -drive file=/data/isos/windows/cn_windows_7_ultimate_with_sp1_x64_dvd_618537.iso,index=0,media=cdrom -drive file=/data/virtio-win-0.1-74.iso,index=1,media=cdrom -boot once=d

常用问题

Device 'tap' could not be initialized

参考: KVM “qemu-ifup: could not configure /dev/net/tun: Operation not permitted”解决方案

这个问题很常见,我的原因是 ovs-ifup, ovs-ifdown 没有执权限,加上即可:

# chmod a+x ovs-if*

 

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
在CentOS下搭建Android 开发环境
在CentOS下搭建Androi
轻松搭建属于自己的Ubuntu发行版
轻松搭建属于自己的Ub
利用SUSE Studio 打造自己的个性化Linux发行版
利用SUSE Studio 打造
那些采用PHP技术的IT大企业
那些采用PHP技术的IT大
相关文章
    无相关信息
栏目更新
栏目热门