CN111327446A - 配置数据处理方法、软件定义网络设备、系统及存储介质 - Google Patents

配置数据处理方法、软件定义网络设备、系统及存储介质 Download PDF

Info

Publication number
CN111327446A
CN111327446A CN201811543379.5A CN201811543379A CN111327446A CN 111327446 A CN111327446 A CN 111327446A CN 201811543379 A CN201811543379 A CN 201811543379A CN 111327446 A CN111327446 A CN 111327446A
Authority
CN
China
Prior art keywords
configuration data
logic code
configuration
data
code
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.)
Granted
Application number
CN201811543379.5A
Other languages
English (en)
Other versions
CN111327446B (zh
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.)
Huawei Technologies Co Ltd
Beijing Huawei Digital Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201811543379.5A priority Critical patent/CN111327446B/zh
Priority to PCT/CN2019/123689 priority patent/WO2020125452A1/zh
Publication of CN111327446A publication Critical patent/CN111327446A/zh
Application granted granted Critical
Publication of CN111327446B publication Critical patent/CN111327446B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/08Configuration management of networks or network elements
    • H04L41/0866Checking the configuration
    • H04L41/0873Checking configuration conflicts between network elements
    • 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/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/084Configuration by using pre-existing information, e.g. using templates or copying from other elements
    • H04L41/0846Configuration by using pre-existing information, e.g. using templates or copying from other elements based on copy from other elements
    • 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/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles

Landscapes

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

Abstract

本申请公开了一种配置数据处理方法、软件定义网络设备、系统及存储介质,其中方法,应用于软件定义网络SDN,在所述SDN中包含第一设备和第二设备,所述第一设备存储有第一配置文件,所述第二设备存储第二配置文件;该方法包括:所述第一设备获得第二逻辑码;所述第二逻辑码随第二配置数据变化而变化;所述第二配置数据是应当包含在所述第二配置文件中且与第一配置数据具有相同名称的配置数据;所述第一配置数据是应当包含在所述第一配置文件中的配置数据;比较第一逻辑码与所述第二逻辑码;所述第一逻辑码随所述第一配置数据变化而变化;在第一逻辑码与第二逻辑码不同的情况下,确认第一配置数据与第二配置数据不同。可以提高SDN网络的效率。

Description

