一种网络转发模型的建立方法、装置及系统与流程

文档序号:21719161发布日期:2020-08-05 01:08阅读:220来源:国知局
一种网络转发模型的建立方法、装置及系统与流程

本申请涉及通信技术领域,尤其涉及一种网络转发模型的建立方法、装置及系统。



背景技术:

基于意图的网络系统(intentbasednetworksystem,ibns)能够提升网络基础设施的可用性和敏捷性。

现有技术中,部署有ibns的设备(后续统称为控制设备)采用安全外壳协议(secureshell,ssh)作为其网络管理协议与网络设备进行通信。在通过ssh与网络设备连接后,控制设备向网络设备发送指令(例如,命令行界面(command-lineinterface,cli)命令);网络设备根据该指令获取自身的转发面信息(包括路由表项、转发表项等),并向控制设备发送包括该转发面信息的响应消息;后续,控制设备根据预设命令(该预设命令可以为控制设备出厂设置的)解析该响应消息以获取网络设备的转发面信息。之后,控制设备根据获取的转发面信息建立网络转发模型,并根据该网络转发模型验证多个网络设备组成的网络。

由于不同厂商、不同型号的网络设备发送的响应消息的格式不同,控制设备需要采用不同的预设命令才能解析这些响应消息,因此,需要为控制设备配置多种预设命令。这样的话,现有的控制设备建立网络转发模型的方法扩展性差。



技术实现要素:

本申请提供一种网络转发模型的建立方法、装置及系统,用于解决控制设备建立网络转发模型的方法扩展性差的问题。

为达到上述目的,本申请实施例采用如下技术方案:

第一方面,提供一种网络转发模型的建立方法,部署有ibns的控制设备采用网络配置协议(networkconfigrationprotocol,netconf)与网络设备进行通信,以获取网络设备的转发面信息,并根据获取到的转发面信息建立网络转发模型。

在一个实施方式中,控制设备向至少两个网络设备发送netconf请求消息,该netconf请求消息包括用于唯一标识netconf请求消息的消息标识、数据类型和用于指示请求获取数据类型对应的数据的获取标识,该netconf请求消息为控制设备基于支持的yang模型生成的;相应地,控制设备接收每个网络设备发送的包括消息标识和数据类型对应的数据的netconf响应消息,这样,控制设备即可从获取到的netconf响应消息中获取每个网络设备发送的数据,并根据获取到的数据,建立网络转发模型,该网络转发模型用于验证至少两个网络设备组成的网络。对于每个网络设备而言,该网络设备发送的netconf响应消息为该网络设备根据自身支持的yang模型生成的,该网络设备支持的yang模型与上述控制设备支持的yang模型一致。

由于yang模型是树形结构的建模语言,且控制设备支持的yang模型与网络设备支持的yang模型一致,因此,对于任一网络设备而言,控制设备均可直接解析网络设备发送的netconf响应消息,相比于现有技术,本申请实施例中的控制设备无需配置多种预设命令,有效地提高了建立网络转发模型的方法的扩展性。

此外,由于netconf响应消息是基于网络设备支持的yang模型生成的,因此,netconf响应消息中数据类型对应的数据也是基于yang模型的规定表示的,这样,控制设备能够根据从netconf响应消息中获取到的数据建立网络转发模型,有效地降低了建立网络转发模型的复杂性,提高了建立网络转发模型的效率和性能。

在本申请的一种可能的实现方式中,控制设备获取每个网络设备的转发表项和网络的拓扑结构,后续,该控制设备分析获取到的所有转发表项,并根据网络的拓扑结构和预先定义的基本事件,生成网络中不同基本事件的转换规则,该转换规则用于形式化表征网络转发模型。

这里的基本事件包括查询,开始,结束,从网络设备的接口进入,从网络设备的接口发出,从网络设备进入,从网络设备发出,进入转发路径,或离开转发路径中的至少一个,转发路径为网络中任意两个相邻网络设备之间的路径。

可以看出,从基本事件可以确定出报文所处的状态(如进入网络设备、进入转发路径等);对于每一网络设备而言,该网络设备的转发表项能够准确的反映出经由该网络设备的报文的传输情况(如下一跳的端口信息);因此,控制设备分析获取到的所有转发表项、并根据网络的拓扑结构和预先定义的基本事件,生成的网络转发模型的准确性较高。

在本申请的另一种可能的实现方式中,上述数据类型包括路由表项或转发表项,相应地,若数据类型包括转发表项,控制设备从每个网络设备发送的netconf响应消息中获取转发表项;若数据类型包括路由表项,控制设备从每个网络设备发送的netconf响应消息中获取路由表项,并根据获取到的路由表项,确定转发表项。

