1、Openvswitch研发白皮书v14技 术 文 件 技术文件名称: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部署方法,GR
2、E实验配置测试以及GRE+VLAN实验V1.4尹雪蓉2012-6-29修改+增加增加sFlow、Qos配置注1:每次更改归档文件(指归档到事业部或公司档案室的文件)时,需填写此表。注2:文件第一次归档时,“更改理由”、“主要更改内容”栏写“无”。目录(包括封面) 11 引言 31.1 编写目的 31.2 术语、定义 31.3 缩略语 31.4 参考资料 31.4.1 日記: http:/saburi380.blogspot.co.uk/ 31.4.2 Openvswitch-1.4.1中README.RHEL 31.4.3 Network Warrior中文版 32 安装 32.1 安装概述
3、32.2 环境配置 32.3 部署流程 42.3.1 CentOS 6.2编译环境的安装及部署 42.3.2 CentOS6.2 下Openvswitch编译安装及部署 42.3.3 Ubuntu12.04 下Openvswitch编译安装及部署 72.3.4 NoX 的编译与安装部署 83 常用虚机操作 93.1 创建和启动虚拟机 93.1.1 创建虚拟机 93.1.2 启动虚拟机 93.2 VLAN配置 93.2.1 Host VLAN配置 (以vlan 号61为例) 93.2.2 虚机VLAN配置 103.2.3 虚机VLAN测试 113.3 GRE配置与测试 133.3.1 Host
4、上的GRE配置 133.3.2 GRE隧道的测试 143.4 GRE + VLAN配置与测试 144 疑难问题 141 引言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:/sabur
5、i380.blogspot.co.uk/1.4.2 Openvswitch-1.4.1中README.RHEL1.4.3 Network Warrior中文版2 安装2.1 安装概述本安装教程主要涉及在CentOS6.2环境下对Openvswitch1.4.1进行编译以及安装,并用Openvswitch(简称OVS)接管Linux系统的网络服务,同时配置VLAN,并对虚拟机进行VLAN划分。2.2 环境配置一、CentOS环境操作系统环境:CentOS 6.2Openvswitch版本号:Openvswitch 1.4.x或者1.5.0网卡数目:一张网卡,连接的交换机端口设为Trunk缺省模式
6、二、Ubuntu12.04 环境 操作系统环境:Ubuntu 12.04 desktop Openvswitch版本号:Openvswitch 1.4.0网卡数目:一张网卡,连接的交换机端口设为Trunk缺省模式2.3 部署流程2.3.1 CentOS 6.2编译环境的安装及部署1、升级CentOS 6.2 (可选)command:#yum -y update2、必要环境包安装准备安装包: openvswitch-1.4.1.tar.gzcommand :# yum -y install qemu-kvm qemu-kvm-tools make gcc kernel-headers kerne
7、l-devel openssl-devel automake rpm-build redhat-rpm-config2.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.g
8、zrpmbuild -bb -D uname -r openvswitch-1.4.1/rhel/openvswitch.specrpmbuild -bb -D uname -r openvswitch-1.4.1/rhel/openvswitch-kmod-rhel6.spec备注: 紫红色部分为openvswitch源码包,后面版本号可变,改变范围为本手册环境配置部分内容中所支持的各个版本的openvswitch。2、安装编译完成的rpm包编译完成的rpm包默认在 /rpmbuild/RPMS/x86_64目录下,结果如下图所示:Command:# cd /rpmbuild/RPMS/x8
9、6_64# 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:O
10、vs-ifdown将两个文件属性修改为可执行文件:# chmod +x /etc/ovs-ifup# chmod +x /etc/ovs-ifdown2.3.3 Ubuntu12.04 下Openvswitch编译安装及部署1、环境配置# apt-get update & apt-get dist-upgrade2、下载依赖包# apt-get install aptitude apt-show-versions ntp ntpdate vim kvm libvirt-bin vlan virtinst virt-manager virt-viewer openssh-server iperf
11、 pv openvswitch-controller openvswitch-brcompat openvswitch-switch openvswitch-datapath-source3、启动openvswitch-switch# service openvswitch-switch start2.3.4 NoX 的编译与安装部署1、系统环境与部署架构 系统环境: Ubuntu 10.04 或者11.04 desktop 部署架构: Nox部署在服务器中某一个虚拟机上2、NoX的编译 1、依赖包安装#cd /etc/apt/sources.list.d#sudo wget http:/op
12、enflowswitch.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-sql2、软件包编译安装#git clone git:/noxrepo.org/nox#cd nox#git checkout -b destiny origin/destiny#./boot.sh#mkdir build/#cd build/#./co
13、nfigure#make -j 53、安装结果图:3 常用虚机操作3.1 创建和启动虚拟机安装基础环境:(vnc环境)# yum y install tigervnc.X86_643.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 :03.1.2 启动虚拟机(1) 启动虚拟机:/usr/libexec/qemu-kvm -m 1
14、024 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 tablet3.2 VLAN配置准备工作:(假设环境)已有的VLAN为60,61,621、修改ifcfg-eth0的配置文件,使它的BOOTPROTO为none (不要给eth0配置ip地址,以免和ovs发生冲突)2、将vlan模块加入linux# modprobe 8021q3.2.1 Host VLAN配置 (以vlan 号61为例)1、修改ovs中b
15、r0的配置文件(ifcfg-br0)= ifcfg-br0 ifcfg-eth0 ifcfg-eth0.61 =DEVICE= eth0.61ONBOOT=yesDEVICETYPE=ovsTYPE=OVSIntPortBOOTPROTO=noneIPADDR=A.B.C.D (例:192.168.61.1)NETMASK=X.Y.Z.0 (例:255.255.255.0)OVS_BRIDGE=br0OVS_OPTIONS=tag=61OVS_EXTRA=set Interface $DEVICE external-ids:iface-id=$(hostname -s)-$DEVICE-vif
16、HOTPLUG=no4、重启网络服务#/etc/init.d/network restart5、添加路由信息,设置网关#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 ta
17、p0(或其他虚机网卡)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.2Openvswitch版本:openvswitch 1.4.1 IP:10.10.60.208Netmask:255.255.255.0Gateway:10.10.60.1Vm1:Ip:192.168.61.101Netmask:255.255.255.0Host 2:系统环境:CentOS 6.2Openv
18、switch版本:openvswitch 1.4.1 IP:10.10.60.244Netmask:255.255.255.0Gateway:10.10.60.1Vm2:Ip:192.168.61.111Netmask:255.255.255.0VLAN号均为61测试:在vm1中ping vm2 测试结果:vm1,vm2之间能够通信 测试:修改vm1的tap0,使它与vm2不同测试结果:vm1,vm2无法通信3.3 GRE配置与测试网络拓扑图:环境准备:1、2台服务器2、每台服务器上有两张网卡eth0和eth13、每台服务器上有一个虚拟机3.3.1 Host 上的GRE配置 Host 1 配置
19、: #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 25
20、5.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.20Host2 上的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.4 GRE
21、 + VLAN配置与测试1、在3.3的GRE实验基础上2、在Host 1中将设置VM1的tag = 61#ovs-vsctl set port tap0 tag=613、在VM1中ping VM2测试结果:1)无法通信2)将VM2的tag也改为61以后,双方又可以互相通信3.5 sFlow配置与测试主机配置:两张网卡在host中配置命令:#ovs-vsctl - -id=sflow create sflow agent=eth0 target=”10.10.60.52:6343 ” header=128 sampling=64 polling=10 set bridge br0 sflow=s
22、flow备注: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
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1