配置数据处理方法、软件定义网络设备、系统及存储介质
技术领域
本发明涉及通信技术领域,尤其涉及一种配置数据处理方法、软件定义网络设备、系统及存储介质。
背景技术
软件定义网络(software defined network,SDN)是一种新型网络创新架构,属于网络虚拟化的实现方式;SDN的核心技术是将网络设备的控制面和数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。SDN中的控制器实现控制面功能,转发器实现数据面功能;因此,在SDN中的控制器和转发器会被分别定义且分开部署。
在SDN中,控制器可以采用网络配置协议(network configuration protocol,Netconf),表述性状态传递风格配置协议(representational state transferconfiguration,restconf)等协议与转发器进行数据交互。控制器与转发器中都包含有配置文件,该配置文件包含有配置数据,该配置数据可以包含用于指导控制面执行控制功能或指导数据面转发数据的数据。
控制器和转发器之间的配置数据有保持一致性的需求;因此,转发器和控制器有确认本地与对端的配置数据是否一致的需求。例如:在转发器离线后,控制器可能有离线配置;或者,使用命令行或者网管设备对转发器进行配置等场景下,均会导致控制器和转发器之间的配置数据产生不一致。
另外,在一定时期内,嵌入式设备也会在网络中长期与SDN网络的控制器和转发器并存,嵌入式设备上的配置数据也存在需要与控制器中的配置数据同步的需求。
转发器和控制器为了确认本地与对端的配置文件是否一致,目前一般采用的手段是:下载对端的配置文件,全文比对本地与对端的配置文件是否一致。例如:控制器读取转发器的配置文件,通过比对控制器的配置文件与转发器的配置文件中的每一项配置数据,确定两者是否一致。以上流程需要传递的数据量很大,而且由于SDN中的配置文件很大导致比对计算量非常大,因此SDN网络的效率低。
发明内容
本发明实施例所要解决的技术问题在于提供一种配置数据处理方法、软件定义网络设备、系统及存储介质,用于减少数据传递量以及比对计算量,从而提高SDN网络的效率。
一方面本发明实施例提供了一种配置数据的处理方法,应用于软件定义网络SDN,在所述SDN中包含第一设备和第二设备,所述第一设备和所述第二设备分别为控制器或转发器,所述第一设备存储有第一配置文件,所述第二设备存储第二配置文件,所述方法包括:
所述第一设备获得第二逻辑码;所述第二逻辑码随第二配置数据变化而变化;所述第二配置数据是应当包含在所述第二配置文件中且与第一配置数据具有相同名称的配置数据;所述第一配置数据是应当包含在所述第一配置文件中的配置数据;
比较第一逻辑码与所述第二逻辑码;所述第一逻辑码随所述第一配置数据变化而变化;
在所述第一逻辑码与所述第二逻辑码不同的情况下,确认所述第一配置数据与所述第二配置数据不同。
在本申请的所有实施例中“第一”“第二”“第三”以及“第四”均不表示顺序等含义,其仅仅是为了区分不同的设备或者存储在不同设备中的数据,不应作其他技术解读。后续不再赘述。
本实施例中的第一设备和第二设备可以均为控制器也可以均为转发器,还可以其中一个为控制器另一个为转发器;第一设备可以作为要确认配置数据一致性或者需要执行对账的设备使用。
本实施例中的第一逻辑码或第二逻辑码可以有其中一个没有,此时没有的逻辑码的值会表现为空;这是由于在其中一个设备中新创建了配置数据而没有及时更新到另一设备中,或者其中一个设备中的配置数据被删除了而另一个设备没有同步删除。第一逻辑码和第二逻辑码均存在的情况下,如果不一致通常的场景是第一逻辑数据和第二逻辑数据中的一个被修改了另一个没有同步修改,或者两个均被修改了但是修改方式不一致。
在本实施例中使用的逻辑码包含第一逻辑码和第二逻辑码,该逻辑码可以是包括:消息摘要算法(message digest algorithm,MD5)散列码,哈希校验码(HASH),配置时间戳,消息流水号,编辑距离算法(levenshtein distance)值,最长公共子串(longestcommon subsequence),循环冗余校验(cyclic redundancy check,CRC)校验码等;由于逻辑码会随着配置数据变化而变化,当配置数据被修改后相应的逻辑码也会被修改,因此可以比较逻辑码来确认配置数据是否相同,而不必传输和比较数据量巨大的配置数据。
本发明实施例使用配置数据的逻辑码来确认配置数据是否相同,不必传递配置数据也不用比较配置数据,因此可以减少数据传递量以及比对计算量,从而提高SDN网络的效率。
在一个可能的实现方式中,所述第一设备存储有第一状态文件,所述第二设备存储第二状态文件,所述方法还包括:
所述第一设备获得第四逻辑码;所述第三逻辑码随所述第二状态数据变化而变化;所述第二状态数据是应当包含在所述第二状态文件中且与第一状态数据具有相同名称的状态数据;所述第一状态数据是应当包含在所述第一状态文件中的状态数据;
比较第三逻辑码与所述第二逻辑码;所述第三逻辑码随所述第一状态数据变化而变化;
在所述第三逻辑码与所述第四逻辑码不同的情况下,确认所述第一状态数据与所述第二状态数据不同。
本实施例应用于状态数据的处理,可以参考前文中关于配置数据的处理过程,两者的原理是相同的;在后续实施例中,基于配置数据的实施例也可以参考地用于状态数据的处理,后续不再赘述。
在一个可能的实现方式中,所述第一设备获得第二逻辑码包括:
所述第一设备向所述第二设备发送获取报文,在所述获取报文中指示需要返回所述第二配置数据的所述第二逻辑码;
或者,所述第一设备使用网络配置协议(network configuration protocol,Netconf)或表述性状态传递风格配置协议(representational state transferconfiguration,Restconf)向所述第二设备发送标识信息,所述标识信息用于指示所述第二设备返回所述第二配置数据的所述第二逻辑码;
接收所述第二设备返回的所述第二逻辑码。
在本实施例中的获取报文可以是get/get-config报文,该get/get-config报文中可以在获取指令中指示第二配置数据的名称以及要返回的内容,例如:文件名和HASH值。
在一个可能的实现方式中,所述第一设备获得第二逻辑码之前,所述方法还包括:
计算得到所述第一配置数据的所述第一逻辑码。
该第一逻辑码可以是第一设备自己计算得到的,计算的时机可以是在空闲的时候计算,也可以是在有需求时触发临时计算。
在一个可能的实现方式中,所述计算得到所述第一配置数据的所述第一逻辑码包括:
在确定需要确认所述第一配置数据与所述第二配置数据是否相同后,计算得到所述第一配置数据的所述第一逻辑码;
或者,在所述第一配置数据被创建或被修改后,计算得到所述第一配置数据的所述第一逻辑码。
本实施例提供了两种计算逻辑码的应用场景,前一种是在有需求的时候计算,此种应用场景下可以不必存储逻辑码,也可以存储逻辑码;后一种是在配置数据发生变化以后及时计算逻辑码,此种场景下可以存储计算得到的存储逻辑码,如果是配置数据被创建那么会新增逻辑码,如果是配置数据被修改则新计算的逻辑码会替换该被修改的配置数据原有的逻辑码。
在一个可能的实现方式中,所述比较第一逻辑码与所述第二逻辑码之前,所述方法还包括:
为所述第一配置文件创建索引表,所述索引表以所述第一配置文件中的配置数据的名称为索引,记录有所述第一配置文件中的配置数据的名称对应的配置数据的逻辑码;
以所述第二配置数据的名称检索所述索引表,获得所述第一逻辑码。
为了统一维护配置数据的逻辑码方便使用,本实施例创建了索引表来管理逻辑码;结合前一实施例,如果有配置数据被创建,那么索引表中需要新增新创建的配置数据的名称,及其对应的逻辑码;如果有配置数据被修改,那么需要使用该被修改的配置数据的名称找到其对应的原逻辑码,然后使用新计算的逻辑码替换上述原逻辑码。
在一个可能的实现方式中,所述第一逻辑码与所述第二逻辑码不同的情况包括:
所述第一逻辑码和所述第二逻辑码中有且仅有一个为空,或者,所述第一逻辑码和所述第二逻辑码均不为空且值不同。
本实施例提供了第一逻辑码和第二逻辑码不同的几种情况,这几种情况会对应到不同的应用场景,前文已有说明,在此不再赘述。
在一个可能的实现方式中,所述方法还包括:
更新所述第一配置数据或所述第二配置数据使所述第一配置数据与所述第二配置数据相同。
在确认第一配置数据与第二配置数据不同以后,可以进一步执行数据同步的操作。本实施例中,可以依据需要将一个设备中的配置数据更新到另一个设备,至于使用哪一个设备作为更新数据的标准,本发明实施例不作限定。
在一个可能的实现方式中,所述第一配置文件和所述第二配置文件均使用YANG数据库存储,所述第一配置数据和所述第二配置数据分别使用一条YANG记录。
YANG(yet another next generation,一种网络配置建模语言),本实施例提供了配置文件所使用的描述模型为YANG模型,在实际应用中配置文件或者状态文件均可以使用其他的数据结构或描述模型,并不影响本发明实施例的实现,因此本发明实施例中关于使用YANG数据库存储配置文件或者状态文件的举例不应理解为对本发明实施例的唯一性限定。
二方面本发明实施例提供了另一种配置数据的处理方法,应用于软件定义网络SDN,在所述SDN中包含第一设备和第二设备,所述第一设备和所述第二设备分别为控制器或转发器,所述第一设备存储有第一配置文件,所述第二设备存储第二配置文件,所述方法包括:
所述第二设备收到需要返回第二配置数据的第二逻辑码的指示后,向所述第一设备发送所述第二逻辑码;所述第二逻辑码随第二配置数据变化而变化;所述第二配置数据是应当包含在所述第二配置文件中且与第一配置数据具有相同名称的配置数据;所述第一配置数据是应当包含在所述第一配置文件中的配置数据;所述第二逻辑码用于在与第一逻辑码不同的情况下确认所述第一配置数据与所述第二配置数据不同;所述第一逻辑码随所述第一配置数据变化而变化。
本实施例执行主体是与前一实施例中第一设备的相对一侧的设备,其中相同或相应的内容可以参考前文介绍,后续不再赘述。
在本实施例中,第二设备收到需要返回第二配置数据的第二逻辑码的指令后,会查找或者计算得到该第二逻辑码。另需说明的是,由于第二配置数据可能不存在于第二设备,此时第二逻辑码表现为空,那么该第二设备向该第一设备发送的第二逻辑码的值为空;第二配置数据不存在于第二设备的原因,有可能是在第二设备被删除了,或者第一设备新创建的数据并没有更新到第二设备。
在一个可能的实现方式中,所述第一设备存储有第一状态文件,所述第二设备存储第二状态文件,所述方法包括:
所述第二设备收到需要返回第二状态数据的第四逻辑码的指示后,向所述第二设备发送所述第四逻辑码;所述第四逻辑码随所述第二状态数据变化而变化;所述第二状态数据是应当包含在所述第二状态文件中且与第一状态数据具有相同名称的状态数据;所述第一状态数据是应当包含在所述第一状态文件中的状态数据;所述第四逻辑码用于在与第三逻辑码不同的情况下确认所述第一状态数据与所述第二状态数据不同;所述第三逻辑码随所述第一状态数据变化而变化。
在一个可能的实现方式中,所述第二设备收到需要返回第二配置数据的第二逻辑码的指示包括:
所述第二设备收到来自所述第一设备发送的获取报文,在所述获取报文中指示需要返回所述第二配置数据的所述第二逻辑码;
或者,所述第二设备收到来自所述第一设备使用网络配置协议或表述性状态传递风格配置协议发送的标识信息,所述标识信息用于指示所述第二设备返回所述第二配置数据的所述第二逻辑码。
在一个可能的实现方式中,所述向所述第一设备发送所述第二逻辑码之前,所述方法还包括:
所述第二设备在收到需要返回所述第二配置数据的所述第二逻辑码的指示后,计算得到所述第二配置数据的所述第二逻辑码;
或者,在所述第二配置数据被创建或被修改后,计算得到所述第二配置数据的所述第二逻辑码;
或者,接收所述第一设备发送的所述第二配置数据以及所述第二逻辑码。
在一个可能的实现方式中,所述向所述第一设备发送所述第二逻辑码之前,所述方法还包括:
为所述第二配置文件创建索引表,所述索引表以所述第二配置文件中的配置数据的名称为索引,记录有所述第一配置文件中的配置数据的名称对应的配置数据的逻辑码;
以所述第二配置数据的名称检索所述索引表,获得所述第一逻辑码。
三方面本发明实施例还提供了一种软件定义网络的设备,应用于软件定义网络SDN,在所述SDN中包含第一设备和第二设备,所述软件定义网络的设备作为所述第一设备使用,所述第一设备和所述第二设备分别为控制器或转发器,所述第一设备存储有第一配置文件,所述第二设备存储第二配置文件,所述软件定义网络的设备包括:
逻辑码获取单元,用于获得第二逻辑码;所述第二逻辑码随第二配置数据变化而变化;所述第二配置数据是应当包含在所述第二配置文件中且与第一配置数据具有相同名称的配置数据;所述第一配置数据是应当包含在所述第一配置文件中的配置数据;
比较单元,用于比较第一逻辑码与所述第二逻辑码;所述第一逻辑码随所述第一配置数据变化而变化;
确认单元,用于在所述第一逻辑码与所述第二逻辑码不同的情况下,确认所述第一配置数据与所述第二配置数据不同。
在一个可能的实现方式中,所述第一设备存储有第一状态文件,所述第二设备存储第二状态文件;
所述逻辑码获取单元,还用于所述第一设备获得第四逻辑码;所述第三逻辑码随所述第二状态数据变化而变化;所述第二状态数据是应当包含在所述第二状态文件中且与第一状态数据具有相同名称的状态数据;所述第一状态数据是应当包含在所述第一状态文件中的状态数据;
所述比较单元,还用于比较第三逻辑码与所述第二逻辑码;所述第三逻辑码随所述第一状态数据变化而变化;
所述确认单元,还用于在所述第三逻辑码与所述第四逻辑码不同的情况下,确认所述第一状态数据与所述第二状态数据不同。
在一个可能的实现方式中,所述逻辑码获取单元包括:
发送单元,用于向所述第二设备发送获取报文,在所述获取报文中指示需要返回所述第二配置数据的所述第二逻辑码;或者,使用网络配置协议或表述性状态传递风格配置协议向所述第二设备发送标识信息,所述标识信息用于指示所述第二设备返回所述第二配置数据的所述第二逻辑码;
接收单元,用于接收所述第二设备返回的所述第二逻辑码。
在一个可能的实现方式中,所述软件定义网络的设备还包括:
计算单元,用于在所述逻辑码获取单元获得第二逻辑码之前,计算得到所述第一配置数据的所述第一逻辑码。
在一个可能的实现方式中,所述计算单元,具体用于在确定需要确认所述第一配置数据与所述第二配置数据是否相同后,计算得到所述第一配置数据的所述第一逻辑码;
或者,在所述第一配置数据被创建或被修改后,计算得到所述第一配置数据的所述第一逻辑码。
在一个可能的实现方式中,所述软件定义网络的设备还包括:
索引创建单元,用于在所述比较单元比较所述第一逻辑码与所述第二逻辑码之前,为所述第一配置文件创建索引表,所述索引表以所述第一配置文件中的配置数据的名称为索引,记录有所述第一配置文件中的配置数据的名称对应的配置数据的逻辑码;
检索单元,用于以所述第二配置数据的名称检索所述索引表,获得所述第一逻辑码。
在一个可能的实现方式中,所述第一逻辑码与所述第二逻辑码不同的情况包括:
所述第一逻辑码和所述第二逻辑码中有且仅有一个为空,或者,所述第一逻辑码和所述第二逻辑码均不为空且值不同。
在一个可能的实现方式中,所述软件定义网络的设备还包括:
更新控制单元,用于更新所述第一配置数据或所述第二配置数据使所述第一配置数据与所述第二配置数据相同。
在一个可能的实现方式中,所述第一配置文件和所述第二配置文件均使用YANG数据库存储,所述第一配置数据和所述第二配置数据分别使用一条YANG记录。
四方面本发明实施例还提供了一种软件定义网络的设备,应用于软件定义网络SDN,在所述SDN中包含第一设备和第二设备,所述软件定义网络的设备作为所述第二设备使用,所述第一设备和所述第二设备分别为控制器或转发器,所述第一设备存储有第一配置文件,所述第二设备存储第二配置文件,所述软件定义网络的设备包括:
接收单元,用于接收需要返回第二配置数据的第二逻辑码的指示;
发送单元,用于在所述接收单元收到所述需要返回所述第二逻辑码的指示后,向所述第一设备发送所述第二逻辑码;所述第二逻辑码随第二配置数据变化而变化;所述第二配置数据是应当包含在所述第二配置文件中且与第一配置数据具有相同名称的配置数据;所述第一配置数据是应当包含在所述第一配置文件中的配置数据;所述第二逻辑码用于在与第一逻辑码不同的情况下确认所述第一配置数据与所述第二配置数据不同;所述第一逻辑码随所述第一配置数据变化而变化。
在一个可能的实现方式中,所述第一设备存储有第一状态文件,所述第二设备存储第二状态文件,所述软件定义网络的设备包括:
所述接收单元,还用于接收需要返回第二状态数据的第四逻辑码的指示;
所述发送单元,还用于在所述接收单元收到所述需要返回第二状态数据的第四逻辑码的指示后,向所述第二设备发送所述第四逻辑码;所述第四逻辑码随所述第二状态数据变化而变化;所述第二状态数据是应当包含在所述第二状态文件中且与第一状态数据具有相同名称的状态数据;所述第一状态数据是应当包含在所述第一状态文件中的状态数据;所述第四逻辑码用于在与第三逻辑码不同的情况下确认所述第一状态数据与所述第二状态数据不同;所述第三逻辑码随所述第一状态数据变化而变化。
在一个可能的实现方式中,所述接收单元,具体用于接收来自所述第一设备发送的获取报文,在所述获取报文中指示需要返回所述第二配置数据的所述第二逻辑码;
或者,接收来自所述第一设备使用网络配置协议或表述性状态传递风格配置协议发送的标识信息,所述标识信息用于指示所述第二设备返回所述第二配置数据的所述第二逻辑码。
在一个可能的实现方式中,所述接收单元,还用于接收所述第一设备发送的所述第二配置数据以及所述第二逻辑码;
或者,所述软件定义网络的设备还包括:
计算单元,用于在所述发送单元向所述第一设备发送所述第二逻辑码之前,在所述接收单元收到所述需要返回所述第二配置数据的所述第二逻辑码的指示后,计算得到所述第二配置数据的所述第二逻辑码;或者,在所述第二配置数据被创建或被修改后,计算得到所述第二配置数据的所述第二逻辑码。
在一个可能的实现方式中,所述软件定义网络的设备还包括:
索引创建单元,用于在所述发送单元向所述第一设备发送所述第二逻辑码之前,为所述第二配置文件创建索引表,所述索引表以所述第二配置文件中的配置数据的名称为索引,记录有所述第一配置文件中的配置数据的名称对应的配置数据的逻辑码;
检索单元,用于以所述第二配置数据的名称检索所述索引表,获得所述第一逻辑码。
五方面本发明实施例还提供了一种软件定义网络的设备,包括:处理器、存储器以及通信接口;其中所述处理器、所述存储器和所述通信接口以可通信方式连接,
在所述存储器中存储有程序代码;
所述处理器用于读取所述程序代码与所述通信接口配合实现发明实施例提供的任意一项由第一设备执行的方法流程;或者,所述处理器用于读取所述程序代码与所述通信接口配合实现发明实施例提供的任意一项由第二设备执行的方法流程。
六方面本发明实施例还提供了一种软件定义网络,包括:在所述软件定义网络SDN中包含第一设备和第二设备,所述软件定义网络的设备作为所述第二设备使用,所述第一设备和所述第二设备分别为控制器或转发器,所述第一设备存储有第一配置文件,所述第二设备存储第二配置文件;
所述第一设备为本发明实施例提供的任意一项作为第一设备使用的软件定义网络的设备;
所述第二设备为本发明实施例提供的任意一项作为第二设备使用的软件定义网络的设备。
七方面本发明实施例还提供了一种存储介质,所述存储介质中存储有程序代码,所述程序代码包括程序指令,所述程序指令当被处理器执行时与通信接口配合实现本发明实施例提供的任意一项的方法流程。
八方面本发明实施例还提供了一种软件程序,所述软件程序包含程序代码;所述程序代码包括程序指令,所述程序指令当被处理器执行时与通信接口配合实现本发明实施例提供的任意一项的方法流程。
附图说明
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
图1为本发明实施例SDN网络系统结构示意图;
图2为本发明实施例方法流程示意图;
图3为本发明实施例索引表示意图;
图4为本发明实施例设备结构示意图;
图5为本发明实施例设备结构示意图;
图6为本发明实施例设备结构示意图;
图7为本发明实施例系统结构示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。
如图1所示,为本发明实施例的系统结构示意图的举例,在SDN网络中,包含有SDN控制器和转发器,图1示意了转发器A,以及可以包含其他转发器。控制器中可以存储配置文件和状态文件;相应地,转发器也存储了配置文件和状态文件;在图1所示的SDN控制器和转发器均使用YANG作为数据的组织形式;其中,所有的YANG模型描述的数据存储在YANG数据库(database,DB)中,在图1中示意了N个使用YANG模型描述的数据;该N个使用YANG模型描述的数据可以是配置数据也可以是状态数据,配置数据的集合称为配置文件,状态数据的集合称为状态文件。
基于前文中,控制器和转发器之间有极其常见的数据对比诉求。以配置数据为例,控制器需要读取转发器的配置数据后与自身存储的配置数据同步,或者对账对比等处理。
其中,对账比对过程是:
1、控制器从转发器拉取配置数据存入本地数据库;
2、查询本地配置数据集合localSet,以及转发器的配置数据集合outerSet;
3、以localSet为基准,对outerSet进行遍历,将配置数据不一致,或者localSet存在而outerSet不存在的配置数据,放入新集合localDiffSet;
4、以outerSet为基准,对localSet进行遍历,将配置数据不一致,或者outerSet存在而localSet不存在的配置数据,放入新集合outerDiffSet;
5、将localDiffSet与outerDiffSet的配置数据,存入差异账表。
以上举例的对账处理过程需要在从转发器向控制器传递outerSet,然而outerSet通常数据量巨大,例如超过1G;另外localSet数据量也巨大,导致后续的遍历和比对的计算量巨大,相应地耗时也会很长;
以下在使用NETCONF协议中的get/get-config报文获发送获取指令以及接收返回数据进行举例之前,首先对NETCONF协议做如下介绍:
NETCONF协议是自动化配置系统的基础模块。可扩展标记语言(extensiblemarkup language,xml)是NETCONF协议通讯交互的通用语言,为层次化的数据内容提供了灵活而完备的编码机制。NETCONF可以与基于XML的数据转换技术结合使用,通过NETCONF协议把这些配置数据上传给设备执行。
YANG是国际互联网工程任务组(the internet engineering task force,IETF)标准组织定义的一种数据结构化建模语言,通过YANG模型来描述NETCONF客户端和服务端之间交互的数据格式,包括:配置数据、状态数据、远程过程调用(remote procedure call,RPCs)和通知(notification)。
NETCONF协议具有如下特性:
配置数据和状态数据分离;
多种配置数据集(datastore),例如candidate、running和startup;
定义了能力集交互过程,设定了几个标准能力集,同时也允许自定义以扩展能力集;
协议定义了多种标准协议操作;
通过子树或XPath过滤查询结果,查询方式更灵活。
另外,NETCONF协议提供一组基本操作,管理设备例如转发器和控制器中的配置数据,以及查询设备的配置数据和状态数据。NETCONF协议基线提供了对配置数据的获取和配置操作;对数据库的拷贝,删除的操作;对netconf链路进行关闭和强制下线操作;具体的执行形式为:
Get:获取系统的状态、统计信息;
get-config:查询配置数据;
edit-config:修改、创建、覆盖配置数据;
copy-config:用一套配置数据整体替换另一套配置数据;
delete-config:删除配置数据;
lock:加锁,屏蔽其他配置用户的配置权限;
unlock:解锁,和lock配合使用;
close-session:正常结束一个会话;
kill-session:强行中止一个会话。
在有数据比对诉求的时候,控制器指定过滤条件或者全量的查询转发器的YANGDB,举例报文如下:
Figure BDA0001908757070000091
返回结果举例:
Figure BDA0001908757070000092
Figure BDA0001908757070000101
以上仅为某一条配置数据的举例,在实际应用中YANG DB中这样的配置数据数量极为庞大。在控制器接收到配置数据或状态数据的返回结果后,控制器把返回结果和自身所存储的YANG DB对比后,可以得知控制器和转发器的数据差异,基于此结果,控制器再进行YANG DB合并,或者覆盖后对齐这些数据。
在本申请的实施例中,控制器和转发器针对各自的YANG DB,先计算各自YANG DB中配置数据和状态数据的逻辑码。本发明实施例中的配置数据和状态数据,可以认为是可以作为比对独立比对对象的任意配置数据和状态数据。该逻辑码可以以校验码的形式存在,该逻辑码随其对应数据变化而变化,因此可以对比两个指定的YANG数据是否相同来确定两个YANG数据是否相同。比如可以是YANG DB可扩展标记语言(extensible markuplanguage,xml)数据的MD5散列码,哈希校验码(HASH),配置时间戳,消息流水号,LD算法值,最长公共子串,CRC校验码等。对比逻辑码的开销远远小于对比海量数据内容,因此可以提高SDN网络性能。
在对比控制器和转发器的YANG DB中各配置数据和状态数据的逻辑码后,仅需要对逻辑码不一致的数据进行后续的对账或者同步操作,减少了冗余YANG DB的对比操作,以达到提升SDN网络性能的目的。
本发明实施例提供了一种配置数据的处理方法,如图2所示,应用于软件定义网络SDN,在上述SDN中包含第一设备和第二设备,上述第一设备和上述第二设备分别为控制器或转发器,上述第一设备存储有第一配置文件,上述第二设备存储第二配置文件;上述方法包括:
201:上述第一设备获得第二逻辑码;上述第二逻辑码随第二配置数据变化而变化;上述第二配置数据是应当包含在上述第二配置文件中且与第一配置数据具有相同名称的配置数据;上述第一配置数据是应当包含在上述第一配置文件中的配置数据;
上述第一设备和上述第二设备可以均为控制器也可以均为转发器,还可以其中一个为控制器另一个为转发器;上述第一设备可以作为要确认配置数据一致性或者需要执行对账的设备使用。
在本实施例中的获取报文可以是get/get-config报文,该get/get-config报文中可以在获取指令中指示第二配置数据的名称以及要返回的内容,例如:文件名和HASH值。或者使用其他协议来指示需要返回的内容,具体如下:上述第一设备获得第二逻辑码包括:
上述第一设备向上述第二设备发送获取报文,在上述获取报文中指示需要返回上述第二配置数据的上述第二逻辑码;
或者,上述第一设备使用网络配置协议或表述性状态传递风格配置协议向上述第二设备发送标识信息,上述标识信息用于指示上述第二设备返回上述第二配置数据的上述第二逻辑码;
接收上述第二设备返回的上述第二逻辑码。
后续实施例会给出使用get/get-config报文指定需要返回的配置数据的名称以及需要返回的内容的具体实例。
该第一逻辑码可以是第一设备自己计算得到的,计算的时机可以是在空闲的时候计算,也可以是在有需求时触发临时计算,具体如下:上述第一设备获得第二逻辑码之前,上述方法还包括:
计算得到上述第一配置数据的上述第一逻辑码。
本实施例提供了两种计算逻辑码的应用场景,具体如下:上述计算得到上述第一配置数据的上述第一逻辑码包括:
在确定需要确认上述第一配置数据与上述第二配置数据是否相同后,计算得到上述第一配置数据的上述第一逻辑码;
或者,在上述第一配置数据被创建或被修改后,计算得到上述第一配置数据的上述第一逻辑码。
本实施例提供的两种场景中的前一种是在有需求的时候计算,此种应用场景下可以不必存储逻辑码,也可以存储逻辑码;后一种是在配置数据发生变化以后及时计算逻辑码,此种场景下可以存储计算得到的存储逻辑码,如果是配置数据被创建那么会新增逻辑码,如果是配置数据被修改则新计算的逻辑码会替换该被修改的配置数据原有的逻辑码。
本实施例提供了配置文件所使用的描述模型为YANG模型的举例,具体如下:上述第一配置文件和上述第二配置文件均使用YANG数据库存储,上述第一配置数据和上述第二配置数据分别使用一条YANG记录。
在SDN网络的实际应用中,配置文件或者状态文件均可以使用其他的数据结构或描述模型,并不影响本发明实施例的实现,因此本实施例的举例不应理解为对本发明实施例的唯一性限定。
202:比较第一逻辑码与上述第二逻辑码;上述第一逻辑码随上述第一配置数据变化而变化;
为了统一维护配置数据的逻辑码方便使用,本实施例创建了索引表来管理逻辑码,具体如下:上述比较第一逻辑码与上述第二逻辑码之前,上述方法还包括:
为上述第一配置文件创建索引表,上述索引表以上述第一配置文件中的配置数据的名称为索引,记录有上述第一配置文件中的配置数据的名称对应的配置数据的逻辑码;
以上述第二配置数据的名称检索上述索引表,获得上述第一逻辑码。
以图1所示为例,本实施例的索引表可以如图3所示,索引表中包含的任意一条记录包含:名称+逻辑码;因此使用配置数据的名称检索该索引表,则可以找到该配置数据所对应的逻辑码。该索引表也可以使用YANG模型描述,后续实施例会对此进行实例的举例说明。
203:在上述第一逻辑码与上述第二逻辑码不同的情况下,确认上述第一配置数据与上述第二配置数据不同。
本实施例提供了第一逻辑码和第二逻辑码不同的几种情况,具体如下:上述第一逻辑码与上述第二逻辑码不同的情况包括:
上述第一逻辑码和上述第二逻辑码中有且仅有一个为空,或者,上述第一逻辑码和上述第二逻辑码均不为空且值不同。
以上几种逻辑码不同的情况分别可以对应到不同的应用场景,前文已有说明,在此不再赘述。
本发明实施例,由于逻辑码会随着配置数据变化而变化,当配置数据被修改后相应的逻辑码也会被修改,因此可以比较逻辑码来确认配置数据是否相同,而不必传输和比较数据量巨大的配置数据;因此可以减少数据传递量以及比对计算量,从而提高SDN网络的效率。
本发明实施例除了应用于配置数据是否相同的确认以外,还可以用于其他数据是否相同的确认,具体如下:上述第一设备存储有第一状态文件,上述第二设备存储第二状态文件,上述方法还包括:
上述第一设备获得第四逻辑码;上述第三逻辑码随上述第二状态数据变化而变化;上述第二状态数据是应当包含在上述第二状态文件中且与第一状态数据具有相同名称的状态数据;上述第一状态数据是应当包含在上述第一状态文件中的状态数据;
比较第三逻辑码与上述第二逻辑码;上述第三逻辑码随上述第一状态数据变化而变化;
在上述第三逻辑码与上述第四逻辑码不同的情况下,确认上述第一状态数据与上述第二状态数据不同。
如果SDN的转发器或控制器有其他数据需要确认是否相同,也可以参照配置数据是否相同的确认方式,确认原理是相同的,在本发明实施例中不再予以赘述。
在确认第一配置数据与第二配置数据不同以后,可以进一步执行数据同步的操作。本实施例中,可以依据需要将一个设备中的配置数据更新到另一个设备,至于使用哪一个设备作为更新数据的标准,本发明实施例不作限定,具体如下:上述方法还包括:
更新上述第一配置数据或上述第二配置数据使上述第一配置数据与上述第二配置数据相同。
基于前文说明,本发明实施例可以适用于SDN的转发器与控制器分离的组网场景中,当控制器和转发器之间需要进行YANG DB或类似数据执行同步或对账等功能时,解决大量对比数据导致控制器和转发器性能差的问题。
下面以控制器与转发器做数据交互,从转发器读取指定YANG模型的YANG DB做数据合并为例,描述本发明实施例的两个具体实例的举例:
一、控制器采用Netconf/YANG与转发器做数据交互,在控制器下发给转发器的get/get-config报文中,标识出需要读取YANG DB的HASH值:
Figure BDA0001908757070000131
二、扩展Netconf协议或者Restconf的其他动作标识关键字,达到获取校验值的目的,比如获取所有的YANG DB MD5校验值:
Figure BDA0001908757070000132
返回值示例:
Figure BDA0001908757070000133
如果控制器当前的YANG DB HASH值如下:
<dba-config xmlns="urn:bbf:yang:bbf-fiber">HASH=10<dba-config>//控制器本地的HASH值(与返回的HASH值不同)
<gemport-config xmlns="urn:bbf:yang:bbf-fiber">HASH=200<gemport-config>//控制器本地的HASH值(与返回的HASH值相同)
控制器通过对比,发现<gemport-config xmlns="urn:bbf:yang:bbf-fiber">的HASH校验值相同,YANG DB<dba-config xmlns="urn:bbf:yang:bbf-fiber">的HASH校验值不同,那么后续只需要读取不同YANG DB<dba-config xmlns="urn:bbf:yang:bbf-fiber">的具体数据,执行同步或者对账处理等操作。可以减少数据库内大量数据对比的开销,提升了SDN网络的性能。
本发明实施例还提供了前文实施例中索引表使用YANG模型来描述的具体实例。
本实施例,采用定义用于YANG DB的配置数据和状态数据对比的专用YANG模型为例,提升控制器与转发器执行数据对比性能。YANG定义可以做如下功能的定义:
Figure BDA0001908757070000141
通过以上功能YANG模型,本发明实施例还提供了查询报文的如下示例,可以获取到YANG DB的配置数据和状态数据的逻辑码。在获得逻辑码之后可以使用逻辑码执行对比,来提升SDN网络的性能。
Figure BDA0001908757070000142
Figure BDA0001908757070000151
本发明实施例,可以应用在如下场景下具有明显的性能收益:
1、在传统光线路终端(optical line terminal,OLT)等网络设备接入SDN网络,控制器需要快速获取配置数据并做数据同步合并时,控制器和转发器针对各自的YANG DB,优先计算每个YANG DB逻辑码,通过对比逻辑码发现YANG DB中存在的不同数据;由于对比一个逻辑码的开销远远小于对比海量数据库内容,因此可以减少了计算量,缩短了对账处理时间。
2、OLT等转发器被多个控制器管理,控制器之间做数据同步,存在大量配置数据雷同的场景下,优先计算YANG DB的逻辑码。此逻辑码可以对比两个指定的YANG DB是否相同,降低了数据对比量。
3、转发器频繁上下线配置数据变化很小的场景下,控制器需要快速确认转发器的配置数据是否变更,可以通过YANG DB的逻辑码来确认转发器的配置数据是否变更,而不是全量的配置数据对比,因此可以减少冗余对比计算量。
4、控制器下发全量或者大量的YANG DB到转发器,转发器需要对比变更进而进行硬件配置的场景下,本发明实施例可以通过比较YANG DB的逻辑码确定配置数据是否变更,而不是全量的配置数据对比,可以快速确定配置数据是否变更,从而提高业务下发速度。
5、本发明实施例在SDN架构下转发器和控制器以外的需要数据同步的领域也可以使用,比如:控制器集群场景,多个控制器之间的数据同步;转发器保护容灾场景的多转发器之间数据同步等,都可以采用本发明实施例使用YANG DB的逻辑码来确认数据是否发生变化方式进行性能提升。
本发明实施例还提供了一种软件定义网络的设备,应用于软件定义网络SDN,在上述SDN中包含第一设备和第二设备,上述软件定义网络的设备作为上述第一设备使用,上述第一设备和上述第二设备分别为控制器或转发器,上述第一设备存储有第一配置文件,上述第二设备存储第二配置文件,如图4所示,上述软件定义网络的设备包括:
逻辑码获取单元401,用于获得第二逻辑码;上述第二逻辑码随第二配置数据变化而变化;上述第二配置数据是应当包含在上述第二配置文件中且与第一配置数据具有相同名称的配置数据;上述第一配置数据是应当包含在上述第一配置文件中的配置数据;
比较单元402,用于比较第一逻辑码与上述第二逻辑码;上述第一逻辑码随上述第一配置数据变化而变化;
确认单元403,用于在上述第一逻辑码与上述第二逻辑码不同的情况下,确认上述第一配置数据与上述第二配置数据不同。
上述第一设备和上述第二设备可以均为控制器也可以均为转发器,还可以其中一个为控制器另一个为转发器;上述第一设备可以作为要确认配置数据一致性或者需要执行对账的设备使用。
本发明实施例的设备实施例中的技术内容可以参考前文方法实施例中的解释,后续实施例不再一一说明。
本发明实施例,由于逻辑码会随着配置数据变化而变化,当配置数据被修改后相应的逻辑码也会被修改,因此可以比较逻辑码来确认配置数据是否相同,而不必传输和比较数据量巨大的配置数据;因此可以减少数据传递量以及比对计算量,从而提高SDN网络的效率。
本发明实施例除了应用于配置数据是否相同的确认以外,还可以用于其他数据是否相同的确认,具体如下:上述第一设备存储有第一状态文件,上述第二设备存储第二状态文件;
上述逻辑码获取单元401,还用于上述第一设备获得第四逻辑码;上述第三逻辑码随上述第二状态数据变化而变化;上述第二状态数据是应当包含在上述第二状态文件中且与第一状态数据具有相同名称的状态数据;上述第一状态数据是应当包含在上述第一状态文件中的状态数据;
上述比较单元402,还用于比较第三逻辑码与上述第二逻辑码;上述第三逻辑码随上述第一状态数据变化而变化;
上述确认单元403,还用于在上述第三逻辑码与上述第四逻辑码不同的情况下,确认上述第一状态数据与上述第二状态数据不同。
如果SDN的转发器或控制器有其他数据需要确认是否相同,也可以参照配置数据是否相同的确认方式,确认原理是相同的,在本发明实施例中不再予以赘述。
在本实施例中的获取报文可以是get/get-config报文,该get/get-config报文中可以在获取指令中指示第二配置数据的名称以及要返回的内容,例如:文件名和HASH值。或者使用其他协议来指示需要返回的内容,具体如下:上述逻辑码获取单元401包括:
发送单元404,用于向上述第二设备发送获取报文,在上述获取报文中指示需要返回上述第二配置数据的上述第二逻辑码;或者,使用网络配置协议或表述性状态传递风格配置协议向上述第二设备发送标识信息,上述标识信息用于指示上述第二设备返回上述第二配置数据的上述第二逻辑码;
接收单元405,用于接收上述第二设备返回的上述第二逻辑码。
进一步地,上述软件定义网络的设备还包括:
计算单元406,用于在上述逻辑码获取单元401获得第二逻辑码之前,计算得到上述第一配置数据的上述第一逻辑码。
可选地,上述计算单元406,具体用于在确定需要确认上述第一配置数据与上述第二配置数据是否相同后,计算得到上述第一配置数据的上述第一逻辑码;
或者,在上述第一配置数据被创建或被修改后,计算得到上述第一配置数据的上述第一逻辑码。
进一步地,上述软件定义网络的设备还包括:
索引创建单元407,用于在上述比较单元402比较上述第一逻辑码与上述第二逻辑码之前,为上述第一配置文件创建索引表,上述索引表以上述第一配置文件中的配置数据的名称为索引,记录有上述第一配置文件中的配置数据的名称对应的配置数据的逻辑码;
检索单元408,用于以上述第二配置数据的名称检索上述索引表,获得上述第一逻辑码。
可选地,上述第一逻辑码与上述第二逻辑码不同的情况包括:
上述第一逻辑码和上述第二逻辑码中有且仅有一个为空,或者,上述第一逻辑码和上述第二逻辑码均不为空且值不同。
进一步地,上述软件定义网络的设备还包括:
更新控制单元409,用于更新上述第一配置数据或上述第二配置数据使上述第一配置数据与上述第二配置数据相同。
可选地,上述第一配置文件和上述第二配置文件均使用YANG数据库存储,上述第一配置数据和上述第二配置数据分别使用一条YANG记录。
本发明实施例还提供了一种软件定义网络的设备,应用于软件定义网络SDN,在上述SDN中包含第一设备和第二设备,上述软件定义网络的设备作为上述第二设备使用,上述第一设备和上述第二设备分别为控制器或转发器,上述第一设备存储有第一配置文件,上述第二设备存储第二配置文件,如图5所示,上述软件定义网络的设备包括:
接收单元501,用于接收需要返回第二配置数据的第二逻辑码的指示;
发送单元502,用于在上述接收单元501收到上述需要返回上述第二逻辑码的指示后,向上述第一设备发送上述第二逻辑码;上述第二逻辑码随第二配置数据变化而变化;上述第二配置数据是应当包含在上述第二配置文件中且与第一配置数据具有相同名称的配置数据;上述第一配置数据是应当包含在上述第一配置文件中的配置数据;上述第二逻辑码用于在与第一逻辑码不同的情况下确认上述第一配置数据与上述第二配置数据不同;上述第一逻辑码随上述第一配置数据变化而变化。
可选地,上述第一设备存储有第一状态文件,上述第二设备存储第二状态文件,上述软件定义网络的设备包括:
上述接收单元501,还用于接收需要返回第二状态数据的第四逻辑码的指示;
上述发送单元502,还用于在上述接收单元501收到上述需要返回第二状态数据的第四逻辑码的指示后,向上述第二设备发送上述第四逻辑码;上述第四逻辑码随上述第二状态数据变化而变化;上述第二状态数据是应当包含在上述第二状态文件中且与第一状态数据具有相同名称的状态数据;上述第一状态数据是应当包含在上述第一状态文件中的状态数据;上述第四逻辑码用于在与第三逻辑码不同的情况下确认上述第一状态数据与上述第二状态数据不同;上述第三逻辑码随上述第一状态数据变化而变化。
可选地,上述接收单元501,具体用于接收来自上述第一设备发送的获取报文,在上述获取报文中指示需要返回上述第二配置数据的上述第二逻辑码;
或者,接收来自上述第一设备使用网络配置协议或表述性状态传递风格配置协议发送的标识信息,上述标识信息用于指示上述第二设备返回上述第二配置数据的上述第二逻辑码。
可选地,上述接收单元501,还用于接收上述第一设备发送的上述第二配置数据以及上述第二逻辑码;
或者,上述软件定义网络的设备还包括:
计算单元503,用于在上述发送单元502向上述第一设备发送上述第二逻辑码之前,在上述接收单元501收到上述需要返回上述第二配置数据的上述第二逻辑码的指示后,计算得到上述第二配置数据的上述第二逻辑码;或者,在上述第二配置数据被创建或被修改后,计算得到上述第二配置数据的上述第二逻辑码。
可选地,上述软件定义网络的设备还包括:
索引创建单元504,用于在上述发送单元502向上述第一设备发送上述第二逻辑码之前,为上述第二配置文件创建索引表,上述索引表以上述第二配置文件中的配置数据的名称为索引,记录有上述第一配置文件中的配置数据的名称对应的配置数据的逻辑码;
检索单元505,用于以上述第二配置数据的名称检索上述索引表,获得上述第一逻辑码。
本发明实施例还提供了一种软件定义网络的设备,如图6所示,包括:处理器601、存储器602以及通信接口603;其中上述处理器601、上述存储器602和上述通信接口603以可通信方式连接;
存储器602包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmableread only memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM),该存储器602用于相关指令及数据。通信接口603用于接收和发送数据。
处理器601可以是一个或多个中央处理器(central processing unit,CPU),在处理器601是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
该软件定义网络的设备中的处理器601用于读取上述程序代码与上述通信接口603配合实现发明实施例提供的任意一项由第一设备执行的方法流程;或者,上述处理器601用于读取上述程序代码与上述通信接口603配合实现发明实施例提供的任意一项由第二设备执行的方法流程。
在本实施例中,通信接口603可以对应到前文实施例的软件定义网络的设备中的接收单元和发送单元的功能,前文实施例的软件定义网络的设备中的其他功能单元的功能可以由处理器601执行。
本发明实施例还提供了一种软件定义网络,如图7所示,包括:在上述软件定义网络SDN中包含第一设备701和第二设备702,上述软件定义网络的设备作为上述第二设备702使用,上述第一设备701和上述第二设备702分别为控制器或转发器,上述第一设备701存储有第一配置文件,上述第二设备702存储第二配置文件;
上述第一设备701为本发明实施例提供的任意一项作为第一设备701使用的软件定义网络的设备;
上述第二设备702为本发明实施例提供的任意一项作为第二设备702使用的软件定义网络的设备。
本实施例中第一设备701和第二设备702可以参阅图1中的转发器和SDN控制器,配置文件可以对应到YANG DB;YANG DB中的配置数据则可以对应到YANG1~N。
本发明实施例还提供了一种存储介质,上述存储介质中存储有程序代码,上述程序代码包括程序指令,上述程序指令当被处理器执行时与通信接口配合实现本发明实施例提供的任意一项的方法流程。
本发明实施例还提供了一种软件程序,上述软件程序包含程序代码;上述程序代码包括程序指令,上述程序指令当被处理器执行时与通信接口配合实现本发明实施例提供的任意一项的方法流程。
上述存储介质可以为任意的计算机可读取存储介质中,该软件程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。