一般的,转发表包括路由表中的最优路由条目,是真正用于指导数据转发的表,转发表包括多个转发表项。路由表是用于做路由管理的表,路由表包括多个路由表项。动态路由协议学习到的路由首先会存储于路由表,后续,经过优选处理,将最优的路由条目存储于转发表,以供转发使用。因此,转发表是路由表的一个子集。这样的话,控制设备根据某一网络设备的路由表项可以确定出该网络设备的转发表项。

在本申请的另一种可能的实现方式中,若数据类型包括链路层发现协议(linklayerdiscoveryprotocol,lldp)信息,控制设备获取每个网络设备的lldp信息,并根据获取到的所有lldp信息,生成网络的拓扑结构;或者,控制设备根据获取到的所有转发表项,生成网络的拓扑结构。

对于某一网络设备而言,该网络设备的转发表项能够准确的反映出经由该网络设备的报文的传输情况,因此,控制设备可以根据获取到的所有转发表项,生成网络的拓扑结构。当然,若控制设备从netconf响应消息中获取到lldp信息,则该控制设备可直接根据获取到的lldp信息,生成网络的拓扑结构。

在本申请的另一种可能的实现方式中,在生成网络转发模型之后,控制设备还接收验证信息,并根据验证信息,运行网络转发模型,以确定验证结果。验证信息包括验证报文的起始网络设备的信息和所述验证报文的目的网际互联协议(internetprotocol,ip)地址。

在本申请的另一种可能的实现方式中,网络转发模型采用可满足性理论(satisfiabilitymodulotheories,smt)形式化语言描述。

第二方面,提供一种通信装置,该通信装置能够实现第一方面及其任意一种可能的实现方式中的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。

在本申请的一种可能的方式中,该通信装置可以包括发送单元、接收单元和处理单元,该发送单元、接收单元和处理单元可以执行上述第一方面及其任意一种可能的实现方式的网络转发模型的建立方法中的相应功能。例如:发送单元,用于向至少两个网络设备发送netconf请求消息,netconf请求消息包括消息标识、获取标识和数据类型,消息标识用于唯一标识netconf请求消息,获取标识用于指示请求获取数据类型对应的数据,netconf请求消息为处理单元基于该通信装置支持的yang模型生成的;接收单元,用于接收至少两个网络设备中每个网络设备发送的netconf响应消息,每个netconf响应消息包括消息标识和数据类型对应的数据;处理单元,用于根据接收单元接收到的netconf响应消息,获取每个网络设备发送的数据,并根据获取到的数据,建立网络转发模型,网络转发模型用于验证至少两个网络设备组成的网络;对于每个网络设备,netconf响应消息为根据所述网络设备支持的yang模型生成的,所述网络设备支持的yang模型与处理单元支持的yang模型一致。

第三方面,提供一种通信装置,该通信装置包括处理器和存储器,存储器与所述处理器连接;所述存储器用于存储计算机指令,当所述处理器执行所述计算机指令时,所述通信装置执行上述第一方面及其任意一种可能的实现方式所述的网络转发模型的建立方法。

可选的,该通信装置还包括收发器,该收发器用于在所述通信装置的处理器的控制下,执行上述第一方面及其任意一种可能的实现方式所述的网络转发模型的建立方法中收发数据、信令或信息的步骤,例如,发送netconf请求消息、接收netconf响应消息。

该通信装置可以是控制设备,也可以是控制设备中的一部分装置,例如控制设备中的芯片系统。该芯片系统用于支持控制设备实现第一方面及其任意一种可能的实现方式中所涉及的功能,例如,接收,发送或处理上述网络转发模型的建立方法中所涉及的数据和/或信息。该芯片系统包括芯片,也可以包括其他分立器件或电路结构。

第四方面,还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令;当计算机指令在通信装置上运行时,通信装置执行如上述第一方面及其各种可能的实现方式所述的网络转发模型的建立方法。

第五方面,还提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在通信装置上运行时,使得通信装置执行如上述第一方面及其各种可能的实现方式所述的网络转发模型的建立方法。

需要说明的是,上述计算机指令可以全部或者部分存储在第一计算机存储介质上,其中,第一计算机存储介质可以与通信装置的处理器封装在一起的,也可以与通信装置的处理器单独封装,本申请对此不作限定。

本申请中第二方面、第三方面、第四方面、第五方面及其各种实现方式的描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面、第三方面、第四方面、第五方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。

