CN110768823A - 基于lldp的软件定义网络拓扑发现方法 - Google Patents

基于lldp的软件定义网络拓扑发现方法 Download PDF

Info

Publication number
CN110768823A
CN110768823A CN201910962070.8A CN201910962070A CN110768823A CN 110768823 A CN110768823 A CN 110768823A CN 201910962070 A CN201910962070 A CN 201910962070A CN 110768823 A CN110768823 A CN 110768823A
Authority
CN
China
Prior art keywords
switch
packet
port
lldp
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910962070.8A
Other languages
English (en)
Inventor
徐雷
贾咏哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Tech University
Original Assignee
Nanjing Tech University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Tech University filed Critical Nanjing Tech University
Priority to CN201910962070.8A priority Critical patent/CN110768823A/zh
Publication of CN110768823A publication Critical patent/CN110768823A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于LLDP的软件定义网络拓扑发现方法,该方法包括:SDN控制器与交换机建立连接;控制器为交换机预安装转发规则;控制器随机选择一个核心交换机,创建LLDP分组,并周期性地向核心交换机发送该分组;收到LLDP分组的交换机依转发规则转发LLDP分组,并将该分组发送到控制器;控制器根据接收到的LLDP分组求取域内拓扑信息,并将无法求取域内拓扑信息的Packet‑In消息中的关键数据周期性地同步至其它控制器;各SDN控制器根据同步的关键数据求取域间拓扑信息。本发明能够应用于具有多个控制器的多域环境中,发现SDN域间拓扑信息,具有可扩展性,且在保证LLDP分组格式与传统LLDP分组格式相同的前提下,通过修改控制消息的发送模式降低了控制器负载及控制链路负载。

Description