Claims (31)

1.一种配置数据的处理方法,其特征在于,应用于软件定义网络SDN,在所述SDN中包含第一设备和第二设备,所述第一设备和所述第二设备分别为控制器或转发器,所述第一设备存储有第一配置文件,所述第二设备存储第二配置文件,所述方法包括:
所述第一设备获得第二逻辑码;所述第二逻辑码随第二配置数据变化而变化;所述第二配置数据是应当包含在所述第二配置文件中且与第一配置数据具有相同名称的配置数据;所述第一配置数据是应当包含在所述第一配置文件中的配置数据;
比较第一逻辑码与所述第二逻辑码;所述第一逻辑码随所述第一配置数据变化而变化;
在所述第一逻辑码与所述第二逻辑码不同的情况下,确认所述第一配置数据与所述第二配置数据不同。
2.根据权利要求1所述方法,其特征在于,所述第一设备存储有第一状态文件,所述第二设备存储第二状态文件,所述方法还包括:
所述第一设备获得第四逻辑码;所述第三逻辑码随所述第二状态数据变化而变化;所述第二状态数据是应当包含在所述第二状态文件中且与第一状态数据具有相同名称的状态数据;所述第一状态数据是应当包含在所述第一状态文件中的状态数据;
比较第三逻辑码与所述第二逻辑码;所述第三逻辑码随所述第一状态数据变化而变化;
在所述第三逻辑码与所述第四逻辑码不同的情况下,确认所述第一状态数据与所述第二状态数据不同。
3.根据权利要求1所述方法,其特征在于,所述第一设备获得第二逻辑码包括:
所述第一设备向所述第二设备发送获取报文,在所述获取报文中指示需要返回所述第二配置数据的所述第二逻辑码;
或者,所述第一设备使用网络配置协议或表述性状态传递风格配置协议向所述第二设备发送标识信息,所述标识信息用于指示所述第二设备返回所述第二配置数据的所述第二逻辑码;
接收所述第二设备返回的所述第二逻辑码。
4.根据权利要求1所述方法,其特征在于,所述第一设备获得第二逻辑码之前,所述方法还包括:
计算得到所述第一配置数据的所述第一逻辑码。
5.根据权利要求4所述方法,其特征在于,所述计算得到所述第一配置数据的所述第一逻辑码包括:
在确定需要确认所述第一配置数据与所述第二配置数据是否相同后,计算得到所述第一配置数据的所述第一逻辑码;
或者,在所述第一配置数据被创建或被修改后,计算得到所述第一配置数据的所述第一逻辑码。
6.根据权利要求1至5任意一项所述方法,其特征在于,所述比较第一逻辑码与所述第二逻辑码之前,所述方法还包括:
为所述第一配置文件创建索引表,所述索引表以所述第一配置文件中的配置数据的名称为索引,记录有所述第一配置文件中的配置数据的名称对应的配置数据的逻辑码;
以所述第二配置数据的名称检索所述索引表,获得所述第一逻辑码。
7.根据权利要求1至5任意一项所述方法,其特征在于,所述第一逻辑码与所述第二逻辑码不同的情况包括:
所述第一逻辑码和所述第二逻辑码中有且仅有一个为空,或者,所述第一逻辑码和所述第二逻辑码均不为空且值不同。
8.根据权利要求1至5任意一项所述方法,其特征在于,所述方法还包括:
更新所述第一配置数据或所述第二配置数据使所述第一配置数据与所述第二配置数据相同。
9.根据权利要求1至5任意一项所述方法,其特征在于,所述第一配置文件和所述第二配置文件均使用YANG数据库存储,所述第一配置数据和所述第二配置数据分别使用一条YANG记录。
10.一种配置数据的处理方法,其特征在于,应用于软件定义网络SDN,在所述SDN中包含第一设备和第二设备,所述第一设备和所述第二设备分别为控制器或转发器,所述第一设备存储有第一配置文件,所述第二设备存储第二配置文件,所述方法包括:
所述第二设备收到需要返回第二配置数据的第二逻辑码的指示后,向所述第一设备发送所述第二逻辑码;所述第二逻辑码随第二配置数据变化而变化;所述第二配置数据是应当包含在所述第二配置文件中且与第一配置数据具有相同名称的配置数据;所述第一配置数据是应当包含在所述第一配置文件中的配置数据;所述第二逻辑码用于在与第一逻辑码不同的情况下确认所述第一配置数据与所述第二配置数据不同;所述第一逻辑码随所述第一配置数据变化而变化。
11.根据权利要求10所述方法,其特征在于,所述第一设备存储有第一状态文件,所述第二设备存储第二状态文件,所述方法包括:
所述第二设备收到需要返回第二状态数据的第四逻辑码的指示后,向所述第二设备发送所述第四逻辑码;所述第四逻辑码随所述第二状态数据变化而变化;所述第二状态数据是应当包含在所述第二状态文件中且与第一状态数据具有相同名称的状态数据;所述第一状态数据是应当包含在所述第一状态文件中的状态数据;所述第四逻辑码用于在与第三逻辑码不同的情况下确认所述第一状态数据与所述第二状态数据不同;所述第三逻辑码随所述第一状态数据变化而变化。
12.根据权利要求10所述方法,其特征在于,所述第二设备收到需要返回第二配置数据的第二逻辑码的指示包括:
所述第二设备收到来自所述第一设备发送的获取报文,在所述获取报文中指示需要返回所述第二配置数据的所述第二逻辑码;
或者,所述第二设备收到来自所述第一设备使用网络配置协议或表述性状态传递风格配置协议发送的标识信息,所述标识信息用于指示所述第二设备返回所述第二配置数据的所述第二逻辑码。
13.根据权利要求10至12任意一项所述方法,其特征在于,所述向所述第一设备发送所述第二逻辑码之前,所述方法还包括:
所述第二设备在收到需要返回所述第二配置数据的所述第二逻辑码的指示后,计算得到所述第二配置数据的所述第二逻辑码;
或者,在所述第二配置数据被创建或被修改后,计算得到所述第二配置数据的所述第二逻辑码;
或者,接收所述第一设备发送的所述第二配置数据以及所述第二逻辑码。
14.根据权利要求10至12任意一项所述方法,其特征在于,所述向所述第一设备发送所述第二逻辑码之前,所述方法还包括:
为所述第二配置文件创建索引表,所述索引表以所述第二配置文件中的配置数据的名称为索引,记录有所述第一配置文件中的配置数据的名称对应的配置数据的逻辑码;
以所述第二配置数据的名称检索所述索引表,获得所述第一逻辑码。
15.一种软件定义网络的设备,其特征在于,应用于软件定义网络SDN,在所述SDN中包含第一设备和第二设备,所述软件定义网络的设备作为所述第一设备使用,所述第一设备和所述第二设备分别为控制器或转发器,所述第一设备存储有第一配置文件,所述第二设备存储第二配置文件,所述软件定义网络的设备包括:
逻辑码获取单元,用于获得第二逻辑码;所述第二逻辑码随第二配置数据变化而变化;所述第二配置数据是应当包含在所述第二配置文件中且与第一配置数据具有相同名称的配置数据;所述第一配置数据是应当包含在所述第一配置文件中的配置数据;
比较单元,用于比较第一逻辑码与所述第二逻辑码;所述第一逻辑码随所述第一配置数据变化而变化;
确认单元,用于在所述第一逻辑码与所述第二逻辑码不同的情况下,确认所述第一配置数据与所述第二配置数据不同。
16.根据权利要求15所述软件定义网络的设备,其特征在于,所述第一设备存储有第一状态文件,所述第二设备存储第二状态文件;
所述逻辑码获取单元,还用于所述第一设备获得第四逻辑码;所述第三逻辑码随所述第二状态数据变化而变化;所述第二状态数据是应当包含在所述第二状态文件中且与第一状态数据具有相同名称的状态数据;所述第一状态数据是应当包含在所述第一状态文件中的状态数据;
所述比较单元,还用于比较第三逻辑码与所述第二逻辑码;所述第三逻辑码随所述第一状态数据变化而变化;
所述确认单元,还用于在所述第三逻辑码与所述第四逻辑码不同的情况下,确认所述第一状态数据与所述第二状态数据不同。
17.根据权利要求15所述软件定义网络的设备,其特征在于,所述逻辑码获取单元包括:
发送单元,用于向所述第二设备发送获取报文,在所述获取报文中指示需要返回所述第二配置数据的所述第二逻辑码;或者,使用网络配置协议或表述性状态传递风格配置协议向所述第二设备发送标识信息,所述标识信息用于指示所述第二设备返回所述第二配置数据的所述第二逻辑码;
接收单元,用于接收所述第二设备返回的所述第二逻辑码。
18.根据权利要求15所述软件定义网络的设备,其特征在于,所述软件定义网络的设备还包括:
计算单元,用于在所述逻辑码获取单元获得第二逻辑码之前,计算得到所述第一配置数据的所述第一逻辑码。
19.根据权利要求15所述软件定义网络的设备,其特征在于,
所述计算单元,具体用于在确定需要确认所述第一配置数据与所述第二配置数据是否相同后,计算得到所述第一配置数据的所述第一逻辑码;
或者,在所述第一配置数据被创建或被修改后,计算得到所述第一配置数据的所述第一逻辑码。
20.根据权利要求15至19任意一项所述软件定义网络的设备,其特征在于,所述软件定义网络的设备还包括:
索引创建单元,用于在所述比较单元比较所述第一逻辑码与所述第二逻辑码之前,为所述第一配置文件创建索引表,所述索引表以所述第一配置文件中的配置数据的名称为索引,记录有所述第一配置文件中的配置数据的名称对应的配置数据的逻辑码;
检索单元,用于以所述第二配置数据的名称检索所述索引表,获得所述第一逻辑码。
21.根据权利要求15至19任意一项所述软件定义网络的设备,其特征在于,所述第一逻辑码与所述第二逻辑码不同的情况包括:
所述第一逻辑码和所述第二逻辑码中有且仅有一个为空,或者,所述第一逻辑码和所述第二逻辑码均不为空且值不同。
22.根据权利要求15至19任意一项所述软件定义网络的设备,其特征在于,所述软件定义网络的设备还包括:
更新控制单元,用于更新所述第一配置数据或所述第二配置数据使所述第一配置数据与所述第二配置数据相同。
23.根据权利要求15至19任意一项所述软件定义网络的设备,其特征在于,所述第一配置文件和所述第二配置文件均使用YANG数据库存储,所述第一配置数据和所述第二配置数据分别使用一条YANG记录。
24.一种软件定义网络的设备,其特征在于,应用于软件定义网络SDN,在所述SDN中包含第一设备和第二设备,所述软件定义网络的设备作为所述第二设备使用,所述第一设备和所述第二设备分别为控制器或转发器,所述第一设备存储有第一配置文件,所述第二设备存储第二配置文件,所述软件定义网络的设备包括:
接收单元,用于接收需要返回第二配置数据的第二逻辑码的指示;
发送单元,用于在所述接收单元收到所述需要返回所述第二逻辑码的指示后,向所述第一设备发送所述第二逻辑码;所述第二逻辑码随第二配置数据变化而变化;所述第二配置数据是应当包含在所述第二配置文件中且与第一配置数据具有相同名称的配置数据;所述第一配置数据是应当包含在所述第一配置文件中的配置数据;所述第二逻辑码用于在与第一逻辑码不同的情况下确认所述第一配置数据与所述第二配置数据不同;所述第一逻辑码随所述第一配置数据变化而变化。
25.根据权利要求24所述软件定义网络的设备,其特征在于,所述第一设备存储有第一状态文件,所述第二设备存储第二状态文件,所述软件定义网络的设备包括:
所述接收单元,还用于接收需要返回第二状态数据的第四逻辑码的指示;
所述发送单元,还用于在所述接收单元收到所述需要返回第二状态数据的第四逻辑码的指示后,向所述第二设备发送所述第四逻辑码;所述第四逻辑码随所述第二状态数据变化而变化;所述第二状态数据是应当包含在所述第二状态文件中且与第一状态数据具有相同名称的状态数据;所述第一状态数据是应当包含在所述第一状态文件中的状态数据;所述第四逻辑码用于在与第三逻辑码不同的情况下确认所述第一状态数据与所述第二状态数据不同;所述第三逻辑码随所述第一状态数据变化而变化。
26.根据权利要求24所述软件定义网络的设备,其特征在于,
所述接收单元,具体用于接收来自所述第一设备发送的获取报文,在所述获取报文中指示需要返回所述第二配置数据的所述第二逻辑码;
或者,接收来自所述第一设备使用网络配置协议或表述性状态传递风格配置协议发送的标识信息,所述标识信息用于指示所述第二设备返回所述第二配置数据的所述第二逻辑码。
27.根据权利要求24至26任意一项所述软件定义网络的设备,其特征在于,
所述接收单元,还用于接收所述第一设备发送的所述第二配置数据以及所述第二逻辑码;
或者,所述软件定义网络的设备还包括:
计算单元,用于在所述发送单元向所述第一设备发送所述第二逻辑码之前,在所述接收单元收到所述需要返回所述第二配置数据的所述第二逻辑码的指示后,计算得到所述第二配置数据的所述第二逻辑码;或者,在所述第二配置数据被创建或被修改后,计算得到所述第二配置数据的所述第二逻辑码。
28.根据权利要求24至26任意一项所述软件定义网络的设备,其特征在于,所述软件定义网络的设备还包括:
索引创建单元,用于在所述发送单元向所述第一设备发送所述第二逻辑码之前,为所述第二配置文件创建索引表,所述索引表以所述第二配置文件中的配置数据的名称为索引,记录有所述第一配置文件中的配置数据的名称对应的配置数据的逻辑码;
检索单元,用于以所述第二配置数据的名称检索所述索引表,获得所述第一逻辑码。
29.一种软件定义网络的设备,包括:处理器、存储器以及通信接口;其中所述处理器、所述存储器和所述通信接口以可通信方式连接,其特征在于,
在所述存储器中存储有程序代码;
所述处理器用于读取所述程序代码与所述通信接口配合实现权利要求1至9任意一项的方法流程;或者,所述处理器用于读取所述程序代码与所述通信接口配合实现权利要求10至14任意一项的方法流程。
30.一种软件定义网络,其特征在于,包括:在所述软件定义网络SDN中包含第一设备和第二设备,所述软件定义网络的设备作为所述第二设备使用,所述第一设备和所述第二设备分别为控制器或转发器,所述第一设备存储有第一配置文件,所述第二设备存储第二配置文件;
所述第一设备为权利要求15至23任意一项所述的软件定义网络的设备;
所述第二设备为权利要求24至28任意一项所述的软件定义网络的设备。
31.一种存储介质,其特征在于,所述存储介质中存储有程序代码,所述程序代码包括程序指令,所述程序指令当被处理器执行时与通信接口配合实现权利要求1至14任意一项的方法流程。
CN201811543379.5A 2018-12-17 2018-12-17 配置数据处理方法、软件定义网络设备、系统及存储介质 Active CN111327446B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811543379.5A CN111327446B (zh) 2018-12-17 2018-12-17 配置数据处理方法、软件定义网络设备、系统及存储介质
PCT/CN2019/123689 WO2020125452A1 (zh) 2018-12-17 2019-12-06 配置数据处理方法、软件定义网络设备、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811543379.5A CN111327446B (zh) 2018-12-17 2018-12-17 配置数据处理方法、软件定义网络设备、系统及存储介质

