1 实验目的
本次测试的目的是:
(1)验证使用NetMagic08+XTR控制器搭建适合实验的小型SDN网络实验环境的可行性;
(2)利用该环境验证基于端口转发和隧道封装提高数据中心网络负载均衡能力的效果
2 实验原理
本次实验理论基础是国防科大基于增强的高性能虚拟网络VegaNet,再利用隧道技术在CNGI/CERNET2主干网之上构成覆盖网络的层叠网验证方案。基于这个方案开发的设备主要是基于NetMagic系列的设备实现VegaNet的封装和解封装,实现VegaNet网络透穿,支持高带宽的实验流量,同时改进链路状态管理协议,提高网络控制的灵活性。
3 实验拓扑

4 实验步骤
4.1 搭建测试环境
按照拓扑搭建真实环境,如图3-1所示:
具体连接方式:
(1)3台NetMagic08设备的0号端口分别连接到交换机设备上;
(2)1号NetMagic08设备的1号端口连接主机A2(作为视频接收端);
(3)2号NetMagic08设备的1号端口连接主机B2(作为视频接收端);
(4)3号NetMagic08设备的1号端口连接主机A1(作为视频接发送端);
(5)3号NetMagic08设备的2号端口连接主机B1(作为视频接发送端);
(6)floodlight控制器+3台NetMagic08设备软件适配代码都放到一台主机上(Ubuntu 14.04),并通过一根网线连接到交换机上。(这里特殊声明一下,由于主机不够,我们把控制器和软件适配代码都放到了一起)
4.2 启动floodlight控制器
启动过程如下:
4.3 启动NetMagic08设备
(1)NetMagic08硬件设备启动
设备只需接上电源,打开设备背面开关即可;
(2)NetMagic08软件适配软件启动
编译软件:(以1号NetMagic08软件适配代码为例)
输入命令:make clean
输入命令:make
启动过程依次如下:
1号NetMagic08
2号NetMagic08
3号NetMagic08
4.4 上层app下发规则
通过flowmod.py脚本下发PORT—RLOC规则(源码)
4.5 BV算法下发规则
BV算法是NetMagic08软件适配代码的一部分,它主要负责把floodlight控制器下发的规则通过NMAC协议,下发到硬件中。下面是NetMagic08软件适配代码给硬件下发规则时的打印信息截图:
1号NetMagic08软件适配代码:
2号NetMagic08软件适配代码:
3号NetMagic08软件适配代码:
4.6 测试硬件规则是否下发成功
测试规则是否正确下发到硬件,我们可以通过ping方式来验证。
这里我采用拓扑中的业务A进行测试,让A1 ping A2,如果能ping通,则证明上层规则已经正确下发到硬件中,接下来我们就可以进行视频流化操作
4.7 流化视频
本次视频流化测试采用拓扑中的业务A,视频发送端A1为流化服务端,视频接收端A2为视频播放客户端,步骤:
(1)打开VLC media player,选择【媒体】,接着选择【流(s)…】,打开如图所示:
(2)接着点击【添加】,选择视频文件,选择好视频文件后,点击【串流】,结果如图所示:
(3)点击【下一个】,在进入的界面中勾选【在本地显示】,选择UDP方式,如图所示:
(4)接着点击(3)图中的【添加】选项,进入如下界面,在地址栏填写目标机的IP地址(在这里为视频接收端A2的地址),注意因为流的是ipv6地址,所以要加[]括号;端口默认1234,用户可随意更改。接着点击下一步
(5)默认选择,接着点击下一步
(6)默认选择,点击【流】,即可完成流化
(7)在视频接收端A2机器中,打开VLC media player,选择【媒体】,接着选择【打开网络串流】,进入如图界面,在URL地址栏输入udp://@:1234,然后点击播放
(8)A2主机接收到视频效果图
5 总结
经过本次实验,我们验证了基于我们国防科大研制的NetMagic08设备能够与目前主流SDN开源控制器,在经过简单的适配后,能够快速、简洁的搭建小型SDN环境,并完成一些用户自定义的小实验。其次最主要的是,我们搭建这么一个平台初步验证了层叠网实验方案的可行性。当然,在本次实验中,我们也有很多不足的地方,我们开发的NetMagic08硬件代码和软件适配代码还不够完善,不能支持完整的openflow1.3协议,NetMagic08支持的流表数有限,也导致控制器无法实现完美的拓扑展示。不过我们正在开发完善中,望后面的版本能够完善这个缺陷。最后,说明一下,本次实验其实是算我们的小团队在进行各自负责代码调试过程的一些记录而已,写的不好还望多多包涵。