基于LLDP的软件定义网络拓扑发现方法
技术领域
本发明涉及计算机网络领域,特别涉及一种基于LLDP的软件定义网络拓扑发现方法。
背景技术
传统网络中,路由器不仅负责数据转发(数据面),而且需要运行路由协议以做出路由决策(控制面),这样的架构难以适应如今飞速发展的网络规模和服务需求。因此近年来有一种新的网络体系被提出——软件定义网络(SDN)。SDN中,控制元件从转发元件(路由器、交换机)中脱离出来,在SDN控制器的逻辑集中式实体中实现。通过网络控制的集中化,SDN可以基本消除传统的分布式网络协议。因此,SDN转发元件(即SDN交换机)可以比传统路由器或交换机更简单、更便宜,并且SDN简化了网络的配置和管理,从而在极大程度上解决了传统网络的问题。
SDN控制器需要管理网络并提供诸如路由之类服务,因此可靠且高效的拓扑发现机制作为网络管理的前提是必不可少的。当前大多数的控制器平台通过OFDP(OpenFlowDiscovery Protocol)进行拓扑发现,该方法由传统网络中的链路层发现协议(LLDP,LinkLayer Discovery Protocol)改进而来,源自于原始SDN控制器NOX[Gude N,Koponen T,Pettit J,et al.NOX:towards an operating system for networks[J].Acm SigcommComputer Communication Review,2008,38(3):105-110.]。
但是在效率方面,OFDP的发现过程耗时长、控制器负载重且控制链路开销大。因此,Pakzad F等人在论文“Efficient topo-logy discovery in OpenFlow-basedSoftware Defined Networks[J].Computer Communi-cations,2016,77(C):52-61.”中提出了一种改进方法OFDPv2,通过减少SDN控制器的Pack-et-Out消息来提高拓扑发现的效率。虽然OFDPv2从一定程度上提高了SDN拓扑发现的效率,但是该方法相对于OFDP的效率提升有限,且Dana Hasan与Mohamed Othman在对OFDPv2的研究“Efficient Topo logyDiscovery in Software Defined N-etworks:Revisited[J].Procedia Computer Science,2017,116,539-547.”中指出,Pakzad F等人提出的OFDPv2并未考虑Packet-Out消息重传的情形,因此在Packet-Out消息发生重传时OFDPv2在控制链路开销上的提升会有所降低。
近年来,研究者们提出了一系列自动式拓扑发现协议,这些协议采取创建特殊的拓扑探测分组或在数据面上建立控制路径树的方法将控制面上的一部分功能迁移到数据面,从而达到降低控制器及控制链路负载的目的。然而,这些方法的实现依赖于其特有的拓扑探测分组,因此需要对SDN控制器或交换机进行较大的改动来换取拓扑发现效率的提升。
发明内容
本发明的目的在于提供一种能够减轻控制器及控制链路负载且无需添加新的报文解析逻辑的SDN拓扑发现方法。
实现本发明目的的技术解决方案为:一种基于LLDP的软件定义网络拓扑发现方法,包括以下步骤:
步骤1、多个软件定义网络SDN控制器进行组网连接,每个控制器与其域内的交换机建立连接,获取并存储交换机信息、交换机端口信息;
步骤2、SDN控制器向每个已连接的交换机预安装转发规则,其中转发规则包含LLDP分组的转发指令及限速指令;
步骤3、SDN控制器随机选择网络中的一个交换机作为核心交换机,并为该核心交换机创建LLDP分组及转发指令,之后通过Packet-Out消息对所述LLDP分组及转发指令进行封装,并周期性地发送至核心交换机;
步骤4、核心交换机从接收到的Packet-Out消息中解析出LLDP分组及转发指令,并按照转发指令在数据面上转发LLDP分组;
步骤5、接收到相邻交换机的LLDP分组的交换机,通过Packet-In消息将接收到的LLDP分组发送至SDN控制器,并按照预安装的转发规则在数据面进行转发,转发至相邻交换机;
步骤6、每个SDN控制器根据接收到的各个交换机的Packet-In消息求取域内拓扑信息;同时针对无法求取域内拓扑信息的Packet-In消息,由该Packet-In消息对应的SDN控制器提取出该消息中的关键数据,并周期性地将该关键数据同步至其它SDN控制器;
步骤7、各SDN控制器根据同步的关键数据求取域间拓扑信息。
进一步地,步骤2所述SDN控制器向每个已连接的交换机预安装转发规则,其中包含LLDP分组的转发指令及限速指令,该过程包括:
步骤2-1、配置转发规则,包括以下过程:
步骤2-1-1、配置转发指令以指导交换机进行LLDP分组的修改及转发,并添加到转发规则中,包括:
(1)设置转发指令的匹配域用于匹配到达交换机的LLDP分组,转发指令的匹配域设置如下:以太网协议类型为协议号,目的物理地址Dst MAC为Nearest Bridge组地址,接收端口号为交换机每个端口对应的端口号;
(2)设置转发指令的动作域以进行分组包头修改及分组转发,转发指令的动作域设置为:首先将LLDP分组直接封装在Packet-In消息中并发送给SDN交换机;之后,针对每一个交换机的物理端口,添加修改包头的动作,将LLDP分组的包头中的源物理地址Src MAC地址依次改为交换机每一个端口的MAC地址,且每一次修改地址都需添加发送分组的动作,用于将LLDP分组发送到相应的端口;
步骤2-1-2、根据当前拓扑探测周期自定义设置相应的限速指令,并添加到转发规则中;
步骤2-2、将配置的转发规则下发至所有与SDN控制器已连接的交换机中,完成预安装。
进一步地,步骤3所述SDN控制器随机选择网络中的一个交换机作为核心交换机,并为该核心交换机创建LLDP分组及转发指令,之后通过Packet-Out消息对所述LLDP分组及转发指令进行封装,并周期性地发送至核心交换机;该过程包括:
步骤3-1、为核心交换机创建一个LLDP分组,该LLDP分组的结构包括Dst MAC、SrcMAC、以太网协议类型、Chassis ID TLV、Port No TLV、TTL TLV及End TLV,配置分别如下:将Dst MAC配置为Nearest Bridge组地址,Src MAC配置为任意MAC地址,以太网协议类型配置为0x88cc,Chassis ID TLV配置为核心交换机ID,Port No TLV配置为任意值,TTL TLV配置为任意值,End TLV配置为2个空字节;
步骤3-2、修改SDN控制器发送Packet-Out消息的模式以降低控制器及控制链路负载,具体包括:令交换机只向数据面发送一次Packet-Out消息,以此将SDN控制器发送Packet-Out消息的数量POUT降低为POUT=1;
步骤3-3、为步骤3-1创建的LLDP分组配置转发指令:针对每一个交换机的物理端口,添加修改包头的动作,将LLDP分组的包头中的源物理地址Src MAC地址依次改为交换机每一个端口的MAC地址,且每一次修改地址都需添加发送分组的动作,用于将LLDP分组发送到相应的端口;
步骤3-4、将步骤3-1创建的LLDP分组和步骤3-3配置的转发指令封装在Packet-Out消息中,之后由SDN控制器将Packet-Out消息周期性地发送至核心交换机,以使SDN控制器能够不断更新全网拓扑视图。
进一步地,步骤6所述每个SDN控制器根据接收到的各个交换机的Packet-In消息求取域内拓扑信息;同时针对无法求取域内拓扑信息的Packet-In消息,由该Packet-In消息对应的SDN控制器提取出该消息中的关键数据,并周期性地将该关键数据同步至其它SDN控制器,该过程包括:
步骤6-1、每个SDN控制器对收到的所有Packet-In消息进行解析,获得若干LLDP分组;
步骤6-2、针对步骤6-1获得的每一个LLDP分组:
步骤6-2-1、提取其Src MAC信息、发送Packet-In消息的交换机ID及该交换机接收此LLDP分组的端口号;
步骤6-2-2、根据步骤1存储的交换机信息及其端口信息,查找端口MAC地址与步骤6-2-1中Src MAC相同的交换机ID及其端口号,若找到匹配信息,则断定找到的交换机端口与步骤6-2-1中发送Packet-In消息的交换机接收此LLDP分组的端口之间存在物理链路;
由上获得所有交换机之间的物理链路即域内拓扑信息;
步骤6-3、针对步骤6-2-2中无法找到匹配信息的Packet-In消息,SDN控制器将步骤6-2-1中提取出的Src MAC信息、交换机ID及端口号作为关键数据,并将该关键数据周期性地与其它控制器进行同步。
本发明与现有技术相比,其显著优点为:1)能够应用于具有多个控制器的多域环境中,发现SDN域间拓扑信息;2)可扩展性高,能够在网络规模增大时通过增加控制器和域的数量进行扩展且能保证拓扑发现功能完整;3)在拓扑发现过程中利用了LLDP分组格式,仅修改了LLDP分组的内容及下发LLDP分组的模式,因此本发明能够识别来自传统网络的LLDP报文;4)减少了拓扑发现过程中需要SDN控制器创建的Packet-Out消息的数量,减轻了控制器负载;5)本发明减少了控制链路上需要发送的Packet-Out消息的数量,减轻了控制链路上的负载。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为本发明基于LLDP的软件定义网络拓扑发现方法的流程图。
图2为本发明中LLDP分组的结构图。
图3为本发明实施例中单周期拓扑发现过程的示意图。
具体实施方式
结合图1,本发明一种基于LLDP的软件定义网络拓扑发现方法,包括以下步骤:
步骤1、多个软件定义网络SDN控制器进行组网连接,每个控制器与其域内的交换机建立连接,获取并存储交换机信息、交换机端口信息;
步骤2、SDN控制器向每个已连接的交换机预安装转发规则,其中转发规则包含LLDP分组的转发指令及限速指令;
步骤3、SDN控制器随机选择网络中的一个交换机作为核心交换机,并为该核心交换机创建LLDP分组及转发指令,之后通过Packet-Out消息对所述LLDP分组及转发指令进行封装,并周期性地发送至核心交换机;
步骤4、核心交换机从接收到的Packet-Out消息中解析出LLDP分组及转发指令,并按照转发指令在数据面上转发LLDP分组;
步骤5、结合图3,接收到相邻交换机的LLDP分组的交换机,通过Packet-In消息将接收到的LLDP分组发送至SDN控制器,并按照预安装的转发规则在数据面进行转发,转发至相邻交换机;
步骤6、每个SDN控制器根据接收到的各个交换机的Packet-In消息求取域内拓扑信息;同时针对无法求取域内拓扑信息的Packet-In消息,由该Packet-In消息对应的SDN控制器提取出该消息中的关键数据,并周期性地将该关键数据同步至其它SDN控制器;
步骤7、各SDN控制器根据同步的关键数据求取域间拓扑信息。
进一步优选地,步骤1中多个软件定义网络SDN控制器进行组网连接,每个控制器与其域内的交换机建立连接,获取并存储交换机信息、交换机端口信息,该过程包括:
步骤1-1、多个SDN控制器通过域间通信协议进行组网连接;
步骤1-2、交换机启动后通过TCP协议请求与控制器端口的连接,当控制器启动后,控制器确认交换机的TCP请求,然后交换机发送OFPT_HELLO消息请求建立OpenFlow连接,控制器收到后向交换机返回OFPT_HELLO消息以建立连接;
步骤1-3、由控制器向交换机发送OFPT_FEATURES_REQUEST消息以获取交换机信息;
步骤1-4、控制器向交换机发送OFPMP_PORT_DESC请求消息以获取交换机端口信息;
步骤1-5、交换机向控制器返回OFPT_FEATURES_REPLY消息及OFPMP_PORT_DESC回复消息,其中OFPT_FEATURES_REPLY消息用于交换机向控制器报告交换机信息,OFPMP_PORT_DESC回复消息用于交换机向控制器报告交换机的每个端口信息;
步骤1-6、SDN控制器根据交换机返回的OFPT_FEATURES_REPLY消息及OFPMP_PORT_DESC回复消息存储交换机信息及其端口信息。
示例性优选地,步骤1-2中交换机信息包括:交换机ID、缓冲区大小、流表数量、辅助连接标志、统计信息支持情况、重组IP碎片支持情况及端口防环支持情况;
步骤1-3中端口信息包括:端口号、MAC地址、行为标志、当前状态、数据通道特征、当前速率及最大速率。
进一步优选地,步骤2中SDN控制器向每个已连接的交换机预安装转发规则,其中包含LLDP分组的转发指令及限速指令,该过程包括:
步骤2-1、配置转发规则,包括以下过程:
步骤2-1-1、配置转发指令以指导交换机进行LLDP分组的修改及转发,并添加到转发规则中,包括:
(1)设置转发指令的匹配域用于匹配到达交换机的LLDP分组,转发指令的匹配域设置如下:以太网协议类型为协议号,目的物理地址Dst MAC为Nearest Bridge组地址,接收端口号为交换机每个端口对应的端口号;
(2)设置转发指令的动作域以进行分组包头修改及分组转发,转发指令的动作域设置为:首先将LLDP分组直接封装在Packet-In消息中并发送给SDN交换机;之后,针对每一个交换机的物理端口,添加修改包头的动作,将LLDP分组的包头中的源物理地址Src MAC地址依次改为交换机每一个端口的MAC地址,且每一次修改地址都需添加发送分组的动作,用于将LLDP分组发送到相应的端口;
步骤2-1-2、当网络中存在环路时,为解决LLDP分组的环路风暴问题,SDN控制器需要为每个交换机预安装一组限速指令进行速率控制,具体包括:根据当前拓扑探测周期自定义设置相应的限速指令,并添加到转发规则中;
步骤2-2、将配置的转发规则下发至所有与SDN控制器已连接的交换机中,完成预安装。
进一步优选地,步骤3中SDN控制器随机选择网络中的一个交换机作为核心交换机,并为该核心交换机创建LLDP分组及转发指令,之后通过Packet-Out消息对所述LLDP分组及转发指令进行封装,并周期性地发送至核心交换机,该过程包括:
步骤3-1、结合图2,为核心交换机创建一个LLDP分组,该LLDP分组的结构包括DstMAC、Src MAC、以太网协议类型、Chassis ID TLV、Port No TLV、TTL TLV及End TLV,配置分别如下:将Dst MAC配置为Nearest Bridge组地址,Src MAC配置为任意MAC地址,以太网协议类型配置为0x88cc,Chassis ID TLV配置为核心交换机ID,Port No TLV配置为任意值,TTL TLV配置为任意值,End TLV配置为2个空字节。区别于OFDP中LLDP分组的结构,本发明中的LLDP分组针对交换机进行构建,且交换机具有多次转发该分组的能力,因此该分组的Src MAC字段及Port No TLV字段可以被设置为任意值,而将Chassis ID TLV配置为核心交换机的ID;实现降低控制器及控制链路负载的同时保持了LLDP分组的结构不被改变;
步骤3-2、在OFDP的实现中,SDN控制器向全网中每一个连接到SDN控制器的交换机的每一个物理端口创建一个包含LLDP分组的Packet-Out消息。在这种模式下,令网络中的交换机数目为N,所有交换机之间的物理链路数目为L,每个交换机具有的端口数目为pi,其中i∈N,SDN控制器发送Packet-Out消息的数量记为POUT,则有
Figure BDA0002229272550000071
为提高效率,修改SDN控制器发送Packet-Out消息的模式以降低控制器及控制链路负载,具体包括:令交换机只向数据面发送一次Packet-Out消息,以此将SDN控制器发送Packet-Out消息的数量POUT降低为POUT=1;
步骤3-3、为步骤3-1创建的LLDP分组配置转发指令:针对每一个交换机的物理端口,添加修改包头的动作,将LLDP分组的包头中的源物理地址Src MAC地址依次改为交换机每一个端口的MAC地址,且每一次修改地址都需添加发送分组的动作,用于将LLDP分组发送到相应的端口;
步骤3-4、结合图3,将步骤3-1创建的LLDP分组和步骤3-3配置的转发指令封装在Packet-Out消息中,之后由SDN控制器将Packet-Out消息周期性地发送至核心交换机,以使SDN控制器能够不断更新全网拓扑视图。
进一步优选地,步骤5中接收到相邻交换机的LLDP分组的交换机,通过Packet-In消息将接收到的LLDP分组发送至SDN控制器,并按照预安装的转发规则在数据面进行转发,转发至相邻交换机,该过程包括:
步骤5-1、结合图3,核心交换机及非核心交换机收到来自邻居交换机的LLDP分组后,根据步骤2-1-1添加的匹配指令进行流表项匹配;
步骤5-2、根据步骤2-1-1的转发指令进行转发,首先将设置转发指令的动作域以进行分组包头修改及分组转发,转发指令的动作域设置为:对于每一个物理端口,添加修改包头的动作,分别将LLDP分组的包头中的Src MAC地址改为交换机其余端口的MAC地址,然后依次添加发送分组的动作,用来将LLDP分组发送到相应的端口;
步骤5-3、网络中的每个交换机均以步骤5-2中的描述进行LLDP分组的接收、上交SDN控制器并转发到相邻交换机;
进一步优选地,结合图3,步骤6中每个SDN控制器根据接收到的各个交换机的Packet-In消息求取域内拓扑信息;同时针对无法求取域内拓扑信息的Packet-In消息,由该Packet-In消息对应的SDN控制器提取出该消息中的关键数据,并周期性地将该关键数据同步至其它SDN控制器,该过程包括:
步骤6-1、每个SDN控制器对收到的所有Packet-In消息进行解析,获得若干LLDP分组;
步骤6-2、针对步骤6-1获得的每一个LLDP分组:
步骤6-2-1、提取其Src MAC信息、发送Packet-In消息的交换机ID及该交换机接收此LLDP分组的端口号;
步骤6-2-2、根据步骤1存储的交换机信息及其端口信息,查找端口MAC地址与步骤6-2-1中Src MAC相同的交换机ID及其端口号,若找到匹配信息,则断定找到的交换机端口与步骤6-2-1中发送Packet-In消息的交换机接收此LLDP分组的端口之间存在物理链路;
由上获得所有交换机之间的物理链路即域内拓扑信息;
步骤6-3、针对步骤6-2-2中无法找到匹配信息的Packet-In消息,SDN控制器将步骤6-2-1中提取出的Src MAC信息、交换机ID及端口号作为关键数据,并将该关键数据周期性地与其它控制器进行同步。
进一步优选地,步骤7中各SDN控制器根据同步的关键数据求取域间拓扑信息,该过程包括:
根据步骤1存储的交换机信息及其端口信息,各SDN控制器查找端口MAC地址与同步得到的关键数据中Src MAC相同的交换机ID及其端口号,若找到匹配信息,则断定找到的交换机端口与关键数据中的交换机ID及端口号所表示的端口之间存在物理链路;
由上获得所有交换机之间的物理链路即域间拓扑信息。
下面结合实施例对本发明作进一步详细的描述。
实施例
本发明基于LLDP的软件定义网络拓扑发现方法,包括以下内容:
1、多个软件定义网络SDN控制器进行组网连接,每个控制器与其域内的交换机建立连接,使用OpenFlow协议进行握手:结合图3,本实例中存在2个SDN控制器,分别命名为C1和C2,采用Ryu控制器实现,分别管理域1与域2,存在4个OpenFlow交换机,采用OVS虚拟交换机实现,分别命名为s11、s12、s21和s22,其中s11和s12属于域1,s21和s22属于域2。链路连接方式如下:s12的端口1连接s11的端口2,s11的端口1连接s21的端口1,s21的端口2连接s22的端口1,即s12-1连接s11-2,s11-1连接s21-1,s21-2连接s22-1,其中每条链路均为双向链路。每个SDN控制器与其域内OpenFlow交换机的TCP连接端口为:每个SDN控制器的TCP端口均为6633端口,4个OpenFlow交换机的TCP端口分别为32776、32778、32782和32780。采用Mininet完成网络拓扑搭建,并将OpenFlow协议的版本配置为OpenFlow1.3。网络拓扑搭建完成后,控制器与交换机的连接将由Ryu控制器与OVS交换机自动完成,具体过程如下:交换机通过TCP协议请求与控制器6633端口的连接,之后启动控制器,控制器确认交换机的TCP请求,然后交换机发送OFPT_HELLO消息请求建立OpenFlow连接,控制器收到后向交换机返回OFPT_HELLO消息以建立连接;交换机与控制器完成连接之后,由控制器向每个交换机发送OFPT_FEATURES_REQUEST消息以获取交换机信息,交换机信息包括:交换机ID(datapath_id)、缓冲区大小(n_buffers)、流表数量(n_tables)、辅助连接标志(auxiliary_id)、统计信息支持情况、重组IP碎片支持情况及端口防环支持情况(capabilities)等;控制器向每个交换机发送OFPMP_PORT_DESC请求消息以获取其端口信息,每一个端口的端口信息包括:端口号(Port_no)、端口MAC地址(Hw_addr)、行为标志(Config)、当前状态(State)、数据通道特征(Current、Advertised、Supported及Peer)、当前速率(Curr_speed)及最大速率(Max_speed);交换机向控制器返回OFPT_FEATURES_REPLY消息及OFPMP_PORT_DESC回复消息,控制器根据交换机返回的OFPT_FEATURES_REPLY消息及OFPMP_PORT_DESC回复消息存储交换机信息及其端口信息,从而实现由端口MAC地址查找交换机端口的目的。
其中OFPT_FEATURES_REPLY消息用于交换机向控制器报告交换机信息,具体结果如表1所示:
表1交换机OFPT_FEATURES_REPLY消息
OFPMP_PORT_DESC回复消息用于交换机向控制器报告交换机的每个端口信息,具体结果如表2所示:
表2交换机OFPMP_PORT_DESC回复消息
Figure BDA0002229272550000102
2、SDN控制器向相连的交换机预安装LLDP分组的转发规则,其中包含转发指令及限速指令。首先,构建转发指令用于指导交换机进行LLDP分组的转发,其中包含匹配域与动作域,匹配域用来匹配到达交换机的LLDP分组,动作域用来修改分组包头并转发分组。s12具有1个物理端口,因此为s12配置1条转发指令,设置如下:
匹配域中,以太网协议类型为“0x88cc”,Dst MAC为“01:80:c2:00:00:0e”,入端口号为“1”;动作域中,首先使用“OFPActionOutput”将LLDP分组转发到控制器,再将包头的“Src Mac”修改为“56:13:4d:87:21:85”,并使用“OFPActionOutput”将LLDP分组从端口1转发。
s11具有2个物理端口,因此为s11配置2条转发指令,分别设置如下:
1)匹配域中,以太网协议类型为“0x88cc”,Dst MAC为“01:80:c2:00:00:0e”,入端口号为“1”;动作域中,首先使用“OFPActionOutput”将LLDP分组转发到控制器,再将包头的“Src Mac”修改为“9c:86:e5:d2:11:89”,并使用“OFPActionOutput”将LLDP分组从端口1转发,最后将包头的“Src Mac”修改为“5e:8c:42:64:ee:6d”,并使用“OFPActionOutput”将LLDP分组从端口2转发。
2)匹配域中,以太网协议类型为“0x88cc”,Dst MAC为“01:80:c2:00:00:0e”,入端口号为“2”;动作域中,首先使用“OFPActionOutput”将LLDP分组转发到控制器,再将包头的“Src Mac”修改为“9c:86:e5:d2:11:89”,并使用“OFPActionOutput”将LLDP分组从端口1转发,最后将包头的“Src Mac”修改为“5e:8c:42:64:ee:6d”,并使用“OFPActionOutput”将LLDP分组从端口2转发。
s21具有2个物理端口,因此为s21配置2条转发指令,分别设置如下:
1)匹配域中,以太网协议类型为“0x88cc”,Dst MAC为“01:80:c2:00:00:0e”,入端口号为“1”;动作域中,首先使用“OFPActionOutput”将LLDP分组转发到控制器,再将包头的“Src Mac”修改为“32:78:d9:b5:65:13”,并使用“OFPActionOutput”将LLDP分组从端口1转发,最后将包头的“Src Mac”修改为“d2:54:c5:76:96:b2”,并使用“OFPActionOutput”将LLDP分组从端口2转发。
2)匹配域中,以太网协议类型为“0x88cc”,Dst MAC为“01:80:c2:00:00:0e”,入端口号为“2”;动作域中,首先使用“OFPActionOutput”将LLDP分组转发到控制器,再将包头的“Src Mac”修改为“32:78:d9:b5:65:13”,并使用“OFPActionOutput”将LLDP分组从端口1转发,最后将包头的“Src Mac”修改为“d2:54:c5:76:96:b2”,并使用“OFPActionOutput”将LLDP分组从端口2转发。
s22具有1个物理端口,因此为s22配置1条转发指令,设置如下:
匹配域中,以太网协议类型为“0x88cc”,Dst MAC为“01:80:c2:00:00:0e”,入端口号为“1”;动作域中,首先使用“OFPActionOutput”将LLDP分组转发到控制器,再将包头的“Src Mac”修改为“25:7d:c2:45:69:4a”,并使用“OFPActionOutput”将LLDP分组从端口1转发。
为解决LLDP分组的环路风暴问题,SDN控制器需要为所有交换机预安装一组限速指令进行速率控制。将当前拓扑发现周期设置为1s,相应地,使用“OFPInstructionMeter”构建限速指令,并设置速率大小为1pkt/s,要求所有交换机将超过速率的LLDP分组丢弃,并将该指令添加到所有交换机的转发规则中。
转发指令与限速指令配置完成后使用将配置好的转发规则下发到所有交换机中。
3、结合图3,以域1为例阐述域内拓扑发现流程。C1选择s12作为核心交换机,只为s12创建一个LLDP分组并通过Packet-Out消息将该分组周期性地发送到s12,发送LLDP分组时仅更改了发送LLDP分组的模式而未改变LLDP分组的结构,从而在减轻控制器及控制链路负载的同时确保不需要向SDN控制器或交换机添加任何新的报文解析模块。
首先,修改SDN控制器发送Packet-Out消息的模式,令交换机只向s12发送一次Packet-Out消息,其中将包含LLDP分组。
然后,构建LLDP分组。结合图2,LLDP分组的结构包括Dst MAC、Src MAC、以太网协议类型、Chassis ID TLV、Port No TLV、TTL TLV及End TLV等7个部分,依次将这7个部分配置如下:将Dst MAC配置为“01:80:c2:00:00:0e”,Src MAC配置为“00:00:00:00:00:00”,以太网协议类型配置为“0x88cc”,Chassis ID TLV配置为0x0000000000000001,Port No TLV配置为0,TTL TLV配置为0,End TLV配置为2个空字节。
最后,结合图3,SDN控制器将构建好的包含LLDP分组的Packet-Out消息发送到核心交换机s12,并要求s12将LLDP分组包头的Src MAC修改为“56:13:4d:87:21:85”,再从端口1进行转发。为实现周期性的拓扑发现机制,SDN控制器将以1s为周期,不断向核心交换机s12发送构建好的包含LLDP分组。若将SDN控制器发送Packet-Out消息的数量记为POUT,则此时POUT=1。而在OFDP的实现中,SDN控制器向全网中每一个连接到SDN控制器的交换机的每一个物理端口创建一个包含LLDP分组的Packet-Out消息,结合图3,域1中OpenFlow交换机共有2个,所有交换机之间的物理链路共有1条,所有交换机具有的端口数为3个,则有POUT=6。
4、结合图3,核心交换机s12收到SDN控制器的Packet-Out消息后进行解析,提取出其中LLDP分组及转发指令,按照转发指令进行转发,LLDP分组将被转发到s11。具体地,s12先通过Packet-In消息将LLDP分组发送到SDN控制器,再将LLDP分组包头的Src MAC修改为“56:13:4d:87:21:85”,并从端口1进行转发。
5、s11从端口2收到来自s12的LLDP分组后,先通过Packet-In消息将LLDP分组发送到SDN控制器,再按照预安装的转发规则在数据面进行转发。具体地,s11从端口2接收到LLDP分组,将LLDP分组包头的Src MAC分别修改为“9c:86:e5:d2:11:89”和“5e:8c:42:64:ee:6d”,再分别从端口1和端口2进行转发。
然后,s12从端口1收到来自s11的LLDP分组后,通过Packet-In消息将LLDP分组发送到SDN控制器,当转发规则再次尝试发送LLDP分组时,由于距离上一次发送LLDP分组时长不足1s,因此会受限速规则约束从而丢弃要发送的LLDP分组。
6、SDN控制器陆续收到来自所有交换机的LLDP分组后计算得出拓扑信息,具体如下:
C1收到来自s11的Packet-In消息后,从中解析出来自s12的LLDP分组并解析出s11接收该分组的端口为2,然后将LLDP分组中的Src MAC与存储的交换机端口MAC进行比对,可以判断出该MAC与s12的端口1的MAC相同,因此可以判断s12的端口1到s11的端口2之间存在单向链路;
C1收到来自s12的Packet-In消息后,从中解析出来自s11的LLDP分组并解析出s12接收该分组的端口为1,然后将LLDP分组中的Src MAC与存储的交换机端口MAC进行比对,可以判断出该MAC与s11的端口2的MAC相同,因此可以判断s11的端口2到s12的端口1之间存在单向链路;
C2收到来自s21的Packet-In消息后,从中解析出s21接收该分组的端口为1,然后将LLDP分组中的Src MAC与存储的交换机端口MAC进行比对,但是无法找到相同MAC,因此C2将Src MAC、s21的ID和端口号1作为关键信息同步至C1;
至此,域1中单周期拓扑发现过程完成,C1获得的链路连接方式如下:s12的端口1连接s11的端口2,该链路为双向链路。
7、C1收到来自C2的关键信息,从中解析出Src MAC,与自身存储的交换机端口MAC进行比对,可以判断出该MAC与s11的端口1的MAC相同,因此可以判断s21的端1到s11的端口1之间存在单向链路;
至此,C1得出域间拓扑发现信息,所得链路连接方式如下:s21的端口1连接s11的端口1,该链路为单向链路。
域2拓扑发现流程与域1相同,可得域内拓扑信息如下:s22的端口1连接s21的端口2,该链路为双向链路;域间拓扑信息如下:s11的端口1连接s21的端口1,该链路为单向链路。
至此,域内拓扑发现过程及域间拓扑发现过程完成。
综上,相对于目前SDN中的拓扑发现方法,本发明能够应用于具有多个控制器的多域环境中,发现SDN域间拓扑信息,具有可扩展性,且在保证LLDP分组格式与传统LLDP分组格式相同的前提下,通过修改控制消息的发送模式降低了控制器负载及控制链路负载。

