APP下载

组播实现的SDN虚拟网络控制器

2021-09-08陈泽婵张建丰林少兴

中国新通信 2021年14期
关键词:软件定义网络

陈泽婵 张建丰 林少兴

【摘要】    在软件定义网络(SDN)中,为构建应用于任意单点对多点场景的虚拟网络,可采用的常规实现方式有点对点直连或服务器代理,但两种方式均存在流表规模巨大、带宽消耗较高、QoS能力不足等缺点,使用三层组播方式构建虚拟网络则可有效解决以上问题。“SDN虚拟网络控制器”利用单源最短路径Dijkstra算法计算所有成员之间的点对点最短路径,以每个成员作为源节点合并重复路径,生成所有成员的组播转发树,应用OpenFlow协议的组表概念配置SDN交换机流表,实现虚拟网络构建。同时,在SDN交换机的端口制定QoS策略,实现区分服务。通过搭建物理设备测试系统,验证了该“SDN虚拟网络控制器”构建虚拟网络的可行性,且具备一定粒度的组播QoS能力,可根据用户需求保障虚拟网络中各成员节点间的数据传输业务。

【关键词】    软件定义网络    组播    OpenFlow 组表    虚拟网络

引言:

随着互联网的高速发展,网络用户的需求呈现多样化趋势。如何根据用户需求构建网络,并保证不同业务的网络传输质量,是互联网研究者面临的新难题。

网络虚拟化为解决这个问题提供了便利条件,网络虚拟化使多个逻辑上隔离的虚拟网络(下文简称虚网)可以共存于同一个物理网络之上,各个虚拟网络实现不同的功能,彼此的拓扑结构、业务流量和管理互不影响。但网络虚拟化在传统网络设备上的部署需要复杂的软件平台支持,或需要专用可编程硬件设备实现,且需要对每台设备进行配置,操作繁琐。

而SDN的架构特点在实现网络虚拟化时具有天然的优势,SDN最大的特点就是将设备的控制逻辑与转发功能分离,采取集中控制和软件编程实现网络控制,在通用的硬件转发设备上部署虚拟网络将变得灵活高效。

当发送者发送同一数据包给多个接收者时,组播可使网络中任何一条链路只传送单一的报文,从而有效利用带宽,降低網络负载,同时避免了单播和广播中可能出现的广播风暴问题。

本文基于上述技术的特点,探讨了在SDN网络中虚网的实现方式,设计并实现了一个基于组播方式的“SDN虚拟网络控制器”(简称虚网控制器),虚网中任一成员发送数据,其他所有成员均可接收到,且根据用户需求为虚网通信预留一定的带宽资源,具有一定的QoS保障能力。

一、SDN虚网构建方式分析

在构建虚网时,可采用点对点直连、服务器代理以及组播等方式。若全网节点数为,用户设定的虚网成员个数为、预留带宽为,有如下分析。

1.1点对点直连方式

点对点直连方式在任意两个虚网成员之间创建逻辑专用通道,在路径节点下发源地址到目标地址的流表。因节点间是双向通信,则需要构建条逻辑专用通道。但根据实际网络拓扑,将单条逻辑通道映射到物理网络上时,无法确定中间物理节点,因此SDN实际配置的流表数可能远远大于,最大可达。

如图1所示,图中只简单标识了节点A对其它节点D、E、F和H的单向通道,理论上只需要创建4条逻辑专用通道,但实际需要配置12条流表才能实现理想状态,且节点的带宽预留值最高为。

由此可见,通过点对点直连方式,随着拓扑的复杂性增大,需要下发的流表规模急剧增大,并且节点间可能存在多条带宽资源预留配置,如图1所示。在此情况下,为节省带宽资源,控制面需要将节点间多条带宽资源预留配置映射到同一转发队列,同时固定转发队列带宽为。

此种方式下,节点间多条资源配置复用同一转发队列,QoS无法得到保障。

1.2服务器代理方式

