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二进制文件。

在这里插入图片描述

\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

在这里插入图片描述
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

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

在这里插入图片描述
编译成功!

4.1.7. 测试onos

$onos_root/tools/build/onos-buck test

在这里插入图片描述

测试通过!

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

在这里插入图片描述

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

http://localhost:8181/onos/ui

http://10.10.168.227:8181/onos/ui

在这里插入图片描述

登录之后如下图

在这里插入图片描述

5. 安装mininet

5.1. sudo apt-get install mininet

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述
按h键显示主机,此时主机不能在gui中显示出来, 回到mininet界面并执行pingall

在这里插入图片描述
再次查看gui拓扑, 如下图所示:

在这里插入图片描述

6. 基本功能验证

6.1. 两主机ping

回到mininet界面执行h1 ping h2

在这里插入图片描述
此时是能ping通的,要么添加了h1到h2的intents, 要么激活了fwd应用

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

在这里插入图片描述

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

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

6.2. ping报文验证

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

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
刚好有3组icmp包

6.3. 多用户

6.3.1. 修改配置文件添加

修改users.properties

path:~/onos/tools/package/etc

在这里插入图片描述

vim users.properties

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

用新用户和密码登陆onos gui

在这里插入图片描述
在这里插入图片描述
不知道为什么guest用户登录不上,后边我再看看

6.3.2. onos cli添加
6.3.2.1. 查看现有用户

jaas:realm-list

jaas:realm-manage --index 1

jaas:user-list

在这里插入图片描述

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

在这里插入图片描述
用新用户名登录onos gui

在这里插入图片描述
登录成功

在这里插入图片描述

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

在这里插入图片描述
用户foo被删除了

logout再次用foo登录onos gui

在这里插入图片描述
登录失败

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创建虚拟机(由于我已经创建成功,不能提供截图了)

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述
通过onos gui也能得知,下面点击onos gui图标登录gui

在这里插入图片描述

可见有3台onos控制器

6.5. 流量可视化

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

在这里插入图片描述

6.5.2. 查看gui拓扑

在这里插入图片描述
在gui界面按l键显示标签, 按h键显示主机,如下图所示:

在这里插入图片描述

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

在mininet界面执行h11 ping h41

在这里插入图片描述

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

在这里插入图片描述

再次查看mininet,ping成功

在这里插入图片描述
在gui界面按a键查看流量路径

在这里插入图片描述

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

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

在这里插入图片描述
在gui界面按e键进行onos主控权重新平衡

在这里插入图片描述

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

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

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
原来由172.17.0.5控制器主控的设备的主控权转移到了172.17.0.6控制器下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值