APP下载

基于分布式SDN的机动通信系统拓扑发现方法

2024-01-16朱宇昂赵亚丽赫佳峦张晨光吴朝军贾晓晓

系统工程与电子技术 2024年1期
关键词:状态机网络拓扑局域网

朱宇昂, 赵亚丽,*, 赫佳峦, 张晨光, 吴朝军, 贾晓晓

(1. 北京航天晨信科技有限责任公司, 北京 100854;2. 火箭军装备部驻北京地区第七军事代表室, 北京 100037)

0 引 言

相比基于传输控制协议/网际协议(transmission control protocol/Internet protocol, TCP/IP)网络的传统机动通信系统[1],基于分布式软件定义网络(software defined network,SDN)[2-4]的机动通信系统具备集中处理控制逻辑、控制面转发面分离、灵活操控数据流、部署速度快、资源利用率高、运维管理便捷等优点,是未来机动通信系统的发展趋势[5-7]。然而在应用分布式SDN到机动通信系统的过程中[8-9]产生了一些问题,拓扑发现就是其中一个关键问题。

对机动通信系统而言,准确地发现网络拓扑是开通机动通信网络的必要前提,对分布式SDN来说,在拓扑发现时准确地收集信道种类、网络类型、信道带宽等网络信息是进一步实现其他网络功能的必要基础。然而由于网络架构的改变,分布式SDN网络和TCP/IP网络的层次划分不同、网络运行时需要的网络信息不同、报文格式和数据处理流程不同,因此基于TCP/IP网络协议的拓扑发现方法均不能直接应用于分布式SDN网络。也就是说,准确发现网络拓扑是应用分布式SDN到机动通信系统的前提,而目前缺少合适的拓扑发现方法[10]。

基于上述分析,本文分析了机动通信系统的网络特点,对主流SDN网络、传统网络的拓扑发现方法进行了研究,对TCP/IP网络的开放最短路径优先(open shortest path first,OSPF)协议进行了优化,提出了一种适合基于分布式SDN的机动通信系统的拓扑发现方法,并搭建仿真实验平台进行功能验证,为后续路径规划、流量隔离、负载均衡等上层SDN功能提供支撑。

1 拓扑发现方法研究现状

1.1 机动通信系统网络特点

基于分布式SDN的机动通信系统通常由数十个机动节点组成,按照节点在系统内的指挥关系分为一级节点、二级节点、三级节点等,各级节点按照指挥关系构建为胖树结构,每个机动节点搭载SDN控制器、SDN交换机、主机以及语音终端、区域宽带(自组网模式)、超短波电台(背负模式)等设备。这类基于分布式SDN、由移动节点构成的Ad Hoc网络通常被称为软件定义移动自组网(software defined mobile Ad Hoc networking,SD-MANET)。每个节点的车内设备通过有线介质接入交换机构成车内局域网,节点与节点之间可通过光纤、被复线等有线介质或区域宽带、超短波等无线介质构成车间局域网,各个节点均具备展开通信网络的能力,不共用同一无线信道。

车内局域网拓扑简单且设备连接关系固定,相对容易发现;车间局域网具备点对点信道与广播信道共存、网络拓扑状态变化频繁等特点,拓扑发现难度较大。车内、车间局域网共同构成了机动通信系统的全网拓扑,本文主要解决车间局域网拓扑发现问题。

综上所述,本文以三级机动通信系统为例说明研究内容,一个由7个节点组成的1∶2∶2的三级机动通信系统如图1所示,方框内表示节点携带的设备。

图1 三级机动通信系统示意图Fig.1 Schematic diagram of a three-stage mobile communication system

1.2 SDN拓扑发现方法研究现状

最早的OpenFlow拓扑发现算法(OpenFlow discovery protocol, OFDP)由NOX控制器最先提出[11]。NOX基于链路层发现协议(link layer discovery protocol, LLDP)和OpenFlow协议形成了OFDP算法。随着研究深入,OFDP算法主要在降低控制开销和提升网络安全性两方面得到了进一步发展。

