SDN环境搭建和基本功能验证

sdn环境搭建及基本功能验证

1. 控制器和网络仿真器选择… 3

2. 基本硬件要求… 3

3. 环境和软件要求… 3

4. onos安装说明… 3

4.1. 安装步骤如下… 3

4.1.1. 更新源… 3

4.1.2. 相关工具安装(git, curl, zip)… 4

4.1.3. 下载安装jdk8(适用于onos2.2之前的版本)… 4

4.1.3.1. 命令安装(如果方法4.1.3.1安装失败请看4.1.3.2) 4

4.1.3.2. tar包安装… 5

4.1.4. 获取onos源码… 6

4.1.5. 设置onos环境变量… 6

4.1.6. 编译ONOS. 6

4.1.7. 测试onos. 7

4.1.8. 运行onos. 7

4.1.9. 登陆onos cli 7

4.1.10. 登陆onos gui(onos目标机器ip:10.10.168.227) 8

5. 安装mininet. 8

5.1. sudo apt-get install mininet. 8

5.2. 下载mininet源码… 9

5.3. mininet连接onos控制器… 9

5.4. 登录onos gui, 现象如下图所示:… 10

6. 基本功能验证… 10

6.1. 两主机ping. 10

6.2. ping报文验证… 11

6.3. 多用户… 13

6.3.1. 修改配置文件添加… 13

6.3.2. onos cli添加… 14

6.3.2.1. 查看现有用户… 14

6.3.2.2. 添加用户foo. 14

6.3.2.3. 删除用户foo. 16

6.4. 集群创建… 17

6.4.1. 通过集成环境创建… 17

6.4.1.1. 下载安装virtualbox. 17

6.4.1.2. 下载onos-tutorial-1.15.0 ova文件… 17

6.4.1.3. 打开virtualbox并导入onos-tutorial-1.15.0创建虚拟机(由于我已经创建成功,不能提供截图了) 17

6.4.1.4. 点击setup onos cluster图标创建一个集群… 19

6.4.1.5. 通过nodes命令查看onos控制器个数… 20

6.5. 流量可视化… 20

6.5.1. 点击spine leaf topolgy图标创建拓扑… 20

6.5.2. 查看gui拓扑… 21

6.5.3. 让两台主机通信并观察流量可视化… 22

6.6. 多控制器故障转移(主备模式)… 23

1. 控制器和网络仿真器选择

onos+mininet

2. 基本硬件要求

2核cpu

2G ram

10 Gb硬盘

1一个nic

3. 环境和软件要求

1、所有的安装和运行都是基于非root用户

2、需连接互联网,方便下载所需的安装包

3、ubuntu-16.04.6-desktop-amd64

4、java8

5、curl

6、git

7、maven(mvn编译需要的包)

8、karaf(mvn编译需要的包)

4. onos安装说明

onos 1.14或更高的版本使用bazel构建工具编译,但是需要,我是没有编译通过。

onos 1.13 或更早的版本使用mvn或buck编译,这两种方法我都试过,能成功编译通过,在此我介绍用buck编译的方法。

4.1. 安装步骤如下

4.1.1. 更新源

sudo apt-get update

sudo apt-get upgrate

4.1.2. 相关工具安装(git, curl, zip)

sudo apt-get install git

sudo apt-get install curl

sudo apt-get install zip

4.1.3. 下载安装jdk8(适用于onos2.2之前的版本)

4.1.3.1. 命令安装(如果方法4.1.3.1安装失败请看4.1.3.2)

\1. add the ppa

sudo add-apt-repository ppa:webupd8team/java

\2. update and install the installer script:

sudo apt update; sudo apt install oracle-java8-installer

\3. 在安装过程中,您必须接受java许可证才能继续下载和安装java二进制文件。

SDN环境搭建和基本功能验证_第1张图片

\4. 查看java版本

java –version

\5. 设置java环境变量

sudo apt install oracle-java8-set-default

4.1.3.2. tar包安装

1、在jdk官网下载jdk-8uxxx-linux-x64.tar.gz(链接如下)

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

