OpenFlow网络基于DiffServ模型的QoS管理机制的实现

2014-11-20 08:19陈秋红刘国辉
电视技术 2014年5期
关键词:数据流结点队列

吴 慧,陈秋红,刘国辉

(1.武汉邮电科学研究院,湖北武汉430074;2.光纤通信技术和网络国家重点实验室,湖北武汉430074)

随着网络的快速发展,传统网络模型已经很难满足网络发展的需求,软件自定义网络(Software-Defined Networks,SDN),一种新型的网络模型越来越受到重视。OpenFlow是一个标准化SDN应用协议,旨在以现有TCP/IP技术条件为基础,将传统网关设备的控制平面与数据平面分离,以分布式、集中式控制的管理架构,实现网络流量的灵活控制和设备的灵活部署[1]。然而,OpenFlow技术才刚起步,想要大规模部署还存在很多问题,比如与IP网络的互通性、QoS等问题,因此对OpenFlow网络中QoS管理机制的研究极具意义。

1 OpenFlow技术

OpenFlow是美国斯坦福大学于2007年提出的一种支持网络创新研究的新型网络交换模型,该模型通过开放流表支持用户对网络处理行为进行控制,从而为新型互联网体系结构研究提供新的实验途径[2]。

OpenFlow是一种SDN网络,由一个包含整个网络拓扑的OF(OpenFlow)控制器和拥有流表的OF交换机组成,前者通过开放的OF协议对OF网关设备中的流表进行编程,决定每个数据包的传输路径,而后者只负责对数据进行转发,简化底层设备的工作负载。

1个OF交换机至少包含3个部分[3]:Flow Table(流表)、Secure Channel(安全通道)、OpenFlow Protocol(开放流协议)。OpenFlow交换机的体系结构如图1所示。

图1 OF交换机的体系结构

OF(OpenFlow)交换机中每个Flow Table流表项包含3 个域[4]:Head Fields(包头域)、Action(动作)、Counter(计数器),如图2所示。

图2 OF交换机中流表项的组成

当有数据包到达时,OF交换机将其送入Pipeline流水线中进行处理,即查询流表项,若查询到,就按照匹配的流表中Action域进行处理;若未查询到,就把数据包的第一个有效分组进行OF协议封装并通过安全通道发送到控制器,等待后续动作的确认。

2 QoS技术

QoS(Quality of Service)即服务质量,它是一种网络安全机制,用来保证网络延迟、带宽和阻塞等性能[5]。目前,IETF为QoS机制提供3种服务模型:BestEffort(尽力而为服务模型)、IntServ(综合服务模型)和DiffServ(区分服务模型)。

DiffServ通过定义几种特定的服务类型对业务流进行分类,并为不同的分类提供对应的每跳行为(Per Hop Behavior,PHB)来保证服务质量,实现多业务类型的QoS保证[6]。该模型灵活性好,易扩展,但只能提供逐跳行为的QoS保证,而非端到端的。

3 OpenFlow网络中QoS管理系统的实现

3.1 系统整体框架

本系统在OF控制器NOX上添加QoSCLI组件、QoS管理器和QoS数据库,实现QoS的管理层功能,在OF交换机Open Vswitch(OVS)上添加QoS代理和DiffServ流量控制模块,实现分类业务的流量控制机制,系统体系结构如图3所示。

3.2 控制管理模块间的信息交互

系统控制平面主要负责控制管理模块之间的信息交互,将管理员的服务质量需求通过指令的形式在整个管理域内生效,提供QoS配置和查询功能,例如对管理域内结点的QoS配置更改、状态查询和历史信息查看等。

当管理员从QoSCLI界面输入配置指令时,管理器会将指令信息进行OF协议封装,并通过安全通道发送给代理,同时更改数据库中实时配置信息。QoS代理会将收到的配置信息解析出来,并更改DiffServ模块的参数,例如分类规则、端口带宽限制、队列配置等,同时负责将Diff-Serv模块执行的结果反馈给代理,由代理封装并上传反馈结果给管理器。最后,反馈消息会被解析并显示在CLI界面上,整个QoS指令配置任务完成。

图3 OpenFlow QoS管理系统体系结构图

3.3 Diffserv流量控制模块的实现

DiffServ流量控制模块负责对底层交换机上的数据流进行流量控制,采用传统的区分服务模型与OF交换机的转发机制相结合,将前者的主要功能移植到OF软交换机上。在OF软交换机的数据流转发过程中添加了流分类、标记测量和队列处理等处理机制。

由于OF交换机只根据匹配到的流表项的Action域对数据流进行处理,所以系统在流进入Pipeline流水线处理之前,对流进行分类和标记,即修改IP包头中的DSCP值,然后在匹配到的转发端口上进行队列操作,保证不同DSCP值的包进入不同的队列,获得不同的PHB处理。OpenFlow QoS管理系统的DiffServ流量控制模块的数据流处理流程如图4所示。

DiffServ流量控制模块中各个部分的实现机制如下:

1)流分类:在DiffServ模型中,核心结点通过对DSCP值进行匹配并分类,而边缘结点则对包头中所有字段或部分字段的组合进行分类,将具有相同特征的单流汇聚成洪流,并送到不同的队列中进行处理。

