一种SDN控制器的拓扑发现方法及系统技术方案

技术编号:14458637 阅读:890 留言:0更新日期:2017-01-19 15:49
本发明专利技术公开了一种SDN控制器的拓扑发现方法及系统,该方法包括如下步骤:所述SDN控制器构造PacketOut消息向各交换机发送LLDP数据包,其中,一台交换机仅发送一个LLDP数据包;所述SDN控制器向各交换机下发流表规则;各交换机于接收到PacketOut消息后,根据所述流表规则将所述PacketOut消息转发至其他交换机或将所述LLDP数据包封装到packetin消息内转发至所述SDN控制器;所述SDN控制器根据收到的packetin消息生成网络拓扑,本发明专利技术通过使SDN控制器发送的PacketOut消息和交换机的数量相同,进而减少PacketOut消息对网络资源的占用。

【技术实现步骤摘要】

本专利技术涉及网络通信技术,特别是涉及一种SDN(SoftwareDefinedNetwork,软件定义网络)控制器的拓扑发现方法及系统。
技术介绍
SDN(SoftwareDefinedNetwork,软件定义网络)是一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。SDN网络的一大特点就是资源由控制器集中管理,由控制器管理网络,最基本的当然需要知道网络的拓扑,而网络拓扑可能时时发生变化,所以控制器需要时时监测,对于整个网络来说,控制器担负了太多的计算任务,所以如果能够帮助控制器减压,则会提高整个网络的性能。SDN控制器主要使用了LLDP(LinkLayerDiscoveryProtocol,链路层发现协议)作为链路发现协议,该协议提供了一种标准的链路发现方式,可以将本端设备的主要能力、管理地址、设备标识、接口标识等信息组织成不同的TLV(Type/Length/Value,类型/长度/值),并封装在LLDPDU(LinkLayerDiscoveryProtocolDateUnit,链路层发现协议数据单元)中发布于自己直连的邻居,邻居收到这些信息后,将其以标准MIB(ManagementInformationBase,管理信息库)的形式保存起来,以供网络管理系统查询机判断链路的通信状况。SDN控制器在执行链路发现过程时,会首先通过一个packet-out消息向所有与之连接的交换机发送LLDP数据包,该交换机将LLDP数据包发送给所有端口,一旦交换机接收到packet-out消息,就会把LLDP数据包通过其所有的端口发送给与之连接的设备,如果其邻居交换机是一台OpenFLow交换机,那么该交换机将自行相应的流表查找操作,因为交换机中并没有专门的流表项用于处理LLDP消息,所以它将通过一个packet-in消息将数据包发送给控制器,而控制器在收到packet-in消息后,会对数据包进行分析并在其保存的链路发现表中创建交换机之间的链接记录,网络中其他交换机也都采用相同的方式向控制器发送packet-in消息,因此控制器就能够创建完整的网络拓扑视图,基于这样的视图,控制器可以根据业务应用的流量需求,为每台交换机推送下发不同的流表项。图1为现有技术中利用LLDP进行拓扑发现的过程示意图。假设现在有两个OpenFlow交换机(S1和S2)连接在控制器上,交换机S1具有三个端口,图2为现有技术中利用LLDP进行拓扑发现的步骤流程图,其拓扑发现步骤如下:步骤S1,SDN控制器构造PacketOut消息向S1的三个端口分别发送LLDP数据包,LLDP结构如图3所示,其中101部分即为LLDP负载,ChassisIDTLV,PortIDTLV和TimetoliveTLV三个是强制字段,分别代表交换机标识符(在局域网中是独一无二的),端口号和TTL,在步骤S1中,将LLDP数据包中的ChassisIDTLV和PortIDTLV分别置为S1的dpid和端口号;步骤S2,SDN控制器向交换机S1中下发流表,流表规则为:将从Controller端口收到的LLDP数据包从他的对应端口发送出去;步骤S3,SDN控制器向交换机S2中下发流表,流表规则为:将从非Controller端口接收到的LLDP数据包发送给控制器;步骤S4,SDN控制器通过解析LLDP数据包,得到链路的源交换机,源接口,通过收到的PacketIn消息确定目的交换机和目的接口。可见,现有的SDN控制器拓扑发现机制是对整个数据平面的所有交换机的所有端口发送PacketOut数据包,对于Fattree(胖树交换网络)等网络来说,端口的数量是交换机数量的k倍,因此导致了很多资源的消耗。
技术实现思路
为克服上述现有技术存在的不足,本专利技术之目的在于提供一种SDN控制器的拓扑发现方法及系统,其通过使SDN控制器发送的PacketOut消息和交换机的数量相同,进而减少PacketOut消息对网络资源的占用。为达上述及其它目的,本专利技术提出一种SDN控制器的拓扑发现方法,包括如下步骤:步骤一,所述SDN控制器构造PacketOut消息向各交换机发送LLDP数据包,其中,一台交换机仅发送一个LLDP数据包;步骤二,所述SDN控制器向各交换机下发流表规则;步骤三,各交换机于接收到PacketOut消息后,根据所述流表规则将所述PacketOut消息转发至其他交换机或将所述LLDP数据包封装到packetin消息内转发至所述SDN控制器;步骤四,所述SDN控制器根据收到的packetin消息生成网络拓扑。进一步地,所述流表规则为:所有从交换机Controller端口接收到的LLDP数据包,依次将其源MAC地址转换为端口MAC地址,然后从交换机的有效链接端口转发出去;所有非从交换机的Controller端口接收到的LLDP数据包,将LLDP数据包封装到packetin消息内,依次从交换机的Controller端口转发给所述SDN控制器。进一步地,于步骤一中,将所述LLDP数据包中的LLDP数据包负载的域PortIDTLV值置为零。进一步地,于步骤三中,若交换机是从Controller端口接收到的LLDP数据包,则将其源MAC地址转换为端口MAC地址,然后从所述交换机的有效链接端口转发出去。进一步地,于步骤三中,若交换机不是从Controller端口接收到的LLDP数据包,则将LLDP数据包封装到packetin消息内,从所述交换机的Controller端口转发给所述SDN控制器。进一步地,于步骤四中,所述SDN控制器根据LLDP数据包的来源,得到目的交换机,目的端口,并通过解析LLDP数据包,得到源MAC地址和源交换机,通过源MAC地址查找对应的端口号,进而生成网络拓扑。为达到上述目的,本专利技术还提供一种SDN控制器的拓扑发现系统,包括:消息构造单元,通过所述SDN控制器构造PacketOut消息向交换机发送LLDP数据包,其中一台交换机仅发送一个LLDP数据包;流表规则下发单元,利用所述SDN控制器向各交换机下发流表规则;规则匹配处理单元,于接收到PacketOut消息后,根据所述流表规则将所述PacketOut消息转发至其他交换机或将所述LLDP数据包封装到packetin消息内转发至所述SDN控制器;拓扑生成单元,通过所述SDN控制器根据收到的packetin消息生成网络拓扑。进一步地,所述流表规则为:所有从交换机Controller端口接收到的LLDP数据包,依次将其源MAC地址转换为端口MAC地址,然后从交换机的有效链接端口转发出去;所有非从交换机的Controller端口接收到的LLDP数据包,将LLDP数据包封装到packetin消息内,依次从交换机的Controller端口转发给所述SDN控制器。进一步地,若交换机是从Controller端口接收到的LLDP数据包,所述规则匹配处理单元将其源MAC地址转换为端口MAC地址,然后从所述交换机的有效链接端口转发出去;若交换机不是从Controller端口接收到的LLDP数据包,所述规则匹配处理本文档来自技高网
...

