视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Openvswitch研发v1.4
2025-09-29 02:15:41 责编:小OO
文档
 

 

 

技  术  文  件

 

 

            技术文件名称:OVS安装部署维护使用说明书

            技术文件编号:

            版        本:V1.4

 

 

 

共XX页

(包括封面)

 

 

 

                           拟  制                     

                           审  核                     

                           批  准                     

 

 

 

 

修改记录

文件编号版本号拟制人/

修改人

拟制/修改日期

更改理由主要更改内容

(写要点即可)

V1.0尹雪蓉2012-6-3

创建
V1.1尹雪蓉2012-6-5修改增加debian中openvswitch的安装方法

V1.2尹雪蓉2012-6-13修改修改了一些bug,增加了vlan实验步骤,删除Debian安装方法,增加ubuntu12.04安装

V1.3尹雪蓉2012-6-19

修改+增加

修改了一些文字描述,增加了Nox部署方法,GRE实验配置测试以及GRE+VLAN实验

V1.4

尹雪蓉2012-6-29修改+增加

增加sFlow、Qos配置

注1:每次更改归档文件(指归档到事业部或公司档案室的文件)时,需填写此表。

注2:文件第一次归档时,“更改理由”、“主要更改内容”栏写“无”。

 

 

1

引言

1.1编写目的

本文档编写目的是详细描述产品OVS安装部署方法,预期的读者和阅读建议预期的读者和阅读建议参见表1.1。

表1.1

读者分类阅读重点备注
实施工程师了解如何操作 
文档工程师全文,为编写用户文档作准备。 
1.2术语、定义

本文使用的专用术语、定义见表1.2。

表1.2 术语

术语/定义

英文对应词含    义

1.3缩略语

本文使用的专用缩略语见表1.3,缩略语已按其第1个字母顺序排列。

表1.3 缩略语

缩略语英文原文中文含义
         

1.4参考资料

1.4.1きりんさん日記: http://saburi380.blogspot.co.uk/

1.4.2Openvswitch-1.4.1中README.RHEL

1.4.3《Network Warrior》中文版

2安装

2.1安装概述

本安装教程主要涉及在CentOS6.2环境下对Openvswitch1.4.1进行编译以及安装,并用Openvswitch(简称OVS)接管Linux系统的网络服务,同时配置VLAN,并对虚拟机进行VLAN划分。

2.2环境配置

一、CentOS环境

操作系统环境:CentOS 6.2

Openvswitch版本号:Openvswitch 1.4.x或者1.5.0

网卡数目:一张网卡,连接的交换机端口设为Trunk缺省模式

二、Ubuntu12.04 环境

 操作系统环境:Ubuntu 12.04 desktop

 版本号:Openvswitch 1.4.0

网卡数目:一张网卡,连接的交换机端口设为Trunk缺省模式

2.3 部署流程

2.3.1  CentOS 6.2编译环境的安装及部署

1、升级CentOS 6.2 (可选)

command:

#yum -y update

2、必要环境包安装

准备安装包: 

    openvswitch-1.4.1.tar.gz

command :

# yum -y install qemu-kvm qemu-kvm-tools make gcc kernel-headers kernel-devel openssl-devel automake rpm-build redhat-rpm-config

2.3.2  CentOS6.2 下Openvswitch编译安装及部署

1、编译openvswitch的rpm包

Command:

    # mkdir -p ~/rpmbuild/SOURCES

    # cd ~/rpmbuild/SOURCES

    # wget http://openvswitch.org/releases/openvswitch-1.4.1.tar.gz

    # cd /var/tmp

    tar xzf ~/rpmbuild/SOURCES/openvswitch-1.4.1.tar.gz

rpmbuild -bb -D `uname -r` openvswitch-1.4.1/rhel/openvswitch.spec

rpmbuild -bb -D `uname -r` openvswitch-1.4.1/rhel/openvswitch-kmod-rhel6.spec

备注:

    紫红色部分为openvswitch源码包,后面版本号可变,改变范围为本手册环境配置部分内容中所支持的各个版本的openvswitch。

2、安装编译完成的rpm包

编译完成的rpm包默认在 ~/rpmbuild/RPMS/x86_目录下,结果如下图所示:

Command:

# cd  ~/rpmbuild/RPMS/x86_

# rpm -ivh *rpm

结果如下图:

备注:

1、确认openvswitch是否安装完成

    chkconfig --list | grep openvswitch

结果如下图:

2、启动openvswitch:

    service openvswitch start

结果如下图:

3、查询openvswitch的状态:

service openvswitch status

结果如下图:

4、查看openvswitch的内核模块:

lsmod | grep openvswitch

结果如下图:

3、添加和删除网卡的脚本

在/etc目录下创建脚本ovs-ifup和ovs-ifdown内容如下所示:

Ovs-ifup:

Ovs-ifdown

将两个文件属性修改为可执行文件:

# chmod +x /etc/ovs-ifup

# chmod +x /etc/ovs-ifdown

2.3.3  Ubuntu12.04 下Openvswitch编译安装及部署

1、环境配置

# apt-get update && apt-get dist-upgrade

2、下载依赖包

# apt-get install aptitude apt-show-versions ntp ntpdate vim kvm libvirt-bin vlan virtinst virt-manager virt-viewer openssh-server iperf pv openvswitch-controller openvswitch-brcompat openvswitch-switch openvswitch-datapath-source

3、启动openvswitch-switch

# service openvswitch-switch start

2.3.4  NoX 的编译与安装部署

1、系统环境与部署架构

    系统环境:

        Ubuntu 10.04 或者11.04 desktop

    部署架构:

        Nox部署在服务器中某一个虚拟机上

2、NoX的编译    

1、依赖包安装

#cd /etc/apt/sources.list.d

#sudo wget http://openflowswitch.org/downloads/debian/nox.list

#sudo apt-get update

#sudo apt-get install nox-dependencies

# apt-get install python-qt4 python-simplejson

#apt-get install python-qt4-sql

2、软件包编译安装

#git clone git://noxrepo.org/nox

#cd nox

#git checkout -b destiny origin/destiny

#./boot.sh

#mkdir build/

#cd build/

#../configure

#make -j 5

3、安装结果图:

3常用虚机操作

3.1创建和启动虚拟机

安装基础环境:(vnc环境)

# yum –y install tigervnc.X86_

3.1.1  创建虚拟机

(1)创建虚机镜像(例:创建一个5G的空img)

    # qemu-img create XXXX.img 5G

(2)启动镜像并安装操作系统

    # /usr/libexec/qemu-kvm -m 1024 -hda XXXX.img -boot order=d -cdrom YYYY.iso -vnc :0

3.1.2  启动虚拟机

(1) 启动虚拟机:

/usr/libexec/qemu-kvm -m 1024 –net nic –net tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown –drive file=XXXX.img,boot=on -vnc 0.0.0.0:X  –usbdevice tablet

3.2VLAN配置

准备工作:(假设环境)已有的VLAN为60,61,62

1、修改ifcfg-eth0的配置文件,使它的BOOTPROTO为none (不要给eth0配置ip地址,以免和ovs发生冲突)

2、将vlan模块加入linux

# modprobe 8021q

3.2.1  Host VLAN配置 (以vlan 号61为例)

1、修改ovs中br0的配置文件(ifcfg-br0)

==> ifcfg-br0 <== (br0配置的地址可连接)

DEVICE=br0

ONBOOT=yes

DEVICETYPE=ovs

TYPE=OVSBridge

BOOTPROTO=static

IPADDR=A.B.C.D (例:10.10.60.244)

NETMASK=X.Y.Z.0 (例:255.255.255.0)

HOTPLUG=no

2、修改eth0的配置文件

==> ifcfg-eth0 <== (将eth0桥接到br0)

DEVICE=eth0

ONBOOT=yes

DEVICETYPE=ovs

TYPE=OVSPort

OVS_BRIDGE=br0

BOOTPROTO=none

HOTPLUG=no

3、修改eth0.61的配置文件

==> ifcfg-eth0.61 <==

DEVICE= eth0.61

ONBOOT=yes

DEVICETYPE=ovs

TYPE=OVSIntPort

BOOTPROTO=none

IPADDR=A.B.C.D (例:192.168.61.1)

NETMASK=X.Y.Z.0 (例:255.255.255.0)

OVS_BRIDGE=br0