第六方面,提供一种网络转发模型的建立方法,网络设备在接收到部署有ibns的控制设备发送的netconf请求消息后,识别netconf请求消息中的获取标识和数据类型,并获取数据类型对应的数据,之后,网络设备向控制设备发送包括消息标识和数据类型对应的数据的netconf响应消息,netconf响应消息所包括的数据类型对应的数据用于控制设备建立网络转发模型,该网络转发模型用于验证网络设备与其他网络设备组成的网络。netconf请求消息包括消息标识、获取标识和数据类型,消息标识用于唯一标识netconf请求消息,获取标识用于指示请求获取数据类型对应的数据,netconf请求消息为控制设备基于该控制设备支持的yang模型生成的,netconf响应消息为根据网络设备支持的yang模型生成的,网络设备支持的yang模型与控制设备使用的yang模型一致。

由于yang模型是树形结构的建模语言,且网络设备支持的yang模型与控制设备支持的yang模型一致,因此,在网络设备向控制设备发送netconf响应消息后,控制设备可直接解析该netconf响应消息,相比于现有技术,本申请实施例中的控制设备无需配置多种预设命令,有效地提高了建立网络转发模型的方法的扩展性。

在本申请的一种可能的实现方式中,上述数据类型包括路由表项或转发表项,或者,上述数据类型包括路由表项或转发表项,以及lldp信息。

第七方面,提供一种通信装置,该通信装置能够实现第六方面及其任意一种可能的实现方式中的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。

在本申请的一种可能的方式中,该通信装置可以包括接收单元、处理单元和发送单元,该接收单元、处理单元和发送单元可以执行上述第六方面及其任意一种可能的实现方式的网络转发模型的建立方法中的相应功能。例如:接收单元,用于接收部署有基于ibns的控制设备发送的netconf请求消息,netconf请求消息包括消息标识、获取标识和数据类型,消息标识用于唯一标识netconf请求消息,获取标识用于指示请求获取数据类型对应的数据,netconf请求消息为控制设备基于该控制设备支持的yang模型生成的;处理单元,用于识别接收单元接收到的netconf请求消息中的获取标识和数据类型,并获取数据类型对应的数据;发送单元,向控制设备发送netconf响应消息,netconf响应消息包括消息标识和数据类型对应的数据,数据类型对应的数据用于控制设备建立网络转发模型,网络转发模型用于验证通信装置与其他通信装置组成的网络;网络转发模型用于验证网络设备与其他网络设备组成的网络,netconf响应消息为根据网络设备支持的yang模型生成的,网络设备支持的yang模型与控制设备支持的yang模型一致。

第八方面,提供一种通信装置,该通信装置包括处理器和存储器,存储器与所述处理器连接;所述存储器用于存储计算机指令,当所述处理器执行所述计算机指令时,所述通信装置执行上述第六方面及其任意一种可能的实现方式所述的网络转发模型的建立方法。

可选的,该通信装置还包括收发器,该收发器用于在所述通信装置的处理器的控制下,执行上述第六方面及其任意一种可能的实现方式所述的网络转发模型的建立方法中收发数据、信令或信息的步骤,例如,接收netconf请求消息、发送netconf响应消息。

该通信装置可以是网络设备,也可以是网络设备中的一部分装置,例如网络设备中的芯片系统。该芯片系统用于支持网络设备实现第六方面及其任意一种可能的实现方式中所涉及的功能,例如,接收,发送或处理上述网络转发模型的建立方法中所涉及的数据和/或信息。该芯片系统包括芯片,也可以包括其他分立器件或电路结构。

第九方面,还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令;当计算机指令在通信装置上运行时,使得通信装置执行如上述第六方面及其各种可能的实现方式所述的网络转发模型的建立方法。

第十方面,还提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在通信装置上运行时,使得通信装置执行如上述第六方面及其各种可能的实现方式所述的网络转发模型的建立方法。

需要说明的是,上述计算机指令可以全部或者部分存储在第二计算机存储介质上,其中,第二计算机存储介质可以与通信装置的处理器封装在一起的,也可以与通信装置的处理器单独封装,本申请对此不作限定。

本申请中第七方面、第八方面、第九方面、第十方面及其各种实现方式,可以参考第六方面及其各种实现方式中的详细描述;并且,第七方面、第八方面、第九方面、第十方面及其各种实现方式的有益效果,可以参考第六方面及其各种实现方式中的有益效果分析,此处不再赘述。

第十一方面,提供一种通信系统,包括如第二方面至第五方面任一方面所述的通信装置、如第七方面至第十方面中任一方面所述的通信装置。

在本申请中,上述通信装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。

本申请的这些方面或其他方面在以下的描述中会更加简明易懂。

附图说明

图1为一种rpc类型的netconf请求消息和netconf响应消息的格式;

图2为可适用于本申请实施例的通信系统的架构示意图;

