Mininet模拟多数据中心带宽实验【mininet-下】【C4-02】

原理

模拟多数据中心流量带宽实验

案例目的:

通过Mininet模拟搭建基于不同数据中心的网络拓扑;
掌握多数据中心网络拓扑的搭建;
熟悉网络性能测试工具lperf,根据实验限额是SDN网络的性能;
通过程序生成真实网络流量。

数据中心应用价值:

  • 树状拓扑结构容错能力强
  • 降低数据中心成本消耗
  • 提供重新排列的全带宽无阻碍路径
  • 提高带宽利用率
  • 分析数据中心网络流量性能
  • 为真实数据中心和仿真测试床提供有用信息

流量模拟介绍

网络性能评估中一个巨大的挑战就是如何生成真实的网络流量,可以通过程序来创造人工的网络流量,通过建立测试环境来模拟真实的状况。
此应用主要以数据中心网络为目标场景,在mininet仿真环境中尽可能地还原数据中心内部的真实流量情况。

数据中心拓扑逻辑网络

核心交换机:c1,c2
聚合交换机:a1-a4
边缘交换机:e1-e4
主机:h1-h8

Mininet中自带的iperf性能测试工具可以测试不同主机之间哦通信的带宽性能质量,可以针对相同边缘交换机、相同聚合交换机不同边缘交换机、相同核心交换机不同聚合交换机下的主机进行测试。

在这里插入图片描述
如图自上而下分为三层,左右分为两个数据中心。
【核心交换机】
【多层聚合交换机】
【边缘交换机】

流量随机模型在Mininet中的应用

流量随机模型:主机向在网络中的另一任意主机以等概率发送数据包。
使用Mininet中的iperf工具在网络中生成UPD流量,iperf客户端传送数据流到iperf的服务端,由服务端接受并记录相关信息。
我们需要实现的是将批处理流的自定义命令添加到mininet 中,在mininet 中使用此自定义命令,实现上述功能。

Mininet自定义命令拓展实现

在mininet中进行自定义命令功能拓展主要分为4步:

  • 修改mininet/net.py ##功能代码实现
  • 修改mininet/cli.py ##注册命令
  • 修改bin/mn ##加入到可执行文件中
  • 重新安装Mininet核心文件:~/mininet/util/install.sh -n

具体实现

mininet/net.py中定义iperf_single()函数

在两个主机间进行iperf udp测试,并且在server端记录,实现iperf_single函数:

def iperf_single(self,hosts=,udpBw=,period=,port=):

(代码看不清,就记了名字)
在这里插入图片描述

net.py中添加自定义命令iperfmulti()函数

依次为每一台主机随机选择另一台主机作为iperf的服务端,通过调用iperf_single,自身以客户端按照指定参数发送UDP流。

def iperfMulti(self,bw,period=):

在这里插入图片描述

mininet/cli.py中注册iperfmulti命令

解析用户输入的命令,net.py定义的iperfmulti命令需要在CLI类中注册。

def do_iperfmulti(self,line):

在这里插入图片描述

bin/mn中加入iperfmulti可执行命令

将iperfmulti加入到对应的列表中。
在这里插入图片描述

重新编译mininet

进入mininet/util目录,重新编译安装mininet.
#~/mininet/util/install.sh -n

重新创建网络,如mn,输入iperf,可用table补全iperfmulti,从而可使用iperfmulti进行流量随机模型的测试。

演示

如图即为实现了。
在这里插入图片描述

模拟拓扑

数据中心拓扑创建——添加库

通过python脚本自定义拓扑,创建包含两个数据中心的网络拓扑:

  • #cd custom
  • #vi fattree.py
    在这里插入图片描述

数据中心拓扑创建——拓扑函数及变量定义

在这里插入图片描述

数据中心拓扑创建——交换机添加

在这里插入图片描述

数据中心拓扑创建——交换机之间链路添加

在这里插入图片描述

数据中心拓扑创建——主机及其相关链路添加

在这里插入图片描述

数据中心拓扑脚本执行

启动Mininet,生成测试拓扑结构:

#mn --custom/home/sdnlab/mininet/cusstom/fattree.py --topo mytopo --controller=remote,ip=10.0.0.20,port=6633

注:
设置控制器IP地址,这里使用ryu控制器,其监听端口为6633,进入/ryu/ryu/add目录,执行命令:
#ryu-manager simple_switch_stp.py
–custom指定自定义拓扑文件
–topo指定加载拓扑的名字

(一张糊图)
在这里插入图片描述

退出命令

mininet>exit

演示

root@ccf:/opt/mininet/custom# ls(查看脚本文件)
root@ccf:/opt/mininet/custom# vi fattree.py(选择了胖树)
root@ccf:/home/ccf/ryu/ryu/add# ryu-manager simple_switch_stp.py(生成树协议)
root@ccf:/opt/mininet/custom# ls(查看脚本文件)
root@ccf:/opt/mininet/custom# vi fattree.py(选择了胖树)
root@ccf:/opt/mininet/custom# mn --custom fattree.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6633

在这里插入图片描述

测试

mininet>iperf h1 h2

在这里插入图片描述

数据中心拓扑网络测试——iperfmulti UDP测试

在mininet中执行iperfmulti命令,设置带宽参数为0.025M,我们能看到8台主机随机地向另外一台主机发送数据包。

mininet>iperfmulti 0.025M

在这里插入图片描述

实现

root@ccf:~# cd /home/ccf/log/(路径是自定义的)
root@ccf:/home/ccf/log# ls

在这里插入图片描述

root@ccf:/home/ccf/log# vi 1.out

回车后进入
在这里插入图片描述
查看udp的带宽,,,一秒记录一次。。

也可以看客户端的数据

root@ccf:/home/ccf/log# vi client1.out

回车后进入
在这里插入图片描述

【Mininet入门——完】

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HAL9000pp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值