减少Packet_in和Packet_out消息数量可以降低控制开销,例如OFDP version 2(OFDPv2)[12]将OFDP算法向每个交换机的每个端口各发一条Packet_out消息缩减为向每个交换机发一条,TEDP(tree exploration discovery protocol)[13]在OFDPv2的基础上,将向每个交换机发送一条Packet_out消息进一步缩减为向整个网络的源头交换机发送一条。此外,SD-TDP(topology discovery protocol for SDN)[14]和eTDP(enhanced topology discovery protocol)[15]基于分层代理的思想通过减少直接与控制器交互节点的数量降低控制开销,OFDP-PD(OFDP-port detection)[16]通过标记并检索已发现的端口避免对同一路径的重复发现,从而降低控制开销。

网络安全方面,文献[17]指出OFDP算法存在包括易受LLDP洪泛攻击在内的4种安全漏洞。文献[18]在此基础上提出sOFTDP(secure and efficient OpenFlow topology discovery protocol),杜绝了控制器受到LLDP洪泛攻击等危害的可能。SLDP(secure and lightweight link discovery protocol)[19]通过创建合法端口列表来避免攻击。

上述以OFDP算法为代表的拓扑发现算法均是基于LLDP协议发展而来的,能够完成车内局域网简单网络的拓扑发现,但是针对车间局域网拓扑发现存在以下问题,① 不能适应有线信道、无线信道共存,点对点信道、广播信道混和的复杂网络环境;② 缺少可靠的信息同步机制;③ LLDP帧的可扩展性不好,难以根据需求拓展专用报文。

1.3 机动通信系统拓扑发现方法研究现状

传统机动通信系统的拓扑发现方法主要基于LLDP[20]、生成树协议(spanning tree protocol, STP)[21]、OSPF协议[22]等,其中应用最广泛的是OSPF协议。OSPF协议是链路状态路由协议,工作在网络层,常用于在自治系统(autonomous system, AS)内规划路由,通过捕获OSPF协议的链路状态信息(link state advertisement, LSA)可以实现不注入额外流量被动探测网络拓扑的功能。

OSPF协议最初被应用于大型有线网络,近年来凭借能够适应点对点、广播、点对多点以及非广播多路访问(non-broadcast multiple access, NBMA)等多种网络,吞吐量高、可扩展性好、有可靠同步机制等优点[23]在无线网络也得到了一定程度的应用[24],并被证明在有线无线网络混杂的复杂网络环境下具备较好的性能表现[25]。文献[26-27]向标准SDN网络引入了OSPF协议,说明OSPF协议具备适应SDN网络的能力。

基于上述分析,OSPF协议能够满足车间局域网拓扑发现的大部分需求,然而由于机动通信系统需要节省无线信道带宽、网络拓扑状态变化频繁,OSPF协议仍存在控制开销较高、收敛速度慢、对拓扑变化响应不灵敏、缺少收集网络信息功能等问题。因此,本文对OSPF协议进行优化,使OSPF协议适应于分布式SDN网络,降低协议控制开销和协议处理时间,并增加收集信道种类等网络信息的协议功能,实现机动通信系统车间局域网拓扑发现功能,并使其具备同步车内局域网发现结果形成全网拓扑的能力。

2 OSPF协议优化方案

基于OSPF协议的拓扑发现原理是:协议报文按照协议状态机运转完成建立邻接、洪泛信息等功能,协议报文通过封装LSA传递网络拓扑信息,最后通过拓扑发现算法处理拓扑信息得到网络拓扑。因此,本节依次从协议状态机、协议报文、LSA以及拓扑发现算法4个部分说明优化方案。

2.1 OSPF协议状态机优化

OSPF协议的通用状态机考虑了点对点网络、广播网络、点对多点网络以及NBMA 4种类型。机动通信系统使用的光纤、被复线属于点对点网络,区域宽带、超短波、卫星通信等介质属于广播网络,不存在点对多点网络和NBMA。因此,本文删去与点对多点网络和NBMA相关的Attempt状态、Attempt状态与Down状态和Init状态的转换关系、事件Start及其相关动作。精简后的状态机可如状态转移模型描述:

(1)