Claims (7)

1.一种基于LLDP的软件定义网络拓扑发现方法,其特征在于,包括以下步骤:
步骤1、多个软件定义网络SDN控制器进行组网连接,每个控制器与其域内的交换机建立连接,获取并存储交换机信息、交换机端口信息;
步骤2、SDN控制器向每个已连接的交换机预安装转发规则,其中转发规则包含LLDP分组的转发指令及限速指令;
步骤3、SDN控制器随机选择网络中的一个交换机作为核心交换机,并为该核心交换机创建LLDP分组及转发指令,之后通过Packet-Out消息对所述LLDP分组及转发指令进行封装,并周期性地发送至核心交换机;
步骤4、核心交换机从接收到的Packet-Out消息中解析出LLDP分组及转发指令,并按照转发指令在数据面上转发LLDP分组;
步骤5、接收到相邻交换机的LLDP分组的交换机,通过Packet-In消息将接收到的LLDP分组发送至SDN控制器,并按照预安装的转发规则在数据面进行转发,转发至相邻交换机;
步骤6、每个SDN控制器根据接收到的各个交换机的Packet-In消息求取域内拓扑信息;同时针对无法求取域内拓扑信息的Packet-In消息,由该Packet-In消息对应的SDN控制器提取出该消息中的关键数据,并周期性地将该关键数据同步至其它SDN控制器;
步骤7、各SDN控制器根据同步的关键数据求取域间拓扑信息。
2.根据权利要求1所述的基于LLDP的软件定义网络拓扑发现方法,其特征在于,步骤1所述多个软件定义网络SDN控制器进行组网连接,每个控制器与其域内的交换机建立连接,获取并存储交换机信息、交换机端口信息,该过程包括:
步骤1-1、多个SDN控制器通过域间通信协议进行组网连接;
步骤1-2、交换机启动后通过TCP协议请求与控制器端口的连接,当控制器启动后,控制器确认交换机的TCP请求,然后交换机发送OFPT_HELLO消息请求建立OpenFlow连接,控制器收到后向交换机返回OFPT_HELLO消息以建立连接;
步骤1-3、由控制器向交换机发送OFPT_FEATURES_REQUEST消息以获取交换机信息;
步骤1-4、控制器向交换机发送OFPMP_PORT_DESC请求消息以获取交换机端口信息;
步骤1-5、交换机向控制器返回OFPT_FEATURES_REPLY消息及OFPMP_PORT_DESC回复消息,其中OFPT_FEATURES_REPLY消息用于交换机向控制器报告交换机信息,OFPMP_PORT_DESC回复消息用于交换机向控制器报告交换机的每个端口信息;
步骤1-6、SDN控制器根据交换机返回的OFPT_FEATURES_REPLY消息及OFPMP_PORT_DESC回复消息存储交换机信息及其端口信息。
3.根据权利要求2所述的基于LLDP的软件定义网络拓扑发现方法,其特征在于,步骤1-2所述交换机信息包括:交换机ID、缓冲区大小、流表数量、辅助连接标志、统计信息支持情况、重组IP碎片支持情况及端口防环支持情况;
步骤1-3所述端口信息包括:端口号、MAC地址、行为标志、当前状态、数据通道特征、当前速率及最大速率。
4.根据权利要求1所述的基于LLDP的软件定义网络拓扑发现方法,其特征在于,步骤2所述SDN控制器向每个已连接的交换机预安装转发规则,其中包含LLDP分组的转发指令及限速指令,该过程包括:
步骤2-1、配置转发规则,包括以下过程:
步骤2-1-1、配置转发指令以指导交换机进行LLDP分组的修改及转发,并添加到转发规则中,包括:
(1)设置转发指令的匹配域用于匹配到达交换机的LLDP分组,转发指令的匹配域设置如下:以太网协议类型为协议号,目的物理地址Dst MAC为Nearest Bridge组地址,接收端口号为交换机每个端口对应的端口号;
(2)设置转发指令的动作域以进行分组包头修改及分组转发,转发指令的动作域设置为:首先将LLDP分组直接封装在Packet-In消息中并发送给SDN交换机;之后,针对每一个交换机的物理端口,添加修改包头的动作,将LLDP分组的包头中的源物理地址Src MAC地址依次改为交换机每一个端口的MAC地址,且每一次修改地址都需添加发送分组的动作,用于将LLDP分组发送到相应的端口;
步骤2-1-2、根据当前拓扑探测周期自定义设置相应的限速指令,并添加到转发规则中;
步骤2-2、将配置的转发规则下发至所有与SDN控制器已连接的交换机中,完成预安装。
5.根据权利要求4所述的基于LLDP的软件定义网络拓扑发现方法,其特征在于,步骤3所述SDN控制器随机选择网络中的一个交换机作为核心交换机,并为该核心交换机创建LLDP分组及转发指令,之后通过Packet-Out消息对所述LLDP分组及转发指令进行封装,并周期性地发送至核心交换机,该过程包括:
步骤3-1、为核心交换机创建一个LLDP分组,该LLDP分组的结构包括Dst MAC、Src MAC、以太网协议类型、Chassis ID TLV、Port No TLV、TTL TLV及End TLV,配置分别如下:将DstMAC配置为Nearest Bridge组地址,Src MAC配置为任意MAC地址,以太网协议类型配置为0x88cc,Chassis ID TLV配置为核心交换机ID,Port No TLV配置为任意值,TTL TLV配置为任意值,End TLV配置为2个空字节;
步骤3-2、修改SDN控制器发送Packet-Out消息的模式以降低控制器及控制链路负载,具体包括:令控制器只向数据面发送一次Packet-Out消息;
步骤3-3、为步骤3-1创建的LLDP分组配置转发指令:针对每一个交换机的物理端口,添加修改包头的动作,将LLDP分组的包头中的源物理地址Src MAC地址依次改为交换机每一个端口的MAC地址,且每一次修改地址都需添加发送分组的动作,用于将LLDP分组发送到相应的端口;
步骤3-4、将步骤3-1创建的LLDP分组和步骤3-3配置的转发指令封装在Packet-Out消息中,之后由SDN控制器将Packet-Out消息周期性地发送至核心交换机。
6.根据权利要求5所述的基于LLDP的软件定义网络拓扑发现方法,其特征在于,步骤6所述每个SDN控制器根据接收到的各个交换机的Packet-In消息求取域内拓扑信息;同时针对无法求取域内拓扑信息的Packet-In消息,由该Packet-In消息对应的SDN控制器提取出该消息中的关键数据,并周期性地将该关键数据同步至其它SDN控制器,该过程包括:
步骤6-1、每个SDN控制器对收到的所有Packet-In消息进行解析,获得若干LLDP分组;
步骤6-2、针对步骤6-1获得的每一个LLDP分组:
步骤6-2-1、提取其Src MAC信息、发送Packet-In消息的交换机ID及该交换机接收此LLDP分组的端口号;
步骤6-2-2、根据步骤1存储的交换机信息及其端口信息,查找端口MAC地址与步骤6-2-1中Src MAC相同的交换机ID及其端口号,若找到匹配信息,则断定找到的交换机端口与步骤6-2-1中发送Packet-In消息的交换机接收此LLDP分组的端口之间存在物理链路;
由上获得所有交换机之间的物理链路即域内拓扑信息;
步骤6-3、针对步骤6-2-2中无法找到匹配信息的Packet-In消息,SDN控制器将步骤6-2-1中提取出的Src MAC信息、交换机ID及端口号作为关键数据,并将该关键数据周期性地与其它控制器进行同步。
7.根据权利要求6所述的基于LLDP的软件定义网络拓扑发现方法,其特征在于,步骤7所述的各SDN控制器根据同步的关键数据求取域间拓扑信息,该过程包括:
根据步骤1存储的交换机信息及其端口信息,各SDN控制器查找端口MAC地址与同步得到的关键数据中Src MAC相同的交换机ID及其端口号,若找到匹配信息,则断定找到的交换机端口与关键数据中的交换机ID及端口号所表示的端口之间存在物理链路;
由上获得所有交换机之间的物理链路即域间拓扑信息。
CN201910962070.8A 2019-10-11 2019-10-11 基于lldp的软件定义网络拓扑发现方法 Pending CN110768823A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910962070.8A CN110768823A (zh) 2019-10-11 2019-10-11 基于lldp的软件定义网络拓扑发现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910962070.8A CN110768823A (zh) 2019-10-11 2019-10-11 基于lldp的软件定义网络拓扑发现方法