Publications (2)

Publication Number Publication Date
CN111327446A true CN111327446A (zh) 2020-06-23
CN111327446B CN111327446B (zh) 2022-02-25

Family

ID=71102529

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811543379.5A Active CN111327446B (zh) 2018-12-17 2018-12-17 配置数据处理方法、软件定义网络设备、系统及存储介质

Country Status (2)

Country Link
CN (1) CN111327446B (zh)
WO (1) WO2020125452A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114928537A (zh) * 2022-05-17 2022-08-19 中国联合网络通信集团有限公司 网络设备配置方法、装置及存储介质
CN114978903A (zh) * 2022-05-20 2022-08-30 中国电信股份有限公司 配置下发方法、装置、服务器及可读存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113746682A (zh) * 2021-09-07 2021-12-03 迈普通信技术股份有限公司 配置保障方法及装置
CN116185947A (zh) * 2021-11-29 2023-05-30 华为技术有限公司 一种yang模型文件的管理方法、装置及系统
CN114124687B (zh) * 2021-12-08 2023-05-12 中国电子科技集团公司第三十四研究所 一种sptn网络控制平面和转发平面配置同步方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104601366A (zh) * 2014-12-05 2015-05-06 无锡城市云计算中心有限公司 一种控制、服务节点配置服务的方法及装置
WO2016085516A1 (en) * 2014-11-28 2016-06-02 Hewlett Packard Enterprise Development Lp Verifying a network configuration
CN105721347A (zh) * 2016-02-18 2016-06-29 北京京东尚科信息技术有限公司 精确控制网络带宽的方法和系统
CN106888110A (zh) * 2016-12-16 2017-06-23 新华三技术有限公司 一种配置数据同步方法及装置
CN107645394A (zh) * 2016-07-22 2018-01-30 上海诺基亚贝尔股份有限公司 一种sdn网络中的交换机配置方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9935831B1 (en) * 2014-06-03 2018-04-03 Big Switch Networks, Inc. Systems and methods for controlling network switches using a switch modeling interface at a controller
US9705775B2 (en) * 2014-11-20 2017-07-11 Telefonaktiebolaget Lm Ericsson (Publ) Passive performance measurement for inline service chaining
US20180262407A1 (en) * 2017-03-09 2018-09-13 Arijit Biswas Telemetry Architecture for Integrated Circuits and Cloud Infrastructure

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016085516A1 (en) * 2014-11-28 2016-06-02 Hewlett Packard Enterprise Development Lp Verifying a network configuration
CN104601366A (zh) * 2014-12-05 2015-05-06 无锡城市云计算中心有限公司 一种控制、服务节点配置服务的方法及装置
CN105721347A (zh) * 2016-02-18 2016-06-29 北京京东尚科信息技术有限公司 精确控制网络带宽的方法和系统
CN107645394A (zh) * 2016-07-22 2018-01-30 上海诺基亚贝尔股份有限公司 一种sdn网络中的交换机配置方法
CN106888110A (zh) * 2016-12-16 2017-06-23 新华三技术有限公司 一种配置数据同步方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114928537A (zh) * 2022-05-17 2022-08-19 中国联合网络通信集团有限公司 网络设备配置方法、装置及存储介质
CN114928537B (zh) * 2022-05-17 2023-06-13 中国联合网络通信集团有限公司 网络设备配置方法、装置及存储介质
CN114978903A (zh) * 2022-05-20 2022-08-30 中国电信股份有限公司 配置下发方法、装置、服务器及可读存储介质
CN114978903B (zh) * 2022-05-20 2023-10-31 中国电信股份有限公司 配置下发方法、装置、服务器及可读存储介质