式中:Si和Si+1分别表示状态i和状态i+1;Ej表示当前触发的事件;Dk表示触发当前事件的条件;Ai表示Si状态所执行的动作集;f(·)表示Si和Si+1之间的映射关系;g(·)表示Ai和Ej+1之间的映射关系。状态机的转换原理是:状态机处于Si状态时在Dk条件下受到事件Ej的触发转变为状态Si+1并执行动作集Ai中的动作,该动作在Dk条件下产生了新的事件Ej+1,达到了新的条件Dk+1,促使状态机进行下一次状态转换。状态Si、事件Ej、触发条件Dk定义分别如表1和表2所示。状态机提供可靠的洪泛机制和保证建立连接可靠性的协商机制,精简状态机有助于降低OSPF协议复杂度,能够降低协议控制开销和协议处理时间,精简后的状态机转换示意图如图2所示。

表1 状态Si列表Table 1 Status Si list

表2 事件Ej和触发条件Dk列表Table 2 List of event Ej and condition Dk

图2 精简状态机转换图Fig.2 Condensed state machine transition diagram

2.2 OSPF协议报文优化

OSPF协议报包括Hello包、数据库描述包(database description,DD)、链路状态请求包(link state request,LSR)、链路状态更新包(link state update,LSU)以及链路状态确认包(link state acknowledgment,LSAck)5种。5种协议报文头部格式相同,如图3所示,关键字段解释如表3所示。

表3 协议报文头部字段解释Table 3 Description of the protocol packet header field

图3 标准OSPF协议报文头部Fig.3 Standard OSPF packet header

对报文头部的优化包括对报文的移植与缩减两方面。移植方面,将标准头部中32 bit的路由器标识Router Id修改为由2Byte SDN交换机dpid和2Byte端口标识interface_index组成的SDN节点标识。缩减方面,缩短版本、报文类型字段长度,再将OSPF协议默认为单区域机制并删去区域标识,最后使用1Byte的循环冗余校验(cyclic redundancy check,CRC)校验和代替OSPF验证类型和验证域。优化后报文头部如图4所示。

图4 精简后OSPF协议报文头部Fig.4 OSPF packet header after thin provisioning

对5种协议报文内容的优化主要集中在链路状态类型LS Type、链路状态标识Link State Id、宣告路由器Adervertising Router等字段,对这些字段的优化也包括移植与缩减两方面。移植方面,将使用32 bit IP地址的LS Type和Link State Id均改为由2 Byte SDN交换机dpid和2 Byte端口标识interface_index组成的SDN节点标识。缩减方面,根据使用的LSA数量将32 bit的LS Type缩减为4 bit。

上述措施完成了5种OSPF协议报文的优化。优化后的OSPF协议实现了由TCP/IP网络到分布式SDN网络的移植,去除报文中的IP地址相当于将OSPF协议由网络层搬移到了数据链路层,提高了OSPF协议的稳定性,且优化后的OSPF协议报文大大缩短,能够有效降低协议控制开销和协议处理时间。

2.3 OSPF协议报功能优化

基于OSPF协议的拓扑发现使用的LSA主要有Router-LSA和Network-LSA两类[13,21]。Router-LSA描述了每个节点的连接关系,存在广播网络时Network-LSA由广播网络中的指定节点产生,描述该网络中与指定节点建立连接的全部节点,通过遍历上述LSA可以得到完整的网络拓扑。但标准的Router-LSA和Network-LSA中不包括信道种类、网络类型、信道带宽等信息,也不包括车内局域网设备的信息,例如主机和语音终端的物理地址等。

本文从增加功能和缩减报文两个方面优化了LSA。增加功能方面,给Router-LSA增加了信道类型、信道种类、信道带宽等字段,并设计了专门用于同步车内局域网终端设备信息的Router-Ex-LSA。缩减报文方面,分别缩减了两类LSA的报文头部和报文内容。优化后的3类LSA分别如图5、图6和图7所示,3种LSA的部分关键字段解释如表4所示。优化后的LSA增加了收集信道种类等网络信息的功能。

表4 LSA关键字段解释Table 4 Description of the key fields of LSA

图5 Router-LSA示意图Fig.5 Router-LSA diagram

图6 Network-LSA示意图Fig.6 Network-LSA diagram

图7 Router-Ex-LSA示意图Fig.7 Router-Ex-LSA diagram

2.4 拓扑发现算法设计