Publications (1)

Publication Number Publication Date
CN110768823A true CN110768823A (zh) 2020-02-07

Family

ID=69331831

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910962070.8A Pending CN110768823A (zh) 2019-10-11 2019-10-11 基于lldp的软件定义网络拓扑发现方法

Country Status (1)

Country Link
CN (1) CN110768823A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112260959A (zh) * 2020-09-02 2021-01-22 中电积至(海南)信息技术有限公司 一种云数据中心sdn网络负载均衡实现的方法
CN112333027A (zh) * 2020-11-20 2021-02-05 桂林航天工业学院 基于软件定义网络的分布式虚拟网络监视器的实现方法
CN114095508A (zh) * 2020-07-31 2022-02-25 南京理工大学 一种同交换机下p2p传输的方法
CN114339929A (zh) * 2021-11-26 2022-04-12 中国航空无线电电子研究所 一种航空集群网络路由方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104333475A (zh) * 2014-11-25 2015-02-04 上海斐讯数据通信技术有限公司 一种基于sdn的网络拓扑发现方法及系统
CN105357046A (zh) * 2015-11-23 2016-02-24 北京邮电大学 一种用于软件定义网络sdn的网络信息探测的方法
CN105721318A (zh) * 2016-02-29 2016-06-29 华为技术有限公司 一种软件定义网络sdn中发现网络拓扑的方法和装置
CN106341330A (zh) * 2016-08-30 2017-01-18 广州西麦科技股份有限公司 一种sdn控制器的拓扑发现方法及系统
CN106533948A (zh) * 2016-11-17 2017-03-22 中国电子科技集团公司第五十四研究所 一种软件定义天基骨干网络中链路拓扑发现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104333475A (zh) * 2014-11-25 2015-02-04 上海斐讯数据通信技术有限公司 一种基于sdn的网络拓扑发现方法及系统
CN105357046A (zh) * 2015-11-23 2016-02-24 北京邮电大学 一种用于软件定义网络sdn的网络信息探测的方法
CN105721318A (zh) * 2016-02-29 2016-06-29 华为技术有限公司 一种软件定义网络sdn中发现网络拓扑的方法和装置
CN106341330A (zh) * 2016-08-30 2017-01-18 广州西麦科技股份有限公司 一种sdn控制器的拓扑发现方法及系统
CN106533948A (zh) * 2016-11-17 2017-03-22 中国电子科技集团公司第五十四研究所 一种软件定义天基骨干网络中链路拓扑发现方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114095508A (zh) * 2020-07-31 2022-02-25 南京理工大学 一种同交换机下p2p传输的方法
CN112260959A (zh) * 2020-09-02 2021-01-22 中电积至(海南)信息技术有限公司 一种云数据中心sdn网络负载均衡实现的方法
CN112333027A (zh) * 2020-11-20 2021-02-05 桂林航天工业学院 基于软件定义网络的分布式虚拟网络监视器的实现方法
CN114339929A (zh) * 2021-11-26 2022-04-12 中国航空无线电电子研究所 一种航空集群网络路由方法

