刘俊 曾少华
摘要:SDN是近年来网络界的研究热点之一,自斯坦福大学首次提出SDN概念以来已引起国内外研究人员的极大关注和研究。SDN是一种新的网络体系结构,其核心原则是分离控制平面和数据平面。随着SDN网络的快速发展,对SDN网络进行有效的网络测量变得越来越重要。SDN网络的构架与传统的TCP / IP网络完全不同。这使得传统的端到端网络测量工具对于SDN网络都不再适用。为了在SDN构架下实现端到端的网络测量,本文提出一种新的SDN网络主动测量机制。这种机制以主动测量为目的,依据SDN网络的新型构架,对SDN协议和交换机进行了扩展完成相应测试功能。仿真结果表明,该机制可以获得准确的网络测量结果,并且具有良好的可扩展性。
关键词:计算机网络;软件定义网络;网络测量
中图分类号:TP393.06文献标识码:A
Abstract:SDN is a new network architecture proposed by Stanford University. The kernel principle of SDN is that separating the control plane and the data plane of the network. With the rapid development of the SDN network, the research of efficient measurement mechanism on SDN network becomes more and more important. The unique features of SDN network make the measurement and monitoring techniques on SDN network quite different from those on traditional TCP/IP network. Based on the fully use of the characteristics of SDN, we construct a new active SDN network measurement mechanism to measure the endtoend path performance of the network. This mechanism takes the active SDN network measurement as the goal by extending the SDN protocol and the SDN switches. The simulation shows the mechanism can provide accurate network measurement results.
Key words:computer network;software defined networking;active network measurement
1引言
SDN是一种新的网络构架,核心思想是网络的控制平面和转发平面分离,网络设备具有开放的可编程接口和网络的集中控制。随着SDN实验网络和商用网络规模的扩大,对SDN网络进行准确的测量和监控,意义非常重大。现有SDN实现中,对SDN网络进行端到端主动测量尚无较好解决方案。
SDN网络的构架与传统IP网络区别很大,SDN控制器的加入使得SDN可以方便的进行网络被动测量。在OpenFlow 交换机中,保存了流表相关统计信息,可以记录收到数据包数、字节数等数据。控制器可以通过查询获取这些信息。这些被动网络测量方法不能获得端到端的重要网络参数如时延、抖动、可用带宽等。同时,被动测量会给SDN控制器带来较大的负载,如果没有专用硬件进行相关统计,影响控制器的处理能力。被动测量SDN网络的研究有:OFRewind[1]通过记录和回放SDN 控制平面的流量来诊断网络故障,这种方法对整个流进行记录。这是一种被动SDN网络测量方案,需要占用较多的数据存储资源来存放网络流量数据。OpenTM[2]通过网络控制器主动查询OpenFlow交换机相关数据进行网络测量,获取每个交换机的流统计数据。实际运行时会给控制器和和交换机带来较大的负载。SDN traceroute[3]采用了染色算法去捕获相应的探针包,实现了对流路径的逐跳跟踪,能够在SDN网络输出数据包在网络中的完整路径。文献[4]设计了一种SDN控制器控制测量实体进行分布式测量机制,同时基于正则表达式、散列技术和可扩展的统计函数库等方式设计了一种分析测量日志的功能。本质上这是一种分布式被动SDN测量机制,不能取得主动测量的相关网络参数。文献[5]对OpenFlow 软交换机的性能进行了测量分析。该测量方法也是采用被动测量方法进行的。
在SDN网络中,要进行端到端的网络主动测量是较难实现的。传统TCP/IP广域网络没有控制中心,端到端网络测量都是由网络始端发起到终端进行的,依靠的是ICMP等已有协议。而SDN网络具有统一的SDN控制器,在控制器的参与下,测量可以不依赖ICMP协议进行。如果有SDN控制器的全程参与,测量结果更为精准可靠。现有SDN网络主动测量解决方案都是通过加入额外的网络探针或者通过PC客户端发起测量的。这样实现代价较大,且无法直接通过SDN控制器查询测量结果。
主被动测量SDN网络的研究有:Stanford大学开发了一套OpenFlow网络测量系统[6]。可以测量SDN网络流数量、速率、时延、丢包率等性能参数。该系统在网络中部署了多台独立的测试探针,每个探针与一台OpenFlow交换机相连用于测量该交换机相关参数。这张实现方法测量准确,但是必须部署大量探针设备,实现代价较高。Ofpeck[7]通过和OpenFlow交换机上的一台PC上发起网络测量,这种方法不涉及SDN控制器参与测量,测量数据准确性与实时性有待进一步提高。自动测试数据包生成(Automatic Test Packet Generation,ATPG)[8]通过发出测量包来验证包转发及拥塞、丢包情况,方便SDN网络排除故障。但该方法不能进行路径的端到端性能测量。OpenSketch[9]是一种符合SDN构架的主动测量体系,将测量分离为转发和控制两部分。控制平面上OpenSketch包含了任务库,设计了一套通用测量框架。数据平面上,OpenSketch 提出了一套三阶段流水线。这套框架设计较为合理,准确性较高,与本方案有类似之处。PayLess[10]是一种通过主动式信息采集进行方法进行网络测量的方法。用户可以在SDN控制器中同时运行多个并发的测量任务。Payless可以动态调整询问频率,减少网络测量的开销,提高测量精度。这种方法不能取得端到端的网络性能指标。文献[11]提出了一种计算SDN中的端到端时延的方法,这种方法是一种主动探测和被动探测相结合的方法,通过特殊方法计算出第一个数据包的时延,再通过快速方法计算相邻数据包端到端时延之差。这种方法只能单一测量端到端时延,不能测量其他参数,而且由于是推算出的时延而非实际探测,其准确性有待验证。
为了充分利用SDN构架下网络设备具有开放的可编程接口和网络的集中控制的特性,在SDN网络进行精确端到端的网络测量,本文提出了一种新的端到端网络测量机制。这种机制的创新点如下:
1)机制以SDN控制器为测量控制主体,以SDN交换机作为测量探针,无需增加额外设备,相对实现代价较小,具有较好的可用性。
2)机制充分利用SDN网络灵活构架,对SDN协议和交换机进行了软件定义扩展,扩展严格遵守SDN API规范,保证了测量机制的普适性。
2SDN构架下一种端到端网络主动测量机制
2.1测量机制
本文中提出的端到端网络测量机制,其核心思想是通过SDN控制器发起并完成探测。首先由SDN控制器发起测量任务,让源交换机发出特定测量包序列,通过SDN网络逐跳转发至目的交换机。目的交换机收到探测报文后返回给源交换机,最后交还至控制器完成测试。完成一次SDN构架下端到端网络测量,其过程描述为以下5个步骤,具体如图1所示:
1)用户通过网络测量APP,在SDN控制器上发起测量任务。
2)SDN控制器根据指定的源、目的交换机,下发针对网络测量的流表扩展、Action扩展,使源、目的交换机具有网络测量包处理能力。
3)SDN控制器构造测试报文,指定测量源、目的地和测量流路径的标识,并通过Packet out报文将测试报文送至源交换机。
4)源交换机收到Packet out报文后,根据更新流表,对包进行识别匹配,识别后打上时间戳进行正常转发。测量包在经过非源、目的交换机时,当作普通IP数据包转发。数据包到达目的交换机后,目的交换机通过下发的流表识别为测量包。目的交换机触发网络测量相应Action,交换测量包源地址和目的地址,将数据包向源交换机传递。
5)源交换机收到返回的测量包后,打上时间戳,通过Packetin报文将测量包通过控制通道返回至SDN控制器。SDN控制器提取相关测量结果完成一次测量。
根据源交换机、目的交换机打下的时间戳,可以计算出源端至目的端的双向时延、抖动、丢包率等重要网络参数。对于端到端可用带宽测量,可以扩展以上主动测量机制,采用测量包速率模型(PRM)的方法进行探测得出。PRM是利用自引入拥塞(self-induced congestion)现象进行带宽测量。发送端每次以不同的速率向网络注入测量包。如果发送速率大于路径可用带宽,那么测量包会首先在紧链路出现排队,单向时延呈增大趋势;而如果发送速率小于路径可用带宽,测量包的单向时延没有明显的增大趋势。发送端通过一定的算法调整发送速率,从而找到一个临界点或临界区域。典型的基于PRM的测量工具有PTR[12] 、Pathload[13]、Pathchirp[14]、TOPP[15]。本机制采用类PRM方法实现了可用带宽测量。
2.2系统构架
依据SDN软件定义网络的控制与转发分离的基本原理,本测量机制严格按照可软件定义的思路设计。在增加网络测量功能的同时,不对SDN交换机做出大的改动。整个测量系统分为两部分:
1)对SDN控制器进行扩展,开发部署网络测量APP。
2)对SDN交换机原有流表和Action进行扩展,并由SDN控制器下发至源、目的交换机。
2.3SDN网络测量APP
SDN网络测量APP是根据SDN软件可定义原理,根据SDN API规范进行设计,采用Python语言开发。SDN网络测量APP是测量的控制主体,负责完成测量任务的配置、下达和调度安排,并且将测量结果进行回收、计算和保存。SDN网络测量APP可以支持其所在SDN控制器管理的任何两台交换机作为测量的起点和终点,可分为三个主要功能模块,如图2所示:
1)任务调度模块:由任务调度模块负责创建任务并把任务插入到任务队列中,并且按顺序对任务队列中的任务进行调度执行。
2)测量通信管理模块:该模块向上监听任务调度模块发起的指令、向下对SDN控制器发送和接收测量信令消息。信令消息包括系统配置、任务下载与任务管理等;
3)结果处理模块:SDN网络测量APP维护一个存放测量结果与系统全局配置的管理信息数据库。任务执行结束后会调用结果处理模块将测量结果保存至外部数据库中。
2.4SDN交换机扩展
SDN交换机根据控制器下发的流表进行转发。在扩展前,SDN交换机无法识别和转发网络测量包,不具备网络主动测量探针的功能。因此,为实现端到端网络测量,需通过软件定义方法,为传统SDN交换机扩展网络测量探针的功能。具体包括如下两部分功能扩展:
网络测量包格式及SDN交换机流表扩展。为了区分网络测量包和一般流量包,本机制采用了新的包格式。具体利用IP包头TOS(服务类型)区域进行区分, TOS中最后一位如果置位则为测量包。测量包还在包头后的载荷内预留了两个时间戳字段,用于保存数据包发出、到达的时间。测量包按协议划分,可区分为UDP测量包和TCP测量包。每种测量包分别用于单向时延测量、往返时延测量。可用带宽测量也是通过单向时延测量计算得出的。TCP测量包还可根据端口号进行如HTTP等应用层延迟测量。应用层延迟测量的测量包则由特殊端口号和TOS字段共同进行标识。
SDN交换机包解析过程如下:对SDN交换机而言,数据包进入交换机后,首先进入包解析模块进行解析和匹配,之后才能进入Pipeline进行转发。SDN交换机包解析模块根据Packet结构,从协议解析表的根节点开始进行遍历匹配,直至匹配到具体该数据包应符合的类型叶子节点。协议解析表中,包解析模块通过每层节点的帧、包、端口号等字段,区分下层协议。匹配完成后包解析模块就识别了该包的具体协议,并将该协议作为匹配结果放入Packet包结构中。流表匹配项格式为TLV,由于为了实现可软件定义的网络测量支持,流表必须釆用TLV格式的匹配项。
普通SDN交换机是无法区分测量包与正常流量包的。因此必须对协议转发表即流表进行扩充,增加相应数据结构,并将其数据结构链接到原有协议转发表上。SDN控制器需下发新的网络测量包解析流表到源端、目的端SDN交换机。这样,测量包的特殊字段也可以动态的在流表项目匹配库中得到匹配。开始测试前,控制器下发多条协议表修改消息,在起点、终点SDN交换机上修改原有协议解析表。这样测量流量数据包进入包解析模块时,就能正常解析测量包,并将测量包类型放入Packet结构中保存,供Pipeline匹配相应的测量Action操作。其他中间节点交换机不需要区分测量包与非测量包,直接把测量包当成普通IP数据包转发即可。图3是一个改进的可支持SDN网络测量的协议解析表示意图。3Action 扩展
SDN交换机的Pipeline流表由多个流表项组成。SDN交换机将Pipeline送来的数据包进行匹配。在SDN交换机中,实际进行数据包转发操作的是预先设计好的Action操作,由Action操作具体进行数据包处理。多个Action组合成一个Instruction。现有OpenFlow实现了17种Action,其中给数据包进行封装的Action有两种:VLAN头封装和MPLS头封装。但是现有17种Action中,没有专门考虑对网络测量包进行处理。为了使Pipeline识别专用网络测量包后能进行处理,需要添加新Action来增强OpenFlow网络的的扩展性,使得其能够满足网络测量中对主动探测数据包和交互信令操作和处理的需求。新增Action有三个:
1)测量包打时间戳Action:交换机收到SDN控制器发来的Packet out报文后,在测量包打上时间戳(将时间写入测量包载荷专用字段)然后将数据包转发给下一跳。
2)测量包ECHO Action:目的交换机收到测量包后,经判断自己为数据包目的时,如果为往返时延测量,则将测量包源地址及目的地址互换,并将包继续转发。
3)测量包回收Action:目的交换机收到测量包后,如果为往单向时延测量,则打下时间戳后,通过Packetin报文将测量包通过控制通道返回至SDN控制器。
本机制中采用现有的OpenFlow协议消息进行交换,未扩展新的OpenFlow协议消息。控制器与交换机之间的通信釆用OpenFlow协议进行通信。通过本机制对网络进行主动测量的过程中,直接采用现有的OpenFlow协议进行控制器与交换机之间的通信。对于网络测量包的发出、提取,直接采用OpenFlow协议中的Asynchronous类型中Controller to switch类报文完成。SDN控制器发送Packetoutput报文生成测量包。测量结果回收由SDN交换机使用Packet input notification将测量包返回SDN控制器。测量中无需增加新的OpenFlow消息类型,这样使得本机制具有更大的可通用性。
4实验设计与结果分析
4.1实验仿真平台
本文搭建了一个基于SDN的端到端网络主动测量系统测试环境,其中包括5台服务器。其中1台用于部署NOX控制器、4台用于部署OpenFlow交换机。控制器与OpenFlow交换机软硬件环境为:两路服务器CPU八核3.0G,16G内存,配置8个GE千兆网络接口,操作系统 Linux Ubuntu 12。采用两台思博伦Testcenter SPT-3U 以太网测试仪作为背景流量的发生与接收。
测量组件网络测量APP在NOX 控制器上运行。控制器与交换机采用带外管理的模式:NOX控制器的服务器采用多片网卡直连其他SDN交换机的专用网卡,作为专用通道用于协议通信。测试过程中,使用以太网测试仪模拟背景流量。背景流量由思博伦以太网测试仪从a接口注入网络,接收端的以太网测试仪在h端口进行接收流量。背景流量采用TCP包进行发送,报文长度由100byte至1400byte逐渐递增。速率由以太网测试仪调节后恒定在100Mbps。
4.2PING值与丢包率测量
SDN控制器设置第一台SDN交换机为源交换机,第四台为目的交换机。每秒发起一次测量任务,连续发10次,如产生丢包则补测。取10次测量结果算术平均值作为往返时延。测量包大小设为64byte,加上8个byte的前导字节以及12个byte帧间间隙,合计84byte。测量方法如下:
1)SDN控制器上运行的SDN网络测量APP下达PING值测量任务。
2)源交换机收到SDN控制器发来的PING的测量包后,在测量包打上时间戳(将当时准确时间写入测量包时间戳字段)然后将数据包转发给下一跳。
3)目的交换机收到测量包后,经判断自己为数据包目的时,如果为往返时延测量,则将测量包源地址及目的地址互换,并将包继续转发。
4)最后源交换机通过Packetin报文将测量包通过控制通道返回至SDN控制器。
5)SDN控制器计算出往返时延返回给APP。
测量结果分析:实验数据结果可见表1,从表1可知,PING值测量结果与由以太网测试仪直接进行PING测试得到的PING值基本一致。由于测量点不完全一样,以太网测量结果稍大。在丢包率测量过程中,由于采用PC服务器搭建的OpenFlow软交换机处理能力有限,成为网络性能瓶颈,在网络背景流量包长为100byte、200byte时,试验网络中背景流量包丢包严重,测量包也同样产生丢包现象。测量包丢包率结果比由接收端以太网测试仪得到的背景流量丢包率稍低,这可能是因为OpenFlow软交换机对于不通类型、大小的数据包在队列满时丢弃原则不同造成的。
4.3可用带宽测量
SDN控制器上运行的SDN网络测量APP下达可用带宽测量任务。SDN控制器设置第一台SDN交换机为源交换机,第四台为目的交换机。测量包大小设为1400byte。测量方法如下:
SDN控制器控制源交换机不断发出1400byte测量包,目的交换机将记录测量包单向时延并返回给SDN控制器。SDN控制器线性增加发送速率,发现单向时延增加后停止测量。取5次1400测量包的发送速率算术平均值作为测量结果。如丢包率超过10%不能完成测量,则可用带宽为零。由于同样受到实验网络包转发率的限制,试验网络达不到GE速率的线速转发。根据采用以太网测试仪多次实验观测,试验网络包转发率软交换机的转发能力在0.4Mpps左右。以太网测试仪产生持续的100Mbps背景流不但占用了可用带宽,而且在背景流包长较小时占用了较大的包转发资源。可用带宽理论值可根据包转发率和背景流包长直接计算得出,作为可用带宽测量的参考值。实验结果见表1,实验结果对比见图5。
测量结果分析表明:可用带宽测量结果与可用带宽参考值基本吻合。这种基于测量包速率模型(PRM)的方法进行探测,网络开销较大。
5结论
本文提出了一种适用于SDN网络的端到端的网络主动测量机制。该机制充分利用了SDN网络可软件定义的特点,采用SDN交换机作为测试探针使用,对SDN控制器资源占用较少。实验结果表明,该机制可以较好地实现SDN网络端到端的网络主动测量,在实验室环境下测量结果较为准确,并且具有良好的可扩展性。研究小组正在对该机制进行进一步实验测试,以提高测量精度并增加新的测量种类。
参考文献
[1]WUNDSAM A D,LEVOM S.SEETHARAMAN,at al.OFRewind:enabling record and replay troubleshooting for networks [C].In Proceedings of USENIXATC11,2011.
[2]TOOTOONCHIAN A,GHOBADI M,GANJALI Y. OpenTM: traffic matrix estimator for OpenFlow networks[C] Proc of the 11th Passive and Active Measurement Conference. Berlin: SpringerVerlag,2010:201-210.
[3]AGARWAL K,ROZNER E C,DIXON J.Carter.SDN traceroute: Tracing SDN forwarding without changing network behavior[C].In Workshop on Hot Topics in Software Dened Networking, 2014.
[4]翁溪,陈呜,张国敏,等.OpenFlow网络测量分析系统的设计实现[J] .通信学报,2015,36(3).
[5]蒋培成,陈鸣,李兵.OpenFlow软交换机的性能测量[J] .重庆邮电大学学报:自然科学版,2013,25(1).
[6]Stanford OpenFlow Measurement Infrastructure [EB/OL].https://OpenFlow.org/foswiki/bin/view/OpenFlow/Deployment/Measurement
[7]Ofperk [EB/OL].http://archive.OpenFlow.org/wk/index.php/Ofperk
[8]ZENG H,P KAZEMIAN G, VARGHESE, N.Mckeown Automatic test packet generation[J].IEEE/ACM Transactions on Networking , 2014, 22(2):554-566
[9]YU Minlan, JOSE L, MIAO Rui. Software defined traffic measurement with OpenSketch [C].Proc of the 10th USENIX Symposium on Networked Systems Design and Implementation. Berkeley: USENIX Association,2013:29-42.
[10]CHOWDHURY S R,BARI M F,AHMED R,et al. PayLess: A low cost network monitoring framework for software defined networks[C]. Proc. of the IEEE Network Operations & Management Symp. Washington: IEEE Computer Society Press, 2014. 1-9.
[11]晓鹏,黄传河,农黄武,等.SDN中的端到端时延,计算机工程与科学[J].2016,38(1):67-72.
[12]HU Ningning,STEENKISTE P. Evaluation and characterization of available bandwidth probing techniques[J]. IEEE Journal on Selected Areas in Communications, 2003, 21(6):879-894.
[13]JAIN M,DOVROLIS C.Pathload : A measurement tool for endtoend available bandwidth [C].Fort Collins: Proc of Passive and Active Measurements workshop (PAM02), 2002:14-25
[14]RIBEIRO V,RIEDI R,BARANIUK R,et al.PathChirp : Efficient available bandwidth estimation for network paths[C]. LaJolla, California: Workshop on Passive and Active Measurement (PAM), 2003.
[15]MELANDER B B,JORKMAN M,GUNNING BERG P. A new endtoend probing and analysis method for estimating bandwidth bottlenecks[C]. San Francisco: Proc Global Internet Symposium, 2000.415-420.