基于流表项删除的测试与分析
2015-10-28 12:43
239 查看
一测试目的
本测试的目的是为了得知在运行openflow协议的SDN网络中,交换机上的流表项的生存时间问题,即流表项被生成后在流表中持续时间的问题。我们知道流表项中的timeout字段为流表项维护了最大空闲时间(idle_timeout),也就是一条流表项不再匹配数据包时能够持续的最大时间。那么这个idle_timeout的默认值是多少,当这个时间计数器结束后流表项是否被删除,以及能否手动配置这个时间字段是本测试的主要目的。
二分析方法
可以通过软件实现本次测试。Floodlight是一个SDN控制器,可以获取数据层的链路以及流信息。Mininet是一个软件虚拟化平台,可以用来模拟SDN中的网络拓扑,可以灵活地构件自定义的网络拓扑,并连接到控制器,形成一个SDN网络环境。OpenvSwitch(OVS)是一个虚拟交换机,支持Openflow协议,在其上可以灵活地进行配置,比如增加或者删除一条流表项等,并可以通过控制器来远程获取交换机上的数据信息。因此本次实验就是基于以上的虚拟化平台进行的。
三过程与结果
3.1Floodlight+Mininet实验
3.1.1实验目的:本实验的目的是为了得到idle_timeout的默认值,并且通过实验观察该计数器结束后,流表项是否被删除。
3.1.2实验过程
在mininet环境下创建一个depth=3,fanout=2的树形拓扑结构,如下图所示
图3-1-1拓扑环境建立图
首先,在网络初始时,通过控制器的RESTAPI查看当前所有交换机中的流信息,入下所示:
图3-1-2
可以看到,网络中的7台交换机都是没有流数据的。
接下来,对主机h1和h5进行ping连接,:
图3-1-3主机h1和h2PING连接图
此时立即通过控制器的RESTAPI查看当前所有的交换机中的流信息:
图3-1-4当前所有交换机中流信息显示
接下来断开PING连接,立即查看控制器的web端口所显示的数据,通过反复的刷新界面,以及重复实验,发现在平均5s之后,流表数据完全被删除。
图3-1-5约5s后所有交换机中流信息显示
3.2Floodlight+OVS实验
3.2.1实验目的:
在OVS上新建流表项,并设置好这些流表的idle_timeout时间,并在Floodlight控制器提供的web端口上观察流表信息,验证idle_timeout时间结束以后这些流表是否结束。
3.2.2实验过程:
1)实验环境搭建:
在640服务器上安装OVS和Floodlight控制器,并由Floodlight实现对OVS的控制。查看目前OVS上的配置信息(Floodlight所在的服务器的ip为:10.103.24.66;网桥BYOD的IP为:10.103.26.148)
:
图3-2-1网桥BYOD的配置信息
2)在OVS上添加流表项:
在OVS上可以手动添加流表项,并且自定义流表项的字段信息。为了实验验证,主要对idle_timeout字段进行配置。
2.1首先添加一条流表项,而不配置其idle_timeout字段,发现这条流表项会一直存在于流表中而不被删除。如下所示:
添加一条流表项“priority=1,in_port=12,actions=output:1”
图3-2-2添加一条流表项
通过Floodlight提供的RESTAPI,获取流表信息,如下:
{"00:00:b8:2a:72:d1:a1:bd":{"flows":[{"version":"OF_10","cookie":"0","tableId":"0x0","packetCount":"0","byteCount":"0","durationSeconds":"1077","priority":"1","idleTimeoutSec":"0","hardTimeoutSec":"0","match":{"in_port":"12"},"actions":{"output":"1"}}]}}
发现这条流表项的默认idletime被设置为0,当下的持续存在时间为:1077s,并且这条流会一直存在而不被删除。
2.2添加两条流表项,配置其idle_timeout分别为10s和20s。过程如下:
添加一条流表项“priority=1,in_port=12,actions=output:1”
添加一条流表项“priority=1,in_port=12,idle_time=20,actions=output:1”
图3-2-3添加一条流表项
在添加流表项之前,通过FloodlightRESTAPI得到的流表集合信息如下:
说明此时网络中没有流表项。
在添加完以上两条流表以后,可以看到Floodlight的RESTAPI上的流表集合为:
四分析与结论
通过以上的实验,可以发现。在Floodlight和mininet实验结果中发现默认的idle_timeout字段的值为5s,并且这个计数器结束后,流表项即刻被删除。在Floodlight和OVS的实验结果中,可以发现OVS可以手动配置流表项的idle_timeout字段,并且该字段维护的时间结束后,流表项即刻被删除。
本测试的目的是为了得知在运行openflow协议的SDN网络中,交换机上的流表项的生存时间问题,即流表项被生成后在流表中持续时间的问题。我们知道流表项中的timeout字段为流表项维护了最大空闲时间(idle_timeout),也就是一条流表项不再匹配数据包时能够持续的最大时间。那么这个idle_timeout的默认值是多少,当这个时间计数器结束后流表项是否被删除,以及能否手动配置这个时间字段是本测试的主要目的。
二分析方法
可以通过软件实现本次测试。Floodlight是一个SDN控制器,可以获取数据层的链路以及流信息。Mininet是一个软件虚拟化平台,可以用来模拟SDN中的网络拓扑,可以灵活地构件自定义的网络拓扑,并连接到控制器,形成一个SDN网络环境。OpenvSwitch(OVS)是一个虚拟交换机,支持Openflow协议,在其上可以灵活地进行配置,比如增加或者删除一条流表项等,并可以通过控制器来远程获取交换机上的数据信息。因此本次实验就是基于以上的虚拟化平台进行的。
三过程与结果
3.1Floodlight+Mininet实验
3.1.1实验目的:本实验的目的是为了得到idle_timeout的默认值,并且通过实验观察该计数器结束后,流表项是否被删除。
3.1.2实验过程
在mininet环境下创建一个depth=3,fanout=2的树形拓扑结构,如下图所示
图3-1-1拓扑环境建立图
首先,在网络初始时,通过控制器的RESTAPI查看当前所有交换机中的流信息,入下所示:
图3-1-2
可以看到,网络中的7台交换机都是没有流数据的。
接下来,对主机h1和h5进行ping连接,:
图3-1-3主机h1和h2PING连接图
此时立即通过控制器的RESTAPI查看当前所有的交换机中的流信息:
图3-1-4当前所有交换机中流信息显示
接下来断开PING连接,立即查看控制器的web端口所显示的数据,通过反复的刷新界面,以及重复实验,发现在平均5s之后,流表数据完全被删除。
图3-1-5约5s后所有交换机中流信息显示
3.2Floodlight+OVS实验
3.2.1实验目的:
在OVS上新建流表项,并设置好这些流表的idle_timeout时间,并在Floodlight控制器提供的web端口上观察流表信息,验证idle_timeout时间结束以后这些流表是否结束。
3.2.2实验过程:
1)实验环境搭建:
在640服务器上安装OVS和Floodlight控制器,并由Floodlight实现对OVS的控制。查看目前OVS上的配置信息(Floodlight所在的服务器的ip为:10.103.24.66;网桥BYOD的IP为:10.103.26.148)
:
图3-2-1网桥BYOD的配置信息
2)在OVS上添加流表项:
在OVS上可以手动添加流表项,并且自定义流表项的字段信息。为了实验验证,主要对idle_timeout字段进行配置。
2.1首先添加一条流表项,而不配置其idle_timeout字段,发现这条流表项会一直存在于流表中而不被删除。如下所示:
添加一条流表项“priority=1,in_port=12,actions=output:1”
图3-2-2添加一条流表项
通过Floodlight提供的RESTAPI,获取流表信息,如下:
{"00:00:b8:2a:72:d1:a1:bd":{"flows":[{"version":"OF_10","cookie":"0","tableId":"0x0","packetCount":"0","byteCount":"0","durationSeconds":"1077","priority":"1","idleTimeoutSec":"0","hardTimeoutSec":"0","match":{"in_port":"12"},"actions":{"output":"1"}}]}}
发现这条流表项的默认idletime被设置为0,当下的持续存在时间为:1077s,并且这条流会一直存在而不被删除。
2.2添加两条流表项,配置其idle_timeout分别为10s和20s。过程如下:
添加一条流表项“priority=1,in_port=12,actions=output:1”
添加一条流表项“priority=1,in_port=12,idle_time=20,actions=output:1”
图3-2-3添加一条流表项
在添加流表项之前,通过FloodlightRESTAPI得到的流表集合信息如下:
{"00:00:b8:2a:72:d1:a1:bd":{"flows":[]}}
说明此时网络中没有流表项。
在添加完以上两条流表以后,可以看到Floodlight的RESTAPI上的流表集合为:
{"00:00:b8:2a:72:d1:a1:bd":{"flows":[{"version":"OF_10","cookie":"0","tableId":"0x0","packetCount":"0","byteCount":"0","durationSeconds":"2","priority":"1","idleTimeoutSec":"10","hardTimeoutSec":"0","match":{"in_port":"12"},"actions":{"output":"1"}},{"version":"OF_10","cookie":"0","tableId":"0x0","packetCount":"0","byteCount":"0","durationSeconds":"1","priority":"1","idleTimeoutSec":"20","hardTimeoutSec":"0","match":{"in_port":"11"},"actions":{"output":"1"}}]}}
在10s过后,流表集合的信息如下:
{"00:00:b8:2a:72:d1:a1:bd":{"flows":[{"version":"OF_10","cookie":"0","tableId":"0x0","packetCount":"0","byteCount":"0","durationSeconds":"11","priority":"1","idleTimeoutSec":"20","hardTimeoutSec":"0","match":{"in_port":"11"},"actions":{"output":"1"}}]}}
20s过后,信息如下:
{"00:00:b8:2a:72:d1:a1:bd":{"flows":[]}}
这说明,在idle_timeout计数结束之后,这条流表项就会被删除。
四分析与结论
通过以上的实验,可以发现。在Floodlight和mininet实验结果中发现默认的idle_timeout字段的值为5s,并且这个计数器结束后,流表项即刻被删除。在Floodlight和OVS的实验结果中,可以发现OVS可以手动配置流表项的idle_timeout字段,并且该字段维护的时间结束后,流表项即刻被删除。
相关文章推荐
- Android 解决Toast的延时显示问题
- tomcat服务器相关介绍一
- Linux增加硬盘并挂载到VLM逻辑卷
- pat 1083 List Grades
- 查看Linux下网卡状态或 是否连接
- SQLit3 使用
- 第三十五篇:Quartz2D绘图--小黄人
- leetcode 264 : Ugly Number II
- Mac常用操作
- Virtualbox WDDM之DxgkDdiDpcRoutine
- tomcat 项目迁移到jboss5.1
- 使用jquery-qrcode生成二维码
- 深入理解java中的package关键字
- 交换机的三种端口类型
- .view-content:overflow:hidden 大错误
- 【希云@你】创建代理缓存仓库
- 动态调用WCF不添加服务(svcutil.exe)
- Android开发工程师必看面试题:(三)
- nginx配置cgi
- Java package经验总结