Similar Documents

Publication Publication Date Title
CN110768823A (zh) 基于lldp的软件定义网络拓扑发现方法
EP2911348B1 (en) Control device discovery in networks having separate control and forwarding devices
US9813289B2 (en) Technique for configuring a software-defined network
CN102377666B (zh) 具有平均速率和突发速率控制的基于泛洪的路由协议
WO2021043181A1 (zh) 一种数据传输方法及装置
CN110380973B (zh) 软件定义网络拓扑探测方法
US8315188B2 (en) Topology database synchronization
EP2472795B1 (en) Method and system for re-building single ring network topology
WO2013115177A1 (ja) ネットワークシステム、及びトポロジー管理方法
US6445715B1 (en) Dynamic trunk protocol
CN106411736A (zh) 一种面向软件定义卫星网络的节点资源发现策略优化方法
CN106656793B (zh) 一种sdn网络与ip网络的数据交互方法
CN111935022B (zh) 一种软件定义网络中流表一致性更新方法
WO2017084448A1 (zh) 一种网络系统及网络运行方法
CN101808045B (zh) 防止多生成树协议中老信息报文循环的方法及交换设备
WO2014069502A1 (ja) 通信システム、経路情報交換装置、通信ノード、経路情報の転送方法及びプログラム
JPWO2015079615A1 (ja) 通信システム、通信方法、ネットワーク情報結合装置、処理規則変換方法および処理規則変換プログラム
US20040105455A1 (en) Automatic edge port and one way connectivity detection with rapid reconfiguration for shared media in spanning tree configured bridged Local Area Networks
WO2014104277A1 (ja) 制御装置、通信システム、通信ノードの制御方法及びプログラム
WO2009062351A1 (fr) Procédé permettant de fusionner des systèmes d'empilement
CN111163003A (zh) 一种无线多控制域sdn网络的拓扑发现方法
Wu et al. RXstp: A topology discovery mechanism based on rapid spanning tree for SDN in-band control
WO2011047581A1 (zh) 一种环网保护信息的发现方法及系统
CN113612691B (zh) 一种路径转换方法、存储介质及终端设备
JP2013198077A (ja) ネットワーク及びブリッジ

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
AD01 Patent right deemed abandoned

Effective date of abandoning: 20230324