2)测量和标记:按照事先约定好的规则,修改流分类处理后的聚合流IP包头中的DSCP值,确保拥有不同DSCP值的流进入到不同的队列中,进行调度。主要通过配置静态流规则对匹配到某种相同特征的流设置不同的Action动作,即通过set_nw_tos来修改IP的TOS值,此动作只需在边缘结点中执行。

图4 DiffServ流量控制模块数据流处理流程图

3)Pipeline:当数据流的DSCP字段被重新标记后,数据流被送入Pipeline流水线处理,负责将流送入到指定的端口进行下一步处理,此功能由Open vSwitch自动完成,不需要做任何改动。

4)队列:队列机制包括队列管理和队列调度,负责在交换机的端口上为拥有不同DSCP值的包提供不同队列的带宽资源分配、突发量、最大最小速率。在Open vS-witch的出端口上可以配置多个Linux-htb的队列,并设置不同的速率限制、突发和丢包率实现差别服务等级的流量调度。

4 功能实现和验证

为了验证系统的正确性和网络流量控制的性能,搭建了一个简单的DiffServ模型的小型网络,如图5所示。

图5 OpenFlow QoS管理系统实验拓扑

其中OpenFlow控制器为运行NOX及QoS控制程序的Linux(Ubuntu)主机,OVS为运行OpenVswitch及Diff-Serv组件的Linux(Ubuntu)主机,分别充当OpenFlow网络的控制器和交换机。OVS1为边缘结点,与控制器直连,OVS2为中心结点,PC1和PC2分别连接在2个结点上。为了简化网络路由,网络拓扑采用静态路由的方式实现,实验结果通过数据流获得的网络带宽和丢包率来验证。OVS配置如下:

#流分类,匹配tos值。1号端口流送入2号端口排队,不同tos值的流送入不同队列。

#ovs-ofctl add-flow br0"in_port=1 ip nw_tos=46 idle_timeout=0 actions=enqueue:2:0"

#ovs-ofctl add-flow br0"in_port=1 ip nw_tos=0 idle_timeout=0 actions=enqueue:2:1"

#标记 BE

ovs-ofctl add-flow br0"dl_type=0x0800 nw_proto=6 idle_timeout=0 actions=mod_nw_tos:0"

#标记EF,针对ftp流进行流量控制,设置不同的tos值。

ovs-ofctladd-flow br0"dl_type=0x0800 nw_proto=6 tp_dst=21 idle_timeout=0 actions=mod_nw_tos:46"

#PHB行为:通过linux-htb队列实现。不同dscp值的对应的队列速率限制不同。

#ovs-vsctl set port eth1 qos=@newqos

id=@newqos create qos type=linux-htb

other-config:max-rate=200000000 queues=0=@q0,1=@q1

id=@q0 create queue dscp=0

other-config:min-rate=100000000

other-config:max-rate=100000000

id=@q1 create queue dscp=46

other-config:min-rate=50000000

other-config:max-rate=50000000

从PC1向PC2发送2种优先级不同的流A、B,A为FTP流,B为普通无服务质量保证的流,网络总带宽为40 Mbit/s。在PC2上通过对A、B流量的分析,得到实验结果,如表1所示。

表1 系统实验结果

从实验结果可知,QoS管理系统能够正确地区分不同QoS等级的服务,并提供差别服务质量保证。系统使用前,不同的流公平占用网络流量,系统使用后,不同的QoS等级的数据流获得的网络带宽不同。

5 小结

本文通过简要的分析OpenFlow和QoS技术,结合OpenFlow对数据流的处理机制,提出了一种适用于Open-Flow网络的QoS管理机制,通过控制器集中控制管理域内的所有结点的QoS配置,并在底层OF交换机上配置静态流规则实现流分类、标记和入队等流量控制机制,实现了高效可控的QoS管理系统。但此系统需要人工配置QoS参数,且控制平面缺乏对网络流量的实时监控和资源利用率等信息的采集,不能根据网络环境提供动态的QoS策略,缺乏自适应性,因此更加智能和自适应的QoS管理体系还有待进一步研究。

[1]何国锋.OpenFlow在下一代数据中心网络的应用研究[J].互联网天地,2013,3(3):71-74.

[2]王丽君,刘永强,张健.基于OpenFlow的未来互联网实验技术研究[J].电信网技术,2011(6):11-14.

[3]NICK M,TOM A,HARIB.OpenFlow:Enabling innovation in campus networks[J].SIGCOMM Computer,2008,38(2):69-74.

[4] PFAFF B,HELLER B,PETTIT J,et al.The openflow switch specification[EB/OL].[2013-04-30].http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf.

[5]王海涛,宋丽华.IP网络的QoS通用框架及其体系结构[J].电视技术,2002,26(9):29-32.

[6]鲍慧,赵生岗,黄霞.基于DiffServ模型的调度算法[J].计算机工程,2008,10,34(20):130-132.

猜你喜欢
数据流结点队列
基于八数码问题的搜索算法的研究
汽车维修数据流基础(上)
汽车维修数据流基础(下)
队列里的小秘密
基于多队列切换的SDN拥塞控制*
在队列里
丰田加速驶入自动驾驶队列
基于数据流聚类的多目标跟踪算法
北医三院 数据流疏通就诊量
基于Raspberry PI为结点的天气云测量网络实现