一种基于SDN的网络拓扑发现方法与流程

文档序号:22320681发布日期:2020-09-23 01:54阅读:290来源:国知局
一种基于SDN的网络拓扑发现方法与流程

本发明涉及sdn交换机拓扑显示技术领域,尤其涉及一种基于sdn的网络拓扑发现方法。



背景技术:

lldp(linklayerdiscoveryprotocol,链路层发现协议)它提供了一种标准的链路层发现方式,可以将本端设备的参数信息组织成不同的tlv(type/length/value,类型/长度/值),并封装在lldpdu(linklayerdiscoveryprotocoldataunit,链路层发现协议数据单元)中发布给与自己直连的邻居,邻居收到这些信息后将其以标准mib(managementinformationbase,管理信息库)的形式保存起来,以供网络管理系统查询及判断链路的通信状况。

lldp是一种邻近发现协议,它为以太网网络设备,如交换机、路由器和无线局域网接入点定义了一种标准的方法,使其可以向网络中其他节点公告自身的存在,并保存各个邻近设备的发现信息,例如设备配置和设备识别等详细信息都可以用该协议进行公告。

封装有lldpdu的报文称为lldp报文,其封装格式有两种:ethernetii和snap(subnetworkaccessprotocol,子网访问协议)。

发送机制包括当端口工作在txrx或tx模式时,设备会周期性地向邻居设备发送lldp报文。如果设备的本地配置发生变化则立即发送lldp报文,以将本地信息的变化情况尽快通知给邻居设备。但为了防止本地信息的频繁变化而引起lldp报文的大量发送,每发送一个lldp报文后都需延迟一段时间后再继续发送下一个报文。

当设备的工作模式由disable/rx切换为txrx/tx,或者发现了新的邻居设备(即收到一个新的lldp报文且本地尚未保存发送该报文设备的信息)时,该设备将自动启用快速发送机制,即将lldp报文的发送周期缩短为1秒,并连续发送指定数量的lldp报文后再恢复为正常的发送周期。

接收机制包括当端口工作在txrx或rx模式时,设备会对收到的lldp报文及其携带的tlv进行有效性检查,通过检查后再将邻居信息保存到本地,并根据ttl(timetolive,生存时间)tlv中ttl的值来设置邻居信息在本地设备上的老化时间,若该值为零,则立刻老化该邻居信息。

但由于lldp的报文较长,在大型的拓扑网络中传输效率不够优异;另外,lldp是标准协议,可扩展性不足,无法自定义相关报文字段,如遇到带宽紧缺的情况下,lldp报文由于长度过长,可能出现带宽拥堵,甚至丢包的情况,也正是由于可扩展性不足,所以其不能满足各自不同场景的业务需求。



技术实现要素:

本发明目的是为了克服现有技术的不足而提供一种报文解析难度低速度快、可扩展性强,并可自定义拓扑探测方式,使其发现效率得到大大提高的基于sdn的网络拓扑发现方法。

下述文档中涉及到的英文所对应的中文解释如下:

sdn是指软件定义网络(software defined network),由美国斯坦福大学clean-slate课题研究组提出的一种新型网络创新架构,是网络虚拟化的一种实现方式;lldp是一种邻近发现协议;lldp报文是指封装有lldpdu的报文。

0x9944是指以太网类型为0x9944的以太报文。

openflow是指sdn控制器与sdn交换机交互的南向协议。

packet-out是指sdn控制器下发给sdn交换机的协议报文。

packet-in是指sdn交换机上送给sdn控制器的协议报文。

为达到上述目的,本发明采用了如下技术方案。

一种基于sdn的网络拓扑发现方法,具体包括以下步骤:

步骤s1:首先通过控制器向所有已连接的sdn交换机发送端口状态请求,并分别获取各个sdn交换机的端口状态信息数据;

步骤s2:进行自定义类型0x9944报文数据格式,再通过控制器将私有以太类型0x9944的报文封装成openflow标准的packet-out消息,并发送给所有sdn交换机端口状态是打开的端口设备;

步骤s3:在所述步骤s2中的sdn交换机端口收到0x9944报文后,该交换机将会把上述0x9944报文进行组合并发送给相邻sdn交换机;

步骤s4:当所述步骤s3中相邻sdn交换机接收到0x9944报文,通过匹配控制器预先下发的流表条目(以太类型是0x9944的报文上送控制器),将0x9944报文封装成openflow标准packet-in消息上送给控制器;

步骤s5:控制器接收到相邻的sdn交换机上送的封装了0x9944报文的packet-in消息得知此报文经过的端口设备信息,从而完成两两之间sdn光线路终端的链路发现;