图3为本申请实施例提供的通信装置的硬件结构示意图;

图4为本申请实施例提供的一种网络转发模型的建立方法的交互示意图;

图5为可适用于本申请实施例的网络的结构示意图;

图6为本申请实施例提供的另一种网络转发模型的建立方法的交互示意图;

图7为本申请实施例提供的通信装置的结构示意图一;

图8为本申请实施例提供的通信装置的结构示意图二。

具体实施方式

在本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。

以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

为了便于理解,这里先对本申请实施例涉及的术语和技术进行简单介绍。

netconf

netconf是一种网络管理协议,可以由上至下分为:内容层、操作层、消息层和安全传输层。内容层定义了数据模型的类型,如yang模型。操作层定义了几种常用的远程过程调用(remoteprocedurecall,rpc)类型,同时也支持用户自定义rpc类型。消息层定义了几种消息类型。安全传输层是指传输层需要使用带有安全加密的通信协议。

安全传输层支持面向连接、安全、能区分会话的协议,不强依赖某个协议(如ssh协议),能最大限度兼容已有的设备能力和协议。安全传输层为netconf服务端与netconf客户端的交互提供通信路径。

netconf消息

netconf消息可以包括rpc类型的netconf消息和通知类型的netconf消息等。

netconf消息通常采用可扩展标记语言(extensiblemarkuplanguage,xml)格式,如图1所示,为可适用于本申请一实施例的一种netconf消息的格式。图1示意了一种rpc类型的netconf请求消息和其响应消息的格式,以及消息格式中的代码与相应层之间的对应关系。

netconf消息被netconf的安全传输层封装在安全传输协议(如ssh)中进行传输。

netconf的操作层支持用户自定义的rpc类型。其中,定义rpc类型可以理解为定义netconf消息的格式,例如,定义netconf消息的每个输入参数的含义和每个输入参数所占的比特数,和/或,定义netconf消息的每个输出参数的含义和每个输出参数所占的比特数等。

netconf消息可以是基于yang模型生成的,yang模型是树形结构的建模语言。

ibns

ibns的运行可以分为以下几个部分:意图感知、转发面建模和意图网络验证。例如,控制设备(本申请实施例涉及到的控制设备均为部署有ibns的设备,后续不再进行特殊说明)从网络设备采集转发面数据(如转发表项、路由表项等),并根据采集到的转发面数据建立网络转发模型,进而根据该网络转发模型进行意图的验证,如可达性检测、环路检测等,得到验证结果,进而控制设备分析产生验证结果的根因。

现有技术中,控制设备需要根据预设命令解析网络设备发送的响应消息以获取网络设备的转发面信息,进而根据获取的转发面信息建立网络转发模型。但是,不同厂商、不同型号的网络设备发送的响应消息的格式不同,控制设备需要采用不同的预设命令才能解析这些响应消息,因此,需要为控制设备配置多种预设命令。这样的话,现有的采用控制设备建立网络转发模型的方法扩展性差。

针对上述问题,本申请实施例提供一种网络转发模型的建立方法、装置及系统,通过扩展netconf,使得控制设备采用netconf消息与网络设备进行通信,以采集网络设备的转发面信息(如路由表项或转发表项,可选的,还可以包括lldp信息),进而根据采集到的转发面信息建立网络转发模型。控制设备与网络设备通信所采用的netconf消息是基于yang模型建立的,且控制设备支持的yang模型与网络设备支持的yang模型一致,由于yang模型是树形结构的建模语言,因此,对于任一网络设备而言,控制设备均可直接解析网络设备发送的netconf消息,相比于现有技术,本申请实施例中的控制设备无需配置多种预设命令,有效地提高了建立网络转发模型的方法的扩展性。

本申请实施例提供的网络转发模型的建立方法适用于通信系统。图2示出了可适用于本申请一实施例的通信系统的架构示意图。

如图2所示,通信系统包括控制设备20,以及控制设备20管理的一个或多个网络设备21。其中,控制设备20与其所管理的网络设备21可以直接连接,也可以通过另一网络设备21间接连接。可选的,控制设备20与网络设备21之间的网络管理协议包括netconf,网络设备21之间的网络管理协议包括netconf。

图2中的多个网络设备21位于同一网络,控制设备20用于管理该网络中的网络设备21。控制设备20可以位于该网络之外,也可以位于该网络之内,本申请实施例对此不作限定。可选的,若控制设备20位于该网络之内,则该控制设备20用于管理一个网络中的网络设备。图2示出的控制设备位于该网络之外。

控制设备20,是通信系统的控制中心,负责管理网络设备21,如查询网络设备21的功能的(如路由功能、组播功能等)信息,或者配置网络设备21的功能(如增、删或改),或者显示网络设备21发送的错误报告等。