分布式SDN数据通路如图8所示,以控制器C1洪泛拓扑信息给控制器C2为例,C1通过南向OpenFlow协议Packet_out消息传递OSPF协议报文至交换机S1,S1将Packet_out消息转发至对端交换机S2,S2只下达匹配对应消息的流表,在以Packet_in消息将OSPF报文上报至C2的同时保证OSPF报文只传播一跳,杜绝拓扑环路造成广播风暴的可能。至此,C2获得了C1掌握的全部网络拓扑和网络信息。经过全网洪泛后,任意节点的控制器都具有机动通信系统的全网拓扑和网络信息。

图8 分布式SDN数据通路示意图Fig.8 Schematic diagram of distributed SDN data pathway

获取拓扑信息后,遍历Router-LSA、Network-LSA、Router-Ex-LSA可以得到全网拓扑,拓扑发现算法如图9所示。

图9 拓扑发现算法流程图Fig.9 Flowchart of topology discovery algorithm

3 仿真验证与结果分析

3.1 仿真平台设计与搭建

本文借助表5所示软件搭建仿真验证平台,按照图1所示三级胖树结构分别搭建TCP/IP网络和分布式SDN网络,网络规模分别为1∶2∶2、1∶2∶4、1∶3∶4、1∶4∶4、1∶4∶6、1∶4∶8等,TCP/IP网络运行基于标准OSPF协议的拓扑发现方法,分布式SDN网络运行优化后的拓扑发现方法。

表5 仿真实验软件Table 5 Simulation experiment software

TCP/IP网络仿真使用Cisio Packet Tracer软件,该软件能够模拟真实路由器、主机、高速链路等网络设备,并且支持使用命令行、网络报文分析器、协议数据单元(protocol data unit, PDU)生成器等调试工具,如图10所示。

图10 TCP/IP网络仿真示意图Fig.10 TCP/IP network simulation diagram

本文按照图11构建了分布式SDN网络仿真平台,通过OpenvSwitch[28]脚本配合bridge、veth peer、ip link等软件在Linux环境下虚拟了SDN交换机,构建了分布式SDN网络,借助Docker容器和开源控制器OpenDayLight[29-30]在Linux环境下模拟了机动通信系统控制器群,在其中两个交换机下挂载主机用于模拟车内局域网,并通过IP桥接连接到Wireshark和Postman,前者用于抓取网络报文,后者用于获取拓扑发现结果以及网络信息。其中,OpenDayLight控制器除部署本文提出的拓扑发现算法外,还运行原生OFDP算法用于发现车内局域网,发现的结果由Router-Ex-LSA同步。

图11 分布式SDN仿真架构Fig.11 Distributed SDN simulation architecture

3.2 仿真结果与分析

本文选取了表6所示指标来衡量拓扑发现方法。

表6 仿真验证测量指标Table 6 Simulation to verify the measurement index

图12和图13分别对比了TCP/IP网络和分布式SDN网络的建链时间和重新收敛时间。可以看出,两种网络的建链时间和重新收敛时间都随网络规模的扩大保持轻微上升的趋势,但是SDN网络的建链时间相比TCP/IP网络缩短了80%,重新收敛时间显著低于TCP/IP网络,并且时间波动较小。

图12 建链时间Fig.12 Link establishment time

图13 重新收敛时间Fig.13 Relink time

图14和图15分别对比了建链时间内TCP/IP网络和分布式SDN网络收发包数和收发字节数的关系。可以看出,两种网络的收发包数和收发字节数随网络规模扩大的变化趋势保持一致,但是在收发包数基本相同的情况下,分布式SDN网络的收发字节数明显低于TCP/IP网络,平均接收字节数、发送字节数分别下降了31.7%和21.5%。

图14 建链时间平均收发包数Fig.14 Average number of packets received and sentduring chain establishment time

图15 建链时间内平均收发字节数Fig.15 Average number of bytes sent and receivedduring the establishment time

图16对比了TCP/IP网络和分布式SDN网络拓扑发现方法的维持开销,可以看出,在每分钟平均收发包数几乎相同的情况下,SDN网络产生的维持开销远小于TCP/IP网络,平均每秒收发字节数降低了45%。证明优化后OSPF协议控制开销和协议处理时间大大减小。

图16 网络拓扑维持开销Fig.16 Maintaining network topology overhead