注册账户登陆并下载jdk-8u11-linux-x64.tar.gz

SDN环境搭建和基本功能验证_第2张图片
sudo mkdir /usr/lib/jvm

sudo tar xzvf jdk-8u211-linux-x64.tar.gz -c /usr/lib/jvm

cd /usr/lib/jvm/

2、添加以下环境变量到~/.bashrc

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_211

export JRE_HOME=${java_home}/jre

export CLASSPATH=.: j a v a h o m e / l i b : {java_home}/lib: javahome/lib:{jre_home}/lib

export PATH= j a v a h o m e / b i n : {java_home}/bin: javahome/bin:PATH

3、执行source ~/.bashrc

4.1.4. 获取onos源码

cd

git clone https://gerrit.onosproject.org/onos

4.1.5. 设置onos环境变量

添加以下两行到~/.bashrc

export ONOS_ROOT=~/onos

source $ONOS_ROOT/tools/dev/bash_profile

然后执行source ~/.bashrc

4.1.6. 编译ONOS

cd onos

git checkout -b 1.13.8 1.13.8

$onos_root/tools/build/onos-buck build onos --show-output

编译时间较长,请耐心等待

SDN环境搭建和基本功能验证_第3张图片
编译成功!

4.1.7. 测试onos

$onos_root/tools/build/onos-buck test

SDN环境搭建和基本功能验证_第4张图片

测试通过!

4.1.8. 运行onos

tools/build/onos-buck run onos-local – clean debug

占用终端并停留在如下界面

在这里插入图片描述

4.1.9. 登陆onos cli

打开新的终端并键入命令tools/test/bin/onos localhost登陆onos cli

SDN环境搭建和基本功能验证_第5张图片

4.1.10. 登陆onos gui(onos目标机器ip:10.10.168.227)

http://localhost:8181/onos/ui

http://10.10.168.227:8181/onos/ui

SDN环境搭建和基本功能验证_第6张图片

登录之后如下图

SDN环境搭建和基本功能验证_第7张图片

5. 安装mininet

5.1. sudo apt-get install mininet

SDN环境搭建和基本功能验证_第8张图片

5.2. 下载mininet源码

cd

mkdir sdn

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

5.3. mininet连接onos控制器

在连接之前先启动onos控制器

cd /home/wxpeng/sdn/mininet/custom

执行sudo mn --custom topo-2sw-2host.py --topo mytopo --controller=remote,ip=10.10.168.227

此拓扑有两台交换机, 两台主机

SDN环境搭建和基本功能验证_第9张图片

5.4. 登录onos gui,现象如下图所示:

SDN环境搭建和基本功能验证_第10张图片
按h键显示主机,此时主机不能在gui中显示出来, 回到mininet界面并执行pingall

SDN环境搭建和基本功能验证_第11张图片
再次查看gui拓扑, 如下图所示:

SDN环境搭建和基本功能验证_第12张图片

6. 基本功能验证

6.1. 两主机ping

回到mininet界面执行h1 ping h2

SDN环境搭建和基本功能验证_第13张图片
此时是能ping通的,要么添加了h1到h2的intents, 要么激活了fwd应用

登录onos cli,执行apps –s –a查看激活的应用, 执行intents查看添加的intents,如下图所示:

SDN环境搭建和基本功能验证_第14张图片

可以看出是激活了fwd应用, 没有相关的intents

通过onos gui也能实现应用的添加和暂停以及添加相关的intents,此处不作说明。

6.2. ping报文验证

在mininet界面执行xterm h1 h2,为h1, h2启动两个终端,如下图所示:

SDN环境搭建和基本功能验证_第15张图片

在h1终端执行ping –c3 10.0.0.2, 在h2终端执行tcpdump –i h2-eth0 –vv

SDN环境搭建和基本功能验证_第16张图片
SDN环境搭建和基本功能验证_第17张图片
刚好有3组icmp包

6.3. 多用户

6.3.1. 修改配置文件添加

修改users.properties

path:~/onos/tools/package/etc

SDN环境搭建和基本功能验证_第18张图片

vim users.properties