通过服务器代理方式构建虚网,即选择某个节点作为服务器。任意虚网成员发送数据时,数据首先发往服务器,由服务器根据虚网成员列表进行数据分发,完成点到多点的数据传输。

相对于点对点直连方式,从逻辑专用通道看,服务器代理方式只需要构建数据集中处理点和各节点间的逻辑专用通道,即条,同样,逻辑专用通道映射到物理网络上时,服务器代理方式也无法确定中间物理节点,因此SDN实际配置的流表数最多可达。

由此可见,通过服务器代理方式构建通道方式,同样存在流表规模较大、节点间可能存在多条带宽预留配置的问题。若为节省带宽资源,将节点间多条带宽资源预留配置映射到同一转发队列,同时固定转发队列带宽,则存在QoS无法保障的问题。

此种方式对服务器的处理能力、可靠性和带宽要求极高。数据包必须经过服务器转发给接收者,因此转发路径不是最短路径。

1.3组播方式

通过组播方式构建虚网时,对所构建虚网分配组播地址,所有虚网节点作为组播成员,计算各节点到组播IP地址的组播转发树,并向路径节点下发组播流表及端口带宽预留。

从逻辑专用通道看,组播方式只需要构建条组播成员到组播地址通道,如图2所示。同样,逻辑专用通道映射到物理网络上时,组播方式也无法确定中间物理节点,因此SDN实际配置的流表数最多可达条,但数量小于点对点直连方式以及服务器代理方式,如图2所示。

1.4构建虚网方式对比

通过点对点直连方式或服务器代理方式构建虚网,其实现都是通过应用层的点对点数据分发方式,而组播方式的实现与应用层数据分发方式的区别主要有:

1.路径计算复杂化,需要计算组播转发树;

2.虚网中的终端需支持组播功能;

3. SDN交换机需支持组表,SDN交换机可复制数据包并同时向多个输出端口转发,在交换层实现点对多点数据分发;

4.保障QoS效果,组播方式在单个输出端口只发送一个数据包,有效利用预约的带宽资源。

3种虚网构建方式的对比见表1。

二、系统设计

2.1总体设计

虚网控制器主要包含资源调度、组网控制、资源池等模块,如图3所示。

服务质量保证(QoS)可以通过设置IP首部的TOS字段做到区分业务服务。但由于传统交换机端口上难以支持多个队列,因而无法实现多用户、多虚网情况下的带宽预约和隔离。所以本系统中利用openvswitch(OVS)交换机的队列调度机制实现虚拟网络的带宽预约与隔离。

2.2控制流程

虚网控制器启动后,组网控制实时收集并汇总节点资源信息,汇报给资源池,构建并维护实时更新的全局网络资源池。

构建虚网时,用户指定组播地址、组播端口,选择虚网业务类型及加入到虚网的骨干节点,虚网中的骨干节点下挂的所有接入设备均为组播组成员。

资源调度接收到用户的虚网构建请求后,计算每个组播成员的组播转发树,按路径节点逐个向组网控制发起虚网构建请求。

组网控制负责控制各路径节点OVS的组播流表安装。

虚网构建的控制流程如图4所示。

三、模块详细设计

3.1资源调度模块

资源调度在虚网构建过程中涉及的功能有资源调度管理、路径计算管理、点对点路径计算、组播转发树生成。

资源调度管理接收用户的虚网构建请求,并向路径计算查询请求计算路径。

路径计算管理接收资源调度的组播路径请求,分解为两两虚网成员的点对点路径请求,并请求点对点路径计算单元完成路径计算,同时根据计算结果通知组播转发树生成计算虚网成员节点的组播转发树。

点对点路径计算以网络拓扑骨干节点作为图的节点,根据用户指定的业务类型和全局资源池信息确定边的权值,利用单源最短路径Dijkstra算法计算组播组两两虚网成员节点之间的最优路径。