示例性地,控制设备20可以是部署有ibns的服务器。

网络设备21,是控制设备20管理的设备,例如可以是主机,网桥,路由器或集线器等。网络设备21可以响应控制设备20的请求以进行相应的操作,也可以在没有请求的情况下向控制设备20发送错误报告等。

需要说明的是,图2所示的通信系统为可适用于本申请一实施例的通信系统的一种示例,其不对所适用于本申请实施例的通信系统构成限定。

图2中的各个设备均属于通信装置。图3示出了可适用于本申请一实施例的通信装置的组成示意图。

如图3所示,该通信装置可以包括处理器31,存储器32、通信接口33、通信总线34。下面结合图3对通信装置的各个构成部件进行介绍:

处理器31是通信装置的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器31是一个中央处理器(centralprocessingunit,cpu),也可以是特定集成电路(application-specificintegratedcircuit,asic),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个数字信号处理器(digitalsignalprocessor,dsp),或,一个或者多个现场可编程门阵列(field-programmablegatearray,fpga)。

其中,处理器31可以通过运行或执行存储在存储器32内的软件程序,以及调用存储在存储器32内的数据,执行通信装置的各种功能。

作为一种实施例,处理器31可以包括一个或多个cpu,例如图3中所示的cpu0和cpu1。

作为一种实施例,通信装置还可以包括其他处理器,例如图3中所示的处理器35。通信装置中的多个处理器中的每一个可以是一个单核处理器(single-cpu),也可以是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

存储器32可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器32可以是独立存在,通过通信总线33与处理器31相连接。存储器32也可以和处理器31集成在一起。

其中,存储器32用于存储执行本申请方案的软件程序,并由处理器31来控制执行。

通信接口33,用于使用任何收发器一类的装置,与其他设备或通信网络通信,如以太网,无线接入网(radioaccessnetwork,ran),无线局域网(wirelesslocalareanetworks,wlan)等。通信接口33可以包括接收单元实现接收功能,以及发送单元实现发送功能。

通信总线34,可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponentinterconnect,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

需要指出的是,图3中示出的设备结构并不构成对该通信装置的限定,除图3所示部件之外,该通信装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图2所示的通信系统,图3所示的通信装置对本申请实施例提供的模型的建立方法进行描述。其中,下述方法实施例中提及的各个设备均可以具有图3所示组成部分,不再赘述。

图4为本申请实施例提供的网络转发模型的建立方法的流程图。如图4所示,该建立方法可以包括:

s400、控制设备向至少两个网络设备发送netconf请求消息。

netconf请求消息为控制设备基于该控制设备支持的yang模型生成的。该yang模型可以存储于控制设备,也可以是控制设备从其他地方(例如,云平台)上获取的。

在一个实施方式中,该控制设备可以采用组播方式向该至少两个网络设备发送该netconf请求消息。

在另一个实施方式中,该控制设备可以采用单播方式分别向该至少两个网络设备发送该netconf请求消息。

示例性地,该控制设备支持的yang模型可以通过如下代码实现:

该netconf请求消息包括消息标识、获取标识和数据类型。消息标识用于唯一标识netconf请求消息,获取标识用于指示请求获取数据类型对应的数据。

其中,数据类型可以包括转发表项或者路由表项。进一步的,数据类型还可以包括lldp信息。

与现有技术的netconf消息相比较,本申请实施例的netconf请求消息新增加了消息标识和操作标识,操作标识用于表示待请求的操作,如获取(get)、编辑(edit)、创建(create)等。例如:若操作标识的取值为0,则该操作标识为获取标识,用于表示获取数据类型对应的数据;若操作标识的取值为1,则该操作标识为编辑标识,用于表示编辑数据类型对应的数据。

在一个示例性中,若数据类型为路由表项,则控制设备发送的netconf请求消息可以通过如下代码实现:

在另一个示例性中,若数据类型为转发表项,则控制设备发送的netconf请求消息可以通过如下代码实现:

在另一个示例性中,若数据类型为lldp信息,则控制设备发送的netconf请求消息可以通过如下代码实现:

s401、每个网络设备均识别获取标识和数据类型,并获取数据类型对应的数据。

对于至少两个网络设备中的每个网络设备而言,该网络设备在接收到netconf请求消息后,识别netconf请求消息中的消息标识、获取数据类型和获取标识,并根据获取标识和数据类型,获取数据类型对应的数据。

s402、每个网络设备向控制设备发送netconf响应消息。

netconf响应消息包括消息标识和数据类型对应的数据,数据类型对应的数据用于控制设备建立网络转发模型。