按照格式添加上图标记的一行,保存退出, 重新运行onos

用新用户和密码登陆onos gui

SDN环境搭建和基本功能验证_第19张图片
SDN环境搭建和基本功能验证_第20张图片
不知道为什么guest用户登录不上,后边我再看看

6.3.2. onos cli添加

6.3.2.1. 查看现有用户

jaas:realm-list

jaas:realm-manage --index 1

jaas:user-list

SDN环境搭建和基本功能验证_第21张图片

6.3.2.2. 添加用户foo

jaas:user-add foo bar

jaas:group-add foo admingroup

jaas:update

jaas:realm-manage --index 1

jaas:user-list

SDN环境搭建和基本功能验证_第22张图片
用新用户名登录onos gui

SDN环境搭建和基本功能验证_第23张图片
登录成功

SDN环境搭建和基本功能验证_第24张图片

6.3.2.3. 删除用户foo

jaas:user-delete foo

jaas:group-delete foo admingroup

jaas:update

jaas:realm-manage --index 1

jaas:user-list

jaas:cancel

SDN环境搭建和基本功能验证_第25张图片
用户foo被删除了

logout再次用foo登录onos gui

SDN环境搭建和基本功能验证_第26张图片
登录失败

6.4. 集群创建

6.4.1. 通过集成环境创建

6.4.1.1. 下载安装virtualbox

https://www.virtualbox.org/wiki/downloads

6.4.1.2. 下载onos-tutorial-1.15.0 ova文件

https://drive.google.com/file/d/1jcgujjdttbhnnbfzc7suk52rmmdbvury/view

6.4.1.3. 打开virtualbox并导入onos-tutorial-1.15.0创建虚拟机(由于我已经创建成功,不能提供截图了)

虚拟机创建成功后运行虚拟机

SDN环境搭建和基本功能验证_第27张图片
SDN环境搭建和基本功能验证_第28张图片
SDN环境搭建和基本功能验证_第29张图片

6.4.1.4. 点击setup onos cluster图标创建一个集群

SDN环境搭建和基本功能验证_第30张图片

6.4.1.5. 通过nodes命令查看onos控制器个数

SDN环境搭建和基本功能验证_第31张图片
通过onos gui也能得知,下面点击onos gui图标登录gui

SDN环境搭建和基本功能验证_第32张图片

可见有3台onos控制器

6.5. 流量可视化

6.5.1. 点击spine leaf topolgy图标创建拓扑

SDN环境搭建和基本功能验证_第33张图片

6.5.2. 查看gui拓扑

SDN环境搭建和基本功能验证_第34张图片
在gui界面按l键显示标签, 按h键显示主机,如下图所示:

SDN环境搭建和基本功能验证_第35张图片

6.5.3. 让两台主机通信并观察流量可视化

在mininet界面执行h11 ping h41

SDN环境搭建和基本功能验证_第36张图片

如上图所示ping不通,在onos cli 激活fwd应用

在这里插入图片描述

再次查看mininet,ping成功

SDN环境搭建和基本功能验证_第37张图片
在gui界面按a键查看流量路径

SDN环境搭建和基本功能验证_第38张图片

6.6. 多控制器故障转移(主备模式)

在onos cli 键入devices, nodes, roles 分别查看设备信息,控制器信息以及设备主备情况

SDN环境搭建和基本功能验证_第39张图片
在gui界面按e键进行onos主控权重新平衡

SDN环境搭建和基本功能验证_第40张图片
SDN环境搭建和基本功能验证_第41张图片

可知现在3台控制器分别是其中2台设备的主控制器

点击onos cli图标登录onos cli,键入shutdown命令关闭一台控制器(默认关闭的是172.17.0.5控制器), ,然后在gui界面查看控制器间故障转移现象

SDN环境搭建和基本功能验证_第42张图片

SDN环境搭建和基本功能验证_第43张图片
SDN环境搭建和基本功能验证_第44张图片
原来由172.17.0.5控制器主控的设备的主控权转移到了172.17.0.6控制器下

你可能感兴趣的:(软件定义网络环境搭建及功能验证)