组播转发树生成采用逐个在组播组成员上构建源树的方式,实现所有组播成员间的双向数据收发。在单个组播成员上,将最优路径合并,生成该成员的最优转发树。再根据组播成员信息更改目标路径,其中组播成员地址与目标路径中的节点地址匹配时,需要增加该节点接入接口作为此路径条目的出口,用于将数据包转发到接入接口处的终端。然后将组播转发树分解为每个路径成员(每个虚网成员有各自的组播转发树,路径成员指所有组播转发树包含的路径节点集合)的资源预留条目,逐个封装结果发往组网控制进行流表下发。

3.2组网控制模块

组网控制模块软件构成如图5所示。

资源信息采集通过收集并汇总节点设备参数、邻居、带宽等信息,汇报给资源池,构建并维护全局网络资源池。

虚网构建接收到资源调度发出的虚网构建请求后,通过QoS配置通知OVS创建对应出端口的QoS策略,并根据业务类型配置队列的优先级、根据预留带宽范围配置队列的最大/最小速率。

QoS策略创建成功后,虚网构建调用流表管理向OVS发送协议,创建类型为all的组表,并安装对应的流表,实现数据包的克隆和多端口转发。

四、系统测试

4.1测试环境

测试环境如图6示,switchA/B/C/D构成骨干网络、PC1/2/3/4为接入终端。左下框中的PC5+E负责产生QoS业务数据,可视为接入终端。

4.2组播功能测试

1.用户向A的虚网控制器发送申请,将A、C、D加入虚网,业务类型选择“普通”,组播地址为224.0.0.100,组播端口为5002。

2. PC1、PC2、PC3、PC4启动测试工具,加入IP为224.0.0.100、端口为5002的组播组;

3.在任意PC发送数据,组播组中的PC均能收到。

4.3 QoS测试

系统中所有网卡限速10M,使用iperf3软件测试。

4.3.1  无QoS能力测试

继续执行如下步骤:

4. PC4上打开分别监听5001、5002端口。

5. PC1首先向PC4的5001端口发起60s点对点灌包。启动10s后,再向组播组224.0.0.100的5002端口發起20s组播灌包。

测试结果为:忽略起始5s,点对点灌包平均带宽约为9.7 Mbps,组播灌包平均带宽为0。

该结果表明在未设置QoS策略时,OVS将优先分配带宽给先传输的业务数据,带宽耗尽后,后传输的数据将无法保障QoS。

4.3.2  QoS能力测试

为获得具有dscp值的业务数据,在E上设置匹配udp端口号为5002则执行动作SET_DSCP:46的流表。则发往组播端口5002的数据,经过E后dscp值将被设置为46。

详细测试步骤如下:

1.用户向A的虚网控制器发送申请,将A、C、D加入虚网,业务类型选择“交互话音”,组播地址为224.0.0.100,组播端口为5002。

以D为例,增加队列id为1、最小速率1Mbps、最大速率5Mbps的队列配置;增加匹配dscp值为46则动作为SET_QUEUE:1的流表项。

2. PC1、PC2、PC3、PC4加入目标IP为224.0.0.100、端口为5002的组播组。

3. PC4上监听5001、5002端口。

4. PC5首先向PC4的5001端口发起60s点对点灌包。启动10s后,再向224.0.0.100的5002端口发起20s组播灌包。

测试结果为:忽略起始5s,点对点灌包平均带宽约为7.2 Mbps,组播灌包平均带宽约为4.7 Mbps。

该结果表明,在网络发生拥塞时,通过在OVS交换机上设置QoS策略,可以限制低优先级数据流占用带宽,保障高优先级数据流的传输。

猜你喜欢

软件定义网络
面向未来的传输综合网管系统演进研究
基于队列树的SDN控制器高效消息处理机制
中国联通SDN的思考和应用实例
业务功能链技术及其应用探析
针对大规模软件定义网络的子域划分及控制器部署方法
一种新的SDN架构下端到端网络主动测量机制
超高吞吐率Wi—Fi融合应用新技术分析