Also Published As

Publication number Publication date
CN111327446B (zh) 2022-02-25
WO2020125452A1 (zh) 2020-06-25

Similar Documents

Publication Publication Date Title
CN111327446B (zh) 配置数据处理方法、软件定义网络设备、系统及存储介质
US11573938B2 (en) Systems and methods for indexing source code in a search engine
US7805416B1 (en) File system query and method of use
CN107220142B (zh) 执行数据恢复操作的方法及装置
CN110175213A (zh) 一种基于SCN方式的Oracle数据库同步系统及方法
US8250102B2 (en) Remote storage and management of binary object data
US10990629B2 (en) Storing and identifying metadata through extended properties in a historization system
CN106462575A (zh) 群集内存数据库的设计及实现
CN113986873B (zh) 一种海量物联网数据模型化的处理、存储与共享方法
US8135763B1 (en) Apparatus and method for maintaining a file system index
CN102033912A (zh) 一种分布式数据库访问方法及系统
US11900083B2 (en) Systems and methods for indexing source code in a search engine
US20150363484A1 (en) Storing and identifying metadata through extended properties in a historization system
US20220035786A1 (en) Distributed database management system with dynamically split b-tree indexes
CN112035463B (zh) 基于日志解析的异构数据库的双向同步方法和同步装置
CN102006156A (zh) 配置数据的板间同步方法及系统
CN113348450A (zh) 一种车载数据存储方法及系统
CN113190523B (zh) 一种基于多客户端协同的分布式文件系统、方法和客户端
US11573969B1 (en) Adding a read-only query engine to perform queries to a point-in-time of a write-accessible database
CN115134229B (zh) 一种基于覆盖网的ndn网络管理系统及方法
CN117033487B (zh) 一种基于数据共享的接口灵活编排的系统及方法
WO2014176954A1 (zh) 分布式存储系统的数据的处理方法、装置及系统
CN117193671B (zh) 数据处理方法、装置、计算机设备和计算机可读存储介质
US11514017B2 (en) Systems and methods for provisioning a new secondary IdentityIQ instance to an existing IdentityIQ instance
US20240007876A1 (en) Restoration of a network slice

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
GR01 Patent grant
GR01 Patent grant