图17所示数据是一条Json格式的节点连接关系,包括连接出发节点标识start_node_id、目标节点标识end_node_id、出发端口start_port、目标端口end_port、信道种类channel_type等拓扑信息。图18所示数据是Json格式的节点统计信息和节点挂载终端信息,其中统计信息来自OpenDayLight控制器,终端信息来自拓扑发现,包括MAC地址等信息。证明优化后OSPF协议适应于分布式SDN网络,能实现拓扑发现功能和OSPF协议的增加功能。

图17 节点间连接关系Fig.17 Links between nodes

图18 节点下挂载终端信息Fig.18 Information about terminals mounted to nodes

本文针对1∶2∶2、1∶2∶4、1∶3∶4、1∶4∶4、1∶4∶6、1∶4∶8等6种规模网络验证拓扑发现效果,并通过图19所示配置模拟有线、无线信道共存,点对点信道、广播信道混和的网络环境:该节点端口12连接有线、点对点通信介质光纤,端口13连接无线、广播通信介质区域宽带,且拓扑探测间隔为10 s。该配置在OpenDayLight控制器初始化阶段生效,对应OpenvSwitch脚本中的节点连接状况。此外,无线信道的带宽被限制小于250 Byte。

图19 拓扑发现实验关键配置Fig.19 Key configuration of topology discovery experiment

为方便比对结果,本文以1∶2∶4拓扑为例,将拓扑发现结果图形化如图20所示,黑色实线代表光纤,红色实线代表区域宽带,节点均连接到图片中央的二层交换机仅表示各个节点由区域宽带连接到同一广播域,实际区域宽带等无线广播信道不存在该设备。除树形拓扑外,本文方案也可用于发现规模相当的任意拓扑,对随机生成的拓扑发现结果如图21所示,经验证拓扑发现均准确无误。

图20 1∶2∶4网络拓扑发现结果Fig.20 1∶2∶4 network topology discovery view

图21 随机生成拓扑发现结果Fig.21 Discovery results of stochastic topology

本文对6种规模树形拓扑和随机生成拓扑各重复10次实验,共70次实验后仿真结果如表7所示,可知优化后的OSPF协议能够准确发现网络拓扑,本文方案具有有效性。

表7 拓扑发现正确率Table 7 Correct rate of topology discovery

本文用信道丢包率反应节点的机动性,例如移动、距离、障碍物遮挡等因素对无线信道的影响综合,并以1∶2∶4拓扑为例对比了不同丢包率信道下的建链时间。实验结果如图22所示,仿真表明,建链时间随丢包率增大而增大,表明移动虽然影响算法性能,但是最终仍然能达到收敛状态。

图22 不同丢包率下建链时间Fig.22 Link establishment time under different packet loss rate

4 结束语

由于对网络信息需求的不同以及网络架构的改变,基于TCP/IP网络协议的拓扑发现方法不能直接应用于基于分布式SDN的机动通信系统。本文对OSPF协议进行了优化,使OSPF协议适应于分布式SDN网络,降低了协议控制开销和协议处理时间,增加了协议功能,并在此基础上提出了一种基于OSPF协议的拓扑发现方法。仿真实验表明,优化后的OSPF协议建链速度更快,重新收敛时间更短,建链开销更小,维持开销更少,能够正确发现网络拓扑,是一种适合基于分布式SDN的机动通信系统的拓扑发现方法。

本文虽然减少了协议的控制开销,但在窄带等信道资源较少的无线网络中的应用仍会受到限制,因此如何进一步降低控制开销,如何利用拓扑发现获取到的网络信息实现路径规划、负载均衡、信道切换、流量隔离等功能将是下一步的研究内容。

猜你喜欢

状态机网络拓扑局域网
基于通联关系的通信网络拓扑发现方法
轨道交通车-地通信无线局域网技术应用
基于有限状态机的交会对接飞行任务规划方法
基于VPN的机房局域网远程控制系统
能量高效的无线传感器网络拓扑控制
基于802.1Q协议的虚拟局域网技术研究与实现
局域网性能的优化
劳斯莱斯古斯特与魅影网络拓扑图
基于多任务异步处理的电力系统序网络拓扑分析
FPGA设计中状态机安全性研究