每个网络设备在获取到数据类型对应的数据后,将获取到的数据和消息标识封装在netconf响应消息中,并向控制设备发送netconf响应消息。其中,netconf响应消息中的消息标识和netconf请求消息中的消息标识相同,这样,控制设备可以根据netconf响应消息中的消息标识确定该netconf响应消息与s400中的netconf请求消息对应。

netconf响应消息为网络设备根据自身支持的yang模型建立的,网络设备支持的yang模型与控制设备支持的yang模型一致。

其中,网络设备可以存储其支持的yang模型,也可以不存储其支持的yang模型。

示例性地,若网络设备没有存储其支持的yang模型,且该网络设备的开发是利用schema格式的语言进行的,则网络设备可以根据schema确定出其支持的yang模型。

示例性地,若数据类型对应的数据为路由表项,则网络设备发送的netconf响应消息可以通过如下代码实现:

s403、控制设备获取每个网络设备发送的数据,并根据获取到的数据,建立网络转发模型。

由于控制设备支持的yang模型与网络设备支持的yang模型一致,因此,控制设备在接收到每个网络设备发送的netconf响应消息后,可直接获取netconf响应消息中的消息标识和数据类型对应的数据。

控制设备在接收到每个网络设备发送的netconf响应消息后,获取每个网络设备的转发表项。

其中,若数据类型包括转发表项,则控制设备从每个网络设备发送的netconf响应消息中获取转发表项。若数据类型包括路由表项,则控制设备从每个网络设备发送的netconf响应消息中获取路由表项,并根据获取到的路由表项,确定转发表项。

一般的,转发表包括路由表中的最优路由条目,是真正用于指导数据转发的表,转发表包括多个转发表项。路由表是用于做路由管理的表,路由表包括多个路由表项。动态路由协议学习到的路由首先会存储于路由表,后续,经过优选处理,将最优的路由条目存储于转发表,以供转发使用。因此,转发表是路由表的一个子集。这样的话,控制设备根据某一网络设备的路由表项可以确定出该网络设备的转发表项。

除了获取每个网络设备的转发表项外,控制设备还获取至少两个网络设备组成的网络的拓扑结构。

在第一种可选实现方式中,控制设备获取网络的拓扑结构的方法为:若数据类型包括lldp信息,则控制设备获取每个网络设备的lldp信息,并根据获取到的所有lldp信息,生成网络的拓扑结构。

在第二种可选实现方式中,控制设备获取网络的拓扑结构的方法为:若数据类型仅包括转发表项或路由表项,则控制设备根据获取到的所有转发表项,生成网络的拓扑结构。

在获取到所有转发表项和网络的拓扑结构后,控制设备分析获取到的所有转发表项,并根据网络的拓扑结构和预先定义的基本事件,即可生成网络中不同基本事件的转换规则。该转换规则用于形式化表征网络转发模型。示例性地,网络转发模型采用smt形式化语言描述。

本申请实施例中预先定义的基本事件包括查询,开始,结束,从网络设备的接口进入,从网络设备的接口发出,从网络设备进入,从网络设备发出,进入转发路径,或离开转发路径中的至少一个,转发路径为网络中任意两个相邻网络设备之间的路径。这些基本事件的输入均为报文,输出均为真(true)/假(false)。若某一基本事件的输出为真(true),则说明输入的报文能够实现该基本事件,若某一基本事件的输出为假(false),则说明输入的报文无法实现该基本事件。

为了便于理解控制设备生成网络转发模型的方法,现在结合示例对此进行说明。

示例性地,预先定义的基本事件包括查询,开始,结束,从网络设备的接口进入,从网络设备的接口发出,从网络设备进入,从网络设备发出,进入转发路径以及离开转发路径。

基本事件“查询”采用query(packet)表示,基本事件“开始”采用start(packet),基本事件“结束”采用end(packet)表示,基本事件“从网络设备进入”采用post_in(packet)表示,基本事件“从网络设备发出”采用pre_out(packet)表示,基本事件“从网络设备的接口进入”采用pre_interface(packet)表示,基本事件“从网络设备的接口发出”采用post_interface(packet)表示,基本事件“进入转发路径”采用pre_out_edge(packet)表示,基本事件“离开转发路径”采用post_interface(packet)表示,输入的报文采用packet(src_ip,dest_ip,ingress_location)表示,其中,src_ip表示报文的源网络互联协议(internetprotocol,ip)地址,dest_ip表示报文的目的ip地址,ingress_location表示报文的注入(或输入)位置,即ingress_location表示报文的始发网络设备。

