时间:2024-09-03
◆高志鑫 程 炜 徐天奇 李 琰
(云南民族大学电气信息工程学院 云南 650500)
基于OpenFlow的流量控制功能设计和实现
◆高志鑫 程 炜 徐天奇 李 琰
(云南民族大学电气信息工程学院 云南 650500)
OpenFlow协议使得网络具有高度的灵活性以及强大的可编程能力,本文利用这一特点,通过软件仿真的形式,在Floodlight控制器的基础上实现了QoS流量控制功能,并在Mininet仿真实验环境下实现了系统端口TCP限速、TCP带宽保障以及视频流速率带宽保障三个具体的QoS策略。
OpenFlow;流量控制;QoS
OpenFlow最早由斯坦福大学的NickMcKeown教授[1]等研究人员在2008年4月中提出[2],是一种将控制和转发分离开的架构。其基本理念在于将控制逻辑从网络设备中抽离出来,人们可以对其进行任意的编程,对网络层次结构以及各个层面之间的关系和接口进行规划。它的提出最大化限度地提高了网络资源利用率,使得网络的配置和管理更加快速灵活,提高了网络运行效率的同时,也抑制了网络基础设施的无限制扩张,减少了网络部署和维护的成本[3],在不改动网络设备本身的情况下,实现新型的网络协议和拓扑架构。
从2008年提出到现在,OpenFlow已经在硬件和软件支持方面取得了长足的发展,尤其推动了QoS的技术创新。通常,一个完整的OpenFlow网络是由控制器、交换机和OpenFlow协议组成的,通过控制器下发流表规则,集中控制交换机中流的处理和转发行为[4]。在整个管理系统中QoS控制管理模块部署在OpenFlow控制器上,提供DiffServ模型的流表控制管理功能。其中,OpenFlow网络流表的下发由控制器和被控制的OpenFlow交换机通过OpenFlow协议规范来完成。OpenFlow交换机提供了多种计数器,对通过交换机的流进行字节数和报文数的统计和分类,并将不满足条件的报文丢弃或者延迟发送,最终实现QoS技术。
本文将通过开源软交换机上进行二次开发,实现基于OpenFlow协议的传统 DiffServ模型流分类、标记和入队的流表控制机制,和基于HTB算法的队列管理和队列调度算法的流量控制机制,最后将控制器和交换机进行集中式控制分布式处理的方式进行部署设计,并完成三个具体QoS策略实现。
实验测试首先通过 Mininet的custom下的Python文件建立自定义拓扑,如图1:
图1 Mininet自定义拓扑
MAC地址00:00:00:00:00:00:00:01、00:00:00:00:00:00:00:02分别为 OpenvSwitch1和OpenvSwitch2,连接OpenvSwitch1的为服务器,提供视频流、Web等服务,连接 OpenvSwitch2 的为主机Host1,Host2。当被标记的数据流通过OpenvSwitch 时,在其上应用的QoS代理对交换机进行的队列配置应具有对这些数据流的分组进行汇聚分类和转发的能力。如果Host1到Host2方向上的数据流的带宽与事先配置的HTB队列调度算法设置的带宽一致,则可验证 OpenFlowQoS管理系统上的DiffServ模型流量控制功能的正确性。同时,TCP测试客户端执行:iperf-s,服务器执行:iperf-c10.0.0.2。
2.1 系统端口速率 TCP 限速测试
为了验证管理系统指令配置模块的配置的结果,从Host进行打包测试,验证配置端口速率限制的正确性。首先由服务器作为服务端,Host1 作为客户端进 行TCP打包,然后加入 QoS 策略再进行 TCP 打包测试。从打包结果可以看出 QoS 策略完成了端口队列速率限制的功能。首先不加入策略,服务器到Host1的TCP带宽为20Gbps左右,测试结果如图2所示:
图2 查看加入Qos策略之前,h1的TCP带宽
然后开启QoS的服务(图3):
图3 开启QoS功能
在OpenvSwitch1的接口上创建Queue队列机制(图4):创建一条实际的QoSPolicy策略(图5):
图4 创建queue队列
图5 创建qos策略
最后利用iperf工具测试服务器到Host1的TCP速率(图6):
图6 查看加入QoS策略之后,h1的TCP带宽
不加入队列机制时由服务器向Host1发送的数据流速率在20Gbps左右,在加入了一条限制队列之后(限制在 2Mbps)实验结果显示,由服务器向 Host1 发送的数据流速率限制在了2Mbps左右,与前面配置的预期结果一致,证明了QoS系统对底层交换设备流量控制功能的正确性。同理,对其他流量可以做限速来保障需要额外带宽的流量。
2.2 系统端口 TCP 带宽保障测试
在第一个测试的基础上改变 OVS 上的 Queue队列机制, Queue0 的机制是保障最低的带宽为 10Mbps(图7):
图7 显示Queue0队列
定义一条具体的 TCP 流基于 Queue0,将具体的 TCP 流基于 Queue0 的 QoS 策略写入 Json文件(图8):
图 8 定义TCP流基于Queue0队列
再利用iperf工具测试服务器到Host1的TCP速率(图9):
图 9 显示TCP流带宽
在加入Queue0队列之后速度比之前20Gbps降低,主要因为Queue0的策略保障最低带宽为10Mbps,所以带宽还是达到了861Mbps。
2.3 系统视频流速率带宽保障测试
在Floodlight 控制器中已经声明 Protocol=“4b”是Packet_Video 流量,说明可以具体到特定视频流的带宽保障。改变OVS上的Queue队列机制, Queue0的机制是保障最低的带宽为20kbps,如图10:
图10 显示queue0队列
将视频流量写入 QoS Policy 策略,Queue队列机制使用Queue0 带宽队列,如图11:
图11 视频流QoS Policy写入成功
再利用iperf工具测试服务器到Host1的视频流速率,如图12:
图12 显示视频流带宽
可见,借助Floodlight控制器可对视频流进行单独区分并且保障其带宽。
本文在Mininet仿真实验环境下实现了三个具体QoS策略:(1)限制基于TCP流量或者其他流量来保障服务级别高的带宽;(2)直接保障基于TCP流量或者其他流量的带宽;(3)借助Floodlight控制器对视频流进行单独区分并且保障其带宽。仿真实验验证了这三种QoS策略的有效性。
[1] McKeown N,Software-defined networking.[C].//INFO COM keynote talk/.2009.
[2]Open Networking Foundation.Software-defined networking:The new norm for networks.[R].ONF White Paper/.2015.
[3]Thomas D.Nadeau,Ken Gray,毕军,张绍宇,姚广等.软件定义网络:SDN与OpenFlow解析.[M].北京:人民邮电出版社.2014.
[4]左青云,陈鸣,赵广松等.基于OpenFlow的SDN技术研究.[J].软件学报.2013(05):1078-1097.
本文受国家自然科学基金(61461055,61761049)与云南省高校科技创新团队支持计划资助(通讯作者:李琰)。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!