SDN控制器测试专题四:Floodlight南向接口测试报告(下)

编者按:上一篇《SDN控制器测试专题三:Floodlight南向接口测试报告(上)》根据SDN控制器南向接口测试方案,对Floodlight控制器做了功能测试,本篇将继续对Floodlight控制器进行虚网间隔离、故障倒换以及QoS的测试实验。

1 测试目的

验证Floodlight v1.0控制器的南向接口基本功能:

  • 跨网段测试
  • 虚网间隔离
  • 故障倒换
  • Qos测试

2 测试准备

测试环境同上篇《SDN控制器测试专题三:Floodlight南向接口测试报告(上)》,此处不再赘述。

3 测试执行

3.1 跨网段测

测试目的:

验证控制器通过配置虚拟网络和交换策略,实现跨网段通信。

测试拓扑:

20150203 1.4web拓扑

预期结果:

1.跨网段可以通信。

实际结果:

1.Floodlight不支持跨网段三层通信。

测试说明:

备注:floodligt是基于二层转发,不支持跨网段三层通信配置,具体可查看官网文档http://docs.projectfloodlight.org/display/floodlightcontroller

3.2 虚网间隔离

测试目的:

1.验证虚网间通信隔离。

测试拓扑:

20150203 1.5web拓扑

操作步骤:

1.启动Floodlight控制器,在配置文件Floodlightdefault.properties,指定
VirtualNetworkFilter模块路径

20150203 1.5networkfilter模块

2.启动控制器成功后,登陆控制器web页面,查看VirtualNetworkFilter模块是否已加载成功,在modules loaded中有下面截图中所展示的模块,说明已加载成功

20150203 1.5模块加载成功

3.模拟测试拓扑,连接Floodlight控制器,控制器发现拓扑正确

20150203 1.5Floodlight操作步骤web拓扑

4.控制器配置虚网,虚网网关,使用如下命令
创建两个虚网:virtualNetwork1 virtualNetwork2

绑定h1到虚网virtualNetwork1:

绑定h2到虚网virtualNetwork2:

5.配置成功后,查看配置情况,使用如下命令

http://192.168.5.36:8080/networkService/v1.1/tenants/default/networks

查看结果如下

20150203 1.5命令查看流表

6.通过源host向目的host 发ping包,不通。

预期结果:

1.虚网间隔离,host之间不能通信。

实际结果:

1.源host向目的host发ping包,ping不通,与预期结果一致。

测试说明:

Floodlight控制器虚网间ping不通流程分析:
通过查看Floodlight官网资料,发现VirtualNetworkFilter模块工作原理如下:
当加载了虚网模块,Floodlight启动时没有创建虚拟网络,结果是主机之间不能相互通信。一旦用户创建了虚拟网络,就可以将主机加入虚网。虚网模块会在包消息处理链转发前,将自己插入其中。包接收到后它会查找源mac地址和目的mac地址。如果两个mac地址在相同的虚拟网络中,模块会返回继续命令(Command.CONTINUE),流量就会继续被处理。如果源mac地址和目的mac地址在不同的网络中,模块会返回停止命令(Command.STOP),包就被丢弃了。

结论:在我们的测试组网中,源host的mac地址属于virtualNetwork1,目的host 的mac属于virtualNetwork2.当源host向目的host发ping包时,在虚网模块包就会根据mac不在同一个虚网间的条件被丢弃而导致Floodlight控制器虚网间不能互通。

3.3故障倒换

测试目的:

1.验证交换机链路状态发生拥塞或者故障时,控制器能感知网络链路的状态,下发新流表正确。

测试拓扑:

20150203 1.6拓扑

操作步骤:

1.启动Floodlight控制器

2.模拟上图测试拓扑,控制器链路发现正常

20150203 1.6Floodlight操作步骤web拓扑

3.在源host上ping目的host,可ping通,通过控制器web页面,查看流表信息
流表:h1 --s1-- s5-- h5

20150203 1.6 0001流表信息
20150203 1.60005流表信息

4.在ping的过程中将交换机dpid为 00:00:00:00:00:00:00:01与00:00:00:00:00:00:00:05之间的直连link down掉,从web页面查看拓扑动态更新如下图

20150203 1.6 link down后拓扑更新

5.继续观测流表情况,link down掉之后,ping不通,重新ping后观察流表情况如下
流表:h1 --s1-- s2-- s5-- h5

20150203 1.6down0001流表信息
20150203 1.6down0002流表信息
20150203 1.6down0005流表信息
20150203 1.6down0002流表信息
20150203 1.6down0005流表信息

预期结果:

1.链路断开ping操作会产生丢包,但是能迅速恢复。

实际结果:

1.ping的过程中将link down掉,ping不通,不能迅速恢复;

2.重新ping,控制器重新下发流表,可以ping通。

测试说明:

一直ping过程中将link down掉,不能自动恢复,必须重新ping才能触发控制器下发新流表。测试未达到预期结果。

3.4 Qos测试

测试目的:

1.验证控制器下发具有Qos标记的流表项正确。

测试拓扑:

20150203 1.7web拓扑

操作步骤:

1.下载支持Qos的Floodlight版本,下载路径:
https://github.com/wallnerryan/floodlight-qos-beta.git

2.配置文件中指定Qos路径加载Qos模块

20150203 1.7 qos路径模块

启动Floodlight控制器:

3.登陆http://192.168.5.114:8080/ui/index.html后,点击tools->Quality of service,然后点击下图中的enable按钮,enable Qos模块

20150203 1.7启动qos模块

4.模拟上图测试拓扑,控制器拓扑发现正常

20150203 1.7操作步骤Floodlight拓扑

5.使用iperf h2 h1,iperf h2 h3 查看初始带宽如下:

20150203 1.7 iperf带宽

6.在交换机端口上添加Qos队列q0 限速为800M,q1限速为50M
使用如下命令:

7.使用如下命令,在Floodlight控制器上下发流表信息,使h2->h1的流通过q0队列,h2->h3的流通过q1队列

8.使用iperf打流查看限速后的流量

20150203 1.7iperf限速后流量

预期结果:

1.通过各队列的限速值均小于或等于限速值。

实际结果:

1.与预期结果一致,通过Qos配置,从控制器上下发流表使其入队,达到限速效果。

4后语

编者在测试过程中,了解到Floodlight是基于二层转发的,不支持三层转发,所以不支持跨网段测试。在测试故障倒换用例时,在一直ping的过程中,将交换机之间直连link down掉,Floodlight能动态发现链路变化情况,但是不会自动触发新流表,ping一直在丢包,不能自动恢复。只有重新ping,才能触发控制器下发新流表到交换机。其它的测试用例按照《南向接口测试方案》中用例执行,均达到了测试预期。后续编者将对控制器性能进行测试实验,也希望能与大家多讨论测试过程中发现的问题,共同提高。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/7866.html
分享到:
相关文章
条评论

登录后才可以评论

泡泡鱼 发表于15-02-03
11