步骤s6:控制器在启动初期设定6s一次的定时探测,定时探测5次后,定时器的定时探测间隔时间逐步延长直至完成网络拓扑发现工作结束,以达到减少网络流量消耗,从而降低宽带资源占用。

作为本发明的进一步改进,所述步骤s2中自定义类型0x9944报文数据格式依次排列为目mac、源mac、0x9944和设备参数数据。

作为本发明的进一步改进,所述目mac的长度为六个字节。

作为本发明的进一步改进,所述源mac的长度为六个字节。

作为本发明的进一步改进,所述0x9944的长度为两个字节。

作为本发明的进一步改进,所述设备参数数据的长度为四十八个字节。

作为本发明的进一步改进,所述sdn交换机的端口状态信息数据具体包括设备的的主要性能参数、管理地址、设备标识及接口标识信息数据。

由于上述技术方案的运用,本发明的技术方案带来的有益技术效果:本技术方案克服了原先的lldp由于报文长度和可扩展性不佳的缺点,本发明通过使用自定义的0x9944报文解决报文过长的问题,因为是自定义的报文所以支持自定义扩展字段,并且sdn控制器发送的packetout消息和交换机up端口的数量相同,进而减少packetout消息对网络资源的占用,并且报文简单,解析速度过,进而提高执行效率;本技术方案通过sdn控制器组装0x9944报文,通过向交换机的up端口发送0x9944报文,进而确认是否有邻居,如果有邻居,控制器将会生成邻居表,以拓扑连线的方式显示出来,从而形成拓扑发现的功能;本技术方案自定义的0x9944报文,因为其没有额外附加报文字段,长度小,使其在报文解析中的效率大大提高;本技术方案的控制器启动时,会先请求sdn交换机端口状态,进而只往up状态的端口发送0x9944报文,以减少不必要的网络开销,降低网络资源占用浪费;本技术方案通过探测定时器在一段时间后,拓扑状态趋于稳定,定时器会自动延长探测时长,以减少链路带宽开销。

附图说明

图1为本发明的sdn控制器与sdn交换机拓扑探测报文的发送过程示意图。

图2为本发明的0x9944报文具体格式示意图。

具体实施方式

下面结合具体实施例对本发明作进一步的详细说明。

一种基于sdn的网络拓扑发现方法,具体包括:步骤s1,首先通过控制器向所有已连接的sdn交换机发送端口状态请求,并分别获取各个sdn交换机的端口状态信息数据;进行自定义类型0x9944报文数据格式,再通过控制器将私有以太类型0x9944的报文封装成openflow标准的packet-out消息,并发送给所有sdn交换机端口状态是打开的端口设备;在步骤s2中的sdn交换机端口收到0x9944报文后,该交换机将会把上述0x9944报文进行重新组装,并发送给相邻sdn交换机;当步骤s3中相邻sdn交换机接收到0x9944报文,通过匹配控制器预先下发的流表条目(以太类型是0x9944的报文上送控制器),将0x9944报文封装成openflow标准packet-in消息上送给控制器;控制器接收到相邻的sdn交换机上送的封装了0x9944报文的packet-in消息得知此报文经过的端口设备信息,从而完成两两之间sdn光线路终端的链路发现;控制器在启动初期设定定时探测,定时探测5次后,定时器的定时探测间隔时间逐步延长直至完成网络拓扑发现工作结束,以达到减少网络流量消耗,从而降低宽带资源占用。

步骤s2中自定义类型0x9944报文数据格式依次排列为目mac、源mac、0x9944和设备参数数据;目mac的长度为六个字节;源mac的长度为六个字节;0x9944的长度为两个字节;设备参数数据的长度为四十八个字节;sdn交换机的端口状态信息数据具体包括设备的的主要性能参数、管理地址、设备标识及接口标识信息数据。

本发明通过使用自定义的0x9944报文解决报文过长的问题,因为是自定义的报文所以支持自定义扩展字段,并且sdn控制器发送的packetout消息和交换机up端口的数量相同,进而减少packetout消息对网络资源的占用,并且报文简单,解析速度过,进而提高执行效率;本技术方案通过sdn控制器组装0x9944报文,通过向交换机的up端口发送0x9944报文,进而确认是否有邻居,如果有邻居,控制器将会生成邻居表,以拓扑连线的方式显示出来,从而形成拓扑发现的功能。

以上仅是本发明的具体应用范例,对本发明的保护范围不构成任何限制。凡采用等同变换或者等效替换而形成的技术方案,均落在本发明权利保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1