OVS_OPTIONS="tag=61"

OVS_EXTRA="set Interface $DEVICE external-ids:iface-id=$(hostname -s)-$DEVICE-vif"

HOTPLUG=no

4、重启网络服务

#/etc/init.d/network restart

5、添加路由信息,设置网关

#route add default gw 10.10.60.1 

3.2.2  虚机VLAN配置

(1)启动虚机

/usr/libexec/qemu-kvm -m 1024 –net nic –net tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown –drive file=XXXX.img,boot=on -vnc 0.0.0.0:X  –usbdevice tablet

(2)将虚机加入VLAN

#ovs-vsctl set port tap0(或其他虚机网卡)tag=61

(3)配置虚拟机ip地址为192.168.61.*网段,网关不填

例:ip address:192.168.61.101 netmask:255.255.255.0

如下图所示:

3.2.3  虚机VLAN测试

测试环境:

Host 1:

系统环境:CentOS 6.2

Openvswitch版本:openvswitch 1.4.1

 IP:10.10.60.208

Netmask:255.255.255.0

Gateway:10.10.60.1

Vm1:

Ip:192.168.61.101

Netmask:255.255.255.0

Host 2:

系统环境:CentOS 6.2

Openvswitch版本:openvswitch 1.4.1

 IP:10.10.60.244

Netmask:255.255.255.0

Gateway:10.10.60.1

Vm2:

Ip:192.168.61.111

Netmask:255.255.255.0

VLAN号均为61

测试:在vm1中ping vm2 

测试结果:vm1,vm2之间能够通信

          

测试:修改vm1的tap0,使它与vm2不同

测试结果:vm1,vm2无法通信

3.3GRE配置与测试

网络拓扑图:

环境准备:

1、2台服务器

2、每台服务器上有两张网卡eth0和eth1

3、每台服务器上有一个虚拟机

3.3.1  Host 上的GRE配置 

    Host 1 配置:

    #ovs-vsctl add-br br1

    #ovs-vsctl add-port br1 eth0

    #ifconfig br1 10.10.40.5 netmask 255.255.255.0

    #ifconfig br1 up 

    #ovs-vsctl add-port br1 gre1 – set interface gre1 type=gre options:remote_ip=10.10.40.6

    Host 2 配置:

    #ovs-vsctl add-br br1

    #ovs-vsctl add-port br1 eth0

    #ifconfig br1 10.10.40.6 netmask 255.255.255.0

    #ifup br1

    #ovs-vsctl add-port br1 gre1 – set interface gre1 type=gre options:remote_ip=10.10.40.5

    Host1 上的VM 1 配置ip地址为:10.1.1.20

Host2 上的VM 2 配置ip地址为:10.1.1.30

    

3.3.2  GRE隧道的测试

查看配置:

在Host 1中:

#ovs-vsctl show (查看配置)

#ovs-appctl fdb/show br1 (查看虚机mac信息)

测试结果:

分别启动VM1 和 VM2,在VM1中ping VM2,能够通信。

3.4GRE + VLAN配置与测试

1、在3.3的GRE实验基础上

2、在Host 1中将设置VM1的tag = 61

#ovs-vsctl set port tap0 tag=61

3、在VM1中ping VM2

测试结果:

1)无法通信

2)将VM2的tag也改为61以后,双方又可以互相通信

3.5sFlow配置与测试

主机配置:

两张网卡

在host中配置命令:

#ovs-vsctl -- --id=@sflow create sflow agent=eth0 target=\”10.10.60.52:6343 \” header=128 sampling= polling=10 – set bridge br0 sflow=@sflow

备注:

10.10.60.52:6343安装sFlowTrend软件

4疑难问题

1、VLAN配置完成后,VM可以与本机和远端物理机通信却无法和远端物理机上的VM通信。

问题出错原因:

    两台VM的MAC地址相同所致

解决方案:

    将两台VM的MAC地址改成不同的,即可通信。

2、ubuntu 12.04中安装openvswitch完成并启动时遇到提示openvswitch_mod.ko cannot found的错误。

问题出错原因:

Openvswitch_mod.ko模块未加载进内核

解决方案:

    输入以下命令一路确认即可。

    # module-assistant auto-install openvswitch-datapath下载本文

显示全文
专题