首页 SDN正文

Ubuntu14.04源码安装mininet及OVS

王昊 SDN 2019-06-01 1199 0

本次实验用的是Ubuntu14.04

实验目的是搭建mininet 2.2.1以及openvswitch(OVS)2.4.0

因为下面需要安装一些系统组件以及库文件作为ovs正确运行的环境依赖所以建议用root用户进行操作

下载mininet的源码包

git clone git://github.com/mininet/mininet

进入mininet的目录

cd mininet

查看mininet的版本

cat INSTALL

列出所有可用的mininet版本

git tag

这里我们选择2.2.2版本

git checkout -b 2.2.2 2.2.2

返回上级目录

cd ..

安装mininet

mininet/util/install.sh -a

-a :完整安装包括Mininet VM,还包括如Open vSwitch的依赖关系,以及像的OpenFlow Wireshark分离器和POX。默认情况下,这些工具将被安装在你的home目录中。

-nfv :安装Mininet、基于OpenFlow的交换机和Open vSwitch。

-s mydir :在其他选项使用前使用此选项可将源代码建立在一个指定的目录中,而不是在你的home目录。

测试mininet基本功能

mn –test pingall

查看已安装的mininet版本

mn –version

mininet可视化的方法(在图形化界面中可见)

cd /home/wh/mininet/examples(mininet的安装路径)

./miniedit.py

此时mininet已经搭建完成

这里要注意mininet是有内置的ovs的,但是版本过低

所以还要安装高版本的ovs

首先查看mininet内置的OVS的版本

ovs-vsctl show

安装ovs的依赖包

apt-get install -y build-essential

下载ovs2.4.0安装包

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

解压

tar zxvf openvswitch-2.4.0.tar.gz

构建基于Linux内核的交换机

cd openvswitch-2.4.0

./boot.sh

./configure –with-linux=/lib/modules/linux内核版本号/build 2>/dev/null

若报类似错误

执行./boot.sh时, 若报以下错误 ./boot.sh: 2: ./boot.sh: autoreconf: not found

则是因为没有安装automake 工具

sudo apt-get install autoconf automake libtool

再次执行./boot.sh

问题解决

若报如下错误

configure: error: Linux kernel in /lib/modules/4.4.0-142-generic/build is version 4.4.167, but version newer than 4.0.x is not supported (please refer to the FAQ for advice)

这里就不写解决方法了,解决方法参考我的另一篇文章降低或提高Ubuntu内核版本,本帖就不再重复了

编译并安装OVS 2.4.0

make && make install

查看openvswitch 依赖的模块

modinfo ./datapath/linux/openvswitch.ko

发现 openvswitch.ko 依赖于 libcrc32c 模块,于是先载入 libcrc32c

modprobe libcrc32c

载入 openvswitch 模块

insmod ./datapath/linux/openvswitch.ko

查看模块载入情况,可看到 openvswitch 和 libcrc32c

lsmod|grep open

安装并加载构建的内核模块

make modules_install

/sbin/modprobe openvswitch

创建目录及数据库

mkdir -p /usr/local/etc/openvswitch

ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema 2>/dev/null

在启动OVS前,需要先启动ovsdb-server来配置数据库

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

启动ovsdb-server配置数据库最常见的一种报错是

ovsdb-server: /usr/local/var/run/openvswitch/ovsdb-server.pid: already running as pid 18799, aborting

这是因为ovsdb-server进程已经启动,如需重启则把这个pid号kill掉即可

解决方法:

Kill -9 18799

若没有报错,则直接进行下面的操作

初次使用ovsdb-tool创建数据库的时候需要初始化数据库

ovs-vsctl –no-wait init

启动ovs主进程,看到结尾的connected,表明连接成功

ovs-vswitchd –pidfile –detach –log-file

2019-05-16T01:42:20Z|00001|ovs_numa|INFO|Discovered 2 CPU cores on NUMA node 0

2019-05-16T01:42:20Z|00002|ovs_numa|INFO|Discovered 1 NUMA nodes and 2 CPU cores

2019-05-16T01:42:20Z|00003|reconnect|INFO|unix:/usr/local/var/run/openvswitch/db.sock: connecting…

2019-05-16T01:42:20Z|00004|reconnect|INFO|unix:/usr/local/var/run/openvswitch/db.sock: connected

查看OVS进程是否启动

ps -ef | grep ovs

查看ovs的版本号

ovs-vsctl –version

至此,mininet以及OVS就已经搭建成功了

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论