图5示出了包括网络设备src和网络设备dest的网络的结构,网络设备src包括一个接口,该接口的ip地址为1.0.0.0/8,网络设备dest包括两个接口,这两个接口的ip地址分别为1.0.0.1/8和2.0.0.0/8。

对于图5示出的网络,控制设备获取网络设备src的转发表项和网络设备dest的转发表项,以及获取该网络的拓扑结构,后续,控制设备分析获取到的转发表项,并根据该网络的拓扑结构和预先定义的基本事件,生成该网络中不同基本事件的转换规则,该转换规则如下下述蕴含表达式所示:

start_src(packet)andsrc_ip=1.0.0.0andingress_location=src->post_in_src(packet);//若执行基本事件“开始”&报文的源ip地址为1.0.0.0&报文的始发网络设备src,则意味着报文从网络设备src进入,其中,“->”表示“意味着/等同于”

post_in_src(packet)anddest_ip!=1.0.0.0->pre_out_src(packet);

//若报文从网络设备src进入&报文的目的ip地址不是1.0.0.0,则意味着报文从网络设备src发出

pre_out_src(packet)and(dest_ip=1.0.0.1ordest_ip前8位=2)->

pre_out_edge_src_interface_0_dest_interface_1(packet)

//若报文从网络设备src发出&(报文的目的ip地址为1.0.0.1或者前8位为2),则意味着报文进入接口interface_0与接口interface_1之间的转发路径

pre_out_edge_src_interface_0_dest_interface_1(packet)->

post_out_edge_src_interface_0_dest_interface_1(packet)

//若报文进入接口interface_0与接口interface_1之间的转发路径,则意味着报文离开接口interface_0与接口interface_1之间的转发路径

post_out_edge_src_interface_0_dest_interface_1(packet)->pre_interface_dest_interface_1(packet)//若报文离开接口interface_0与接口interface_1之间的转发路径,则意味着报文从接口interface_1进入,接口interface_1属于网络设备dest

pre_interface_dest_interface_1(packet)->post_interface_dest_interface_1(packet)//若报文从接口interface_1进入,则意味着报文从接口interface_1发出

post_interface_dest_interface_1(packet)->post_in_dest(packet)//若报文从接口interface_1发出,则意味着报文从网络设备dest进入

post_in_dest(packet)anddest_ip!=1.0.0.1->pre_out_dest(packet)//若报文从网络设备dest进入&报文的目的ip地址不为1.0.0.1,则意味着报文从网络设备dest发出

pre_out_dest(packet)anddest_ip前8位=2->end_dest(packet)//若报文从网络设备dest发出&报文的目的ip地址前8位为2,则意味着基本事件“结束”

end_dest(packet)->query//基本事件“结束”意味着开始后续的查询(query)

上述蕴含表达式用于形式化表征网络转发模型。

需要说明的是,图5仅仅是对至少两个网络设备组成的网络的示例,并不是对该网络的限定。在实际应用中,至少两个网络设备组成的网络往往比较复杂,即使是这样,控制设备依旧可以采用上述方法生成该网络中不同基本事件的转换规则,用于表示网络转发模型。

综上所述,由于yang模型是树形结构的建模语言,且控制设备支持的yang模型与网络设备支持的yang模型一致,因此,对于任一网络设备而言,控制设备均可直接解析网络设备发送的netconf响应消息,相比于现有技术,本申请实施例中的控制设备无需配置多种预设命令,有效地提高了建立网络转发模型的方法的扩展性。

此外,由于netconf响应消息是基于网络设备支持的yang模型生成的,因此,netconf响应消息中数据类型对应的数据也是基于yang模型的规定表示的,这样,控制设备能够直接根据从netconf响应消息中获取到的数据建立网络转发模型,有效地降低了建立网络转发模型的复杂性,提高了建立网络转发模型的效率和性能。

进一步地,控制设备在建立网络转发模型之后,还可以接收验证信息,并根据该验证信息,运行网络转发模型,以确定验证结果。

结合上述4,如图6所示,本申请实施例提供的网络转发模型的建立方法在s403之后还包括s600和s601。

s600、控制设备接收验证信息。

该验证信息包括验证报文的起始网络设备的信息和该验证报文的目的ip地址,该验证报文用于验证控制设备建立的网络转发模型。

验证报文可以是网络中传输的实际报文,也可以是专门构造出的报文。起始网络设备的信息包括起始网络设备的ip地址,或该验证报文进入该起始网络设备的接口等。

s601、控制设备根据验证信息,运行网络转发模型,确定验证结果。

控制设备可以根据网络转发模型进行可达性检测,所述验证结果指示所述网络的可达性。

