Open vSwitch安装及部署

实验目的

1、初步认识Open vSwitch,了解Open vSwitch的背景、功能和基本组成结构。
2、学会安装部署Open vSwitch,能够独立解决安装部署中遇到的问题。

任务环境

 

设备名称 软件环境 硬件环境
主机 Ubuntu 14.04命令行版 CPU:1核 内存:2G 磁盘:20G


注:系统默认的账户为root/root@openlab,openlab/user@openlab。

任务内容

1、了解Open vSwitch的版本信息以及安装需求,为安装Open vSwitch做好充分的准备工作,然后按照教程实现源码安装Open vSwitch。
2、配置、运行Open vSwitch。其中主要配置的就是Open vSwitch的核心组件,包括ovsdb-Server、ovs-vswitchd和ovs kernel module。

实验原理

Open vSwitch是由Nicira Networks主导,运行在虚拟化平台(例如KVM,Xen)上的虚拟交换机。Open vSwitch基于C语言开发,遵循Apache 2.0许可证,能同时支持多种标准的管理接口和协议(比如NetFlow、sFlow、SPAN、RSPAN、CLI、LACP、802.1ag等)。Open vSwitch通过OpenFlow协议由统一的控制器管理,从而实现对接入的虚拟机(或设备)的网络联通。整体组网结构如下图:
Open vSwitch安装及部署_第1张图片
Open vSwitch内部架构图如下所示:
Open vSwitch安装及部署_第2张图片
Open vSwitch各模块简要介绍如下:
1、ovs-vswtichd:主要模块,实现vswitch的守候进程daemon,包括一个支持流交换的Linux内核模块。
2、ovsdb-server:轻量级数据库服务器,保存配置信息,ovs-vswitchd通过这个数据库获取配置信息。
3、ovs-dpctl:用来配置vswitch内核模块的一个工具。
4、ovs-vsctl:主要是获取或者更改ovs-vswitchd的配置信息,此工具操作的时候会更新ovsdb-server中的数据库。
5、ovs-appctl:一个向ovs-vswtichd的守护进程发送命令的的程序。
6、datapath:内核模块,根据流表匹配结果做相应处理。
7、ovs-ofctl:查询和控制OpenFlow虚拟交换机的流表。
Open vSwitch版本及其相应的内核要求如下,请根据自己的内核版本选择相应的Open vSwitch版本。

Open vSwitch Linux kernel
1.4.x 2.6.18 to 3.2
1.5.x 2.6.18 to 3.2
1.6.x 2.6.18 to 3.2
1.7.x 2.6.18 to 3.3
1.8.x 2.6.18 to 3.4
1.9.x 2.6.18 to 3.8
1.10.x 2.6.18 to 3.8
2.0.x 2.6.18 to 3.8
2.1.x 2.6.18 to 3.10
2.2.x 2.6.18 to 3.11
2.3.x 2.6.18 to 3.14
2.4.x 2.6.18 to 4.0
2.5.x 2.6.18 to 4.3
2.6.x 3.10 to 4.7
2.7.x 3.10 to 4.9

实验步骤

一、安装Open vSwitch

步骤1 登录主机,执行ifconfig命令查看主机的IP地址,如下图所示。

Open vSwitch安装及部署_第3张图片

步骤2 执行uname -a命令查看当前系统内核版本,如下图所示。


由上图可知,当前系统内核版本是3.2.0。

步骤3 执行find / -name openvswitch-2.3.2.tar.gz命令查找Open vSwitch安装包,如下图所示。


由上图可知,Open vSwitch安装包在“/home/openlab/lab”目录下。

步骤4 执行以下命令,进入Open vSwitch安装包目录,解压Open vSwitch源文件,并进入解压后的目录。

# cd /home/openlab/lab
# tar -zxvf openvswitch-2.3.2.tar.gz
# cd openvswitch-2.3.2

步骤5 执行以下命令,生成Makefile文件。

# ./configure --with-linux=/lib/modules/3.2.0-29-generic-pae/build

使用—with-linux参数指定内核源码编译目录,不同环境的Linux版本不一样,“3.2.0-29-generic-pae”是通过命令“ls /lib/modules/”查看得到的,请根据实际查询情况修改。

步骤6 执行以下命令编译、安装Open vSwitch。

# make
# make install

说明:这个过程有点漫长,请耐心等待,并注意打印出的错误提示。

二、配置Open vSwitch

步骤1 执行以下命令,加载Open vSwitch内核模块openvswitch.ko。

# insmod ./datapath/linux/openvswitch.ko


说明:注意以上命令使用的是相对路径,默认处于openvswitch-2.3.2目录下。加载内核模块如果出现“File exists“错误请忽略,如果提示“unknown symbol in module“,解决方法参见异常处理。

步骤2 执行以下命令建立Open vSwitch配置文件和数据库,并根据ovsdb模板vswitch.ovsschema创建ovsdb数据库openvswitch.conf.db,用于存储虚拟交换机的配置信息。

# mkdir -p /usr/local/etc/openvswitch
# ovsdb-tool create /usr/local/etc/openvswitch/conf.db /usr/local/share/openvswitch/vswitch.ovsschema

步骤3 执行以下命令启动ovsdb数据库。默认支持SSL,如果在build openvswitch时disable了SSL 支持,则省略—private-key,—certificate,—bootstrap-ca-cert相关命令。

# 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


说明:默认Open vSwitch版本为2.3.2,与Open vSwitch2.0.0之前的版本的启动命令有所出入。

步骤4 执行以下命令,查看ovsdb数据是否启动成功。

# ps -ef|grep ovsdb-server

步骤5 执行以下命令,初始化数据库。

# ovs-vsctl --no-wait init

步骤6 执行以下命令,启动Open vSwitch daemon,连接到同样的Unix domain socket上。

# ovs-vswitchd --pidfile --detach

步骤7 Open vSwitch已经安装部署完毕,执行以下命令,查看当前ovs进程。

# ps –ef|grep ovs

步骤8 执行ovs-vsct1 show命令查看当前ovs的版本信息,如下图所示。

Open vSwitch安装及部署_第4张图片

三、异常处理

加载Open vSwitch内核模块openvswitch.ko时,可能会出现如下问题。

这个问题是由于openvswitch.ko依赖的模块没有加载,首先查找openvswitch.ko的依赖模块:

# modinfo ./datapath/linux/openvswitch.ko |grep depends

然后,根据查找结果加载这些依赖模块:

# modprobe libcrc32c
# modprobe gre

当依赖模块都加载后,就可以加载openvswitch.ko模块了。

# insmod  ./datapath/linux/openvswitch.ko

Open vSwitch安装及部署_第5张图片

你可能感兴趣的:(SDN)