【技术保护点】
一种SDN控制器的拓扑发现方法,包括如下步骤:步骤一,所述SDN控制器构造PacketOut消息向各交换机发送LLDP数据包,其中,一台交换机仅发送一个LLDP数据包;步骤二,所述SDN控制器向各交换机下发流表规则;步骤三,各交换机于接收到PacketOut消息后,根据所述流表规则将所述PacketOut消息转发至其他交换机或将所述LLDP数据包封装到packetin消息内转发至所述SDN控制器;步骤四,所述SDN控制器根据收到的packetin消息生成网络拓扑。

【技术特征摘要】
1.一种SDN控制器的拓扑发现方法,包括如下步骤:步骤一,所述SDN控制器构造PacketOut消息向各交换机发送LLDP数据包,其中,一台交换机仅发送一个LLDP数据包;步骤二,所述SDN控制器向各交换机下发流表规则;步骤三,各交换机于接收到PacketOut消息后,根据所述流表规则将所述PacketOut消息转发至其他交换机或将所述LLDP数据包封装到packetin消息内转发至所述SDN控制器;步骤四,所述SDN控制器根据收到的packetin消息生成网络拓扑。2.如权利要求1所述的一种SDN控制器的拓扑发现方法,其特征在于,所述流表规则为:所有从交换机Controller端口接收到的LLDP数据包,依次将其源MAC地址转换为端口MAC地址,然后从交换机的有效链接端口转发出去;所有非从交换机的Controller端口接收到的LLDP数据包,将LLDP数据包封装到packetin消息内,依次从交换机的Controller端口转发给所述SDN控制器。3.如权利要求2所述的一种SDN控制器的拓扑发现方法,其特征在于:于步骤一中,将所述LLDP数据包中的LLDP数据包负载的域PortIDTLV值置为零。4.如权利要求2所述的一种SDN控制器的拓扑发现方法,其特征在于:于步骤三中,若交换机是从Controller端口接收到的LLDP数据包,则将其源MAC地址转换为端口MAC地址,然后从所述交换机的有效链接端口转发出去。5.如权利要求4所述的一种SDN控制器的拓扑发现方法,其特征在于:于步骤三中,若交换机不是从Controller端口接收到的LLDP数据包,则将LLDP数据包封装到packetin消息内,从所述交换机的Controller端口转发给所述SDN控制器。6.如权利要求4所述的一种SDN控制器的拓扑发现方法,其特征在于:于步骤四中,所述SDN控制器根据LLDP数据包的来源,得到目的...

【专利技术属性】
技术研发人员:卢俊伟王志雄熊常春
申请(专利权)人:广州西麦科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1