例如:若控制设备根据上述图5得到网络转发模型,验证信息为:验证报文的起始网络设备为网络设备src,该网络设备src的ip地址为1.0.0.0,且验证报文的目的ip地址为2.0.0.0,该验证信息可表示为:src_ip=1.0.0.0andingress_location=srcanddest_ip=2.0.0.0。在接收到该验证信息后,控制设备运行网络转发模型,可以确定出验证结果为:可达,即说明从网络设备src到ip地址2.0.0.0之间的链路是可达的。

此外,控制设备还可以根据网路转发模型进行环路检测、黑洞检测等,这里对此不再进行一一描述。

本申请实施例还提供一种通信装置,该通信装置可以为控制设备,也可以为控制设备中的部分装置,例如控制设备中的芯片系统。可选的,该芯片系统,用于支持控制设备实现上述方法实施例中所涉及的功能,例如,接收,发送,或处理上述方法中所涉及的数据和/或信息。该芯片系统包括芯片,也可以包括其他分立器件或电路结构。

该通信装置用于执行以上网络转发模型的建立方法中的控制设备所执行的步骤。本申请实施例提供的通信装置可以包括相应步骤所对应的模块。

本申请实施例可以根据上述方法示例对通信装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,图7示出了本实施例中通信装置的一种可能的结构示意图。如图7所示,通信装置7包括发送单元70、接收单元71和处理单元72。

发送单元70用于支持该通信装置执行上述图4或图6中所示的发送操作,例如:s400等,和/或用于本文所描述的技术的其它过程。

接收单元71用于支持该通信装置执行上述图4或图6中所示的接收操作,例如:s402、s600等,和/或用于本文所描述的技术的其它过程。

处理单元72用于支持该通信装置执行上述图4或图6中所示的获取、生成、建立、验证等操作,例如:s403、s601等,和/或用于本文所描述的技术的其它过程。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。当然,本申请实施例提供的通信装置包括但不限于上述模块,例如通信装置还可以包括存储单元73。存储单元73可以用于存储该通信装置的程序代码和数据。

本申请提供的通信装置的实体框图可以参考上述图3。上述处理单元72可以是图3中的处理器31,发送单元70和接收单元71可以是图3中的通信接口33,存储单元73可以是图3中的存储器32。

本申请另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在通信装置上运行时,该通信装置执行如图4或图6所示的实施例的网络转发模型的建立方法中控制设备的步骤。

在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;通信装置的处理器可以从计算机可读存储介质读取该计算机执行指令,处理器执行该计算机执行指令使得通信装置执行如图4或图6所示的实施例的网络转发模型的建立方法中控制设备的步骤。

本申请实施例还提供一种通信装置,该通信装置可以为网络设备,也可以为网络设备中的部分装置,例如网络设备中的芯片系统。可选的,该芯片系统,用于支持网络设备实现上述方法实施例中所涉及的功能,例如,接收,发送,或处理上述方法中所涉及的数据和/或信息。该芯片系统包括芯片,也可以包括其他分立器件或电路结构。

该通信装置用于执行以上网络转发模型的建立方法中的网络设备所执行的步骤。本申请实施例提供的通信装置可以包括相应步骤所对应的模块。

本申请实施例可以根据上述方法示例对通信装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,图8示出了本实施例中通信装置的一种可能的结构示意图。如图8所示,通信装置8包括接收单元81、处理单元82和发送单元83。

接收单元81用于支持该通信装置执行上述图4或图6中所示的接收操作,例如:s400等,和/或用于本文所描述的技术的其它过程。

处理单元82用于支持该通信装置执行上述图4或图6中所示的获取等操作,例如:s401、等,和/或用于本文所描述的技术的其它过程。

发送单元83用于支持该通信装置执行上述图4或图6中所示的发送操作,例如:s402等,和/或用于本文所描述的技术的其它过程。

其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。当然,本申请实施例提供的通信装置包括但不限于上述模块,例如通信装置还可以包括存储单元84。存储单元84可以用于存储该通信装置的程序代码和数据。

本申请提供的通信装置的实体框图可以参考上述图3。上述处理单元82可以是图3中的处理器31,接收单元81和发送单元83可以是图3中的通信接口33,存储单元84可以是图3中的存储器32。

本申请另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在通信装置上运行时,该通信装置执行如图4或图6所示的实施例的网络转发模型的建立方法中网络设备的步骤。

在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;通信装置的处理器可以从计算机可读存储介质读取该计算机执行指令,处理器执行该计算机执行指令使得通信装置执行如图4或图6所示的实施例的网络转发模型的建立方法中网络设备的步骤。

在上述实施例中,可以全部或部分的通过软件,硬件,固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式出现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据终端。该可用介质可以是磁性介质,(例如,软盘,硬盘、磁带)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

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