一种YANG模块增量同步方法及装置与流程
本技术涉及网络,特别是涉及一种yang模块增量同步方法及装置。
背景技术:
1、随着软件定义网络(software defined networking,sdn)和网络自动化技术的快速发展,网络管理设备需要实时掌握网络设备(如交换机、路由器)的能力模型。另一种下一代数据建模语言(yet another next generation,yang)作为一种数据建模语言,已被广泛应用于网络设备的配置和状态管理。互联网工程任务组(internet engineering taskforce,ietf)在征求意见稿7895(request for comments7895,rfc7895)和征求意见稿8525(request for comments8525,rfc8525)中分别定义了 yang库(yang library)机制,用于让调用网络配置协议(network configuration protocol, netconf)的网络管理设备发现网络设备支持的 yang 模块信息。典型的网络设备中维护的 yang 模型文件数量庞大,例如,入门级设备内维护200个-500 个 yang 模块,中高端设备内维护500个-1000以上个yang模块。
2、网络管理设备为了对网络设备进行管理,需要获取网络设备中维护的所有yang模块。rfc7895规定了一套完整的yang模块发现机制,每当网络设备内的yang模块集合发生变化,网络管理设备需要从网络设备中重新获取所有yang模块的元数据,网络管理模块根据元数据对比当前存储的yang模块与新获取的yang模块,确定其中发生变化的yang模块,之后针对发生变化的yang模块向网络设备发送获取请求,以对自身存储的yang模块集合进行更新,从而使得两者中维护的yang模块保持同步。
3、但是采用以上方式进行yang模块同步,会在每次同步过程中传输所有yang模块的元数据,数据传输效率低下,且进行yang模块对比需要消耗大量的计算资源,使得整体的同步延迟高。
技术实现思路
1、本技术实施例的目的在于提供一种yang模块增量同步方法及装置,以提高yang模块同步的数据传输效率,节省计算资源,降低同步延迟。具体技术方案如下:
2、第一方面,本技术实施例提供了一种另一种下一代数据建模语言yang模块增量同步方法,应用于网络设备,所述方法包括:
3、根据所存储的yang模块集合的更新情况,构建历史链,其中,所述历史链中的节点顺次对应按照版本顺序排列的不同的yang模块集合,除对应初始版本的节点外,其他节点中记录有所对应版本的yang模块集合中相较于上一版本发生更新的yang模块;
4、接收网络管理设备发送的yang模块同步请求,所述yang模块同步请求是所述网络管理设备在确定所述网络管理设备存储的目标版本的yang模块集合不是最新版本的情况下发送的;
5、向所述网络管理设备发送所述历史链,以使得所述网络管理设备在根据所述历史链,确定目标yang模块,并向所述网络设备发送获取所述目标yang模块的增量请求,其中,所述目标yang模块为:所述历史链中从所述目标版本对应的节点至所述最新版本对应的节点中记录的发生更新的yang模块;
6、接收所述增量请求,并根据所述增量请求向所述网络管理设备发送所述目标yang模块,以使得所述网络管理设备基于所述目标yang模块更新所存储的yang模块集合。
7、本技术的一个实施例中,所述根据所存储的yang模块集合的更新情况,构建历史链,包括:
8、在当前所存储的yang模块集合为初始版本的情况下,构建历史链中对应初始版本yang模块集合的节点;
9、在当前所存储的yang模块集合不是初始版本的情况下,构建对应当前所存储版本的yang模块的节点,并将新构建的节点链接于所述历史链的首部。
10、本技术的一个实施例中,所述历史链中的节点中记录有该节点对应的yang模块集合的版本标识、生成时刻,除对应初始版本的节点外的其他节点中还记录有:所对应版本的yang模块集合中相较于上一版本发生更新的yang模块的模块标识以及更新类型,所述更新类型为修改、新增或删除。
11、第二方面,本技术实施例提供了一种另一种下一代数据建模语言yang模块增量同步方法,应用于网络管理设备,所述方法包括:
12、判断所述网络管理设备中当前存储的目标版本的yang模块集合与网络设备中当前存储的最新版本的yang模块集合是否为同一版本;
13、若不是,则向所述网络管理设备发送yang模块同步请求;
14、接收所述网络设备响应于所述yang模块同步请求发送的历史链,其中,所述历史链是所述网络设备根据所存储的yang模块集合的更新情况构建的,所述历史链中的节点顺次对应不同的yang模块集合,所述yang模块集合按照版本顺序排列,除对应初始版本的节点外,其他节点中记录有所对应版本的yang模块集合中相较于上一版本发生更新的yang模块;
15、根据所述历史链,确定目标yang模块,其中,所述目标yang模块为:所述历史链中从所述目标版本对应的节点至所述最新版本对应的节点中记录的发生更新的yang模块;
16、向所述网络设备发送获取所述目标yang模块的增量请求;
17、接收所述网络设备响应于所述增量请求反馈的目标yang模块,基于所述目标yang模块更新所存储的yang模块集合。
18、本技术的一个实施例中,所述方法还包括:
19、若所述网络管理设备中当前未存储yang模块或所述历史链中不包含对应目标版本的yang模块集合的节点,则向所述网络设备发送全量同步请求,以使得所述网络设备向所述网络管理设备反馈当前存储的最新版本的yang模块集合中的所有yang模块的元数据;
20、根据所述元数据确定需要获取的yang模块;
21、针对需要获取的yang模块,向网络设备发送获取请求,以使得所述网络设备反馈所述获取请求针对的yang模块;
22、基于所接收的yang模块更新自身存储的yang模块集合。
23、本技术的一个实施例中,所述判断所述网络管理设备中当前存储的目标版本的yang模块集合与网络设备中当前存储的最新版本的yang模块集合是否为同一版本,包括:
24、接收网络设备推送的其当前存储的最新版本的yang模块集合的版本标识;
25、判断所接收的版本标识与所述网络管理设备中当前存储的目标版本的yang模块集合的版本标识是否相同;
26、若相同,则确定最新版本的yang模块集合与所述目标版本的yang模块集合为同一版本;
27、若不相同,则确定最新版本的yang模块集合与所述目标版本的yang模块集合不是同一版本。
28、第三方面,本技术实施例提供了一种网络设备,所述网络设备包括:
29、处理器;
30、收发器;
31、机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述机器可执行指令促使所述处理器执行以下步骤:
32、根据所存储的yang模块集合的更新情况,构建历史链,其中,所述历史链中的节点顺次对应按照版本顺序排列的不同的yang模块集合,除对应初始版本的节点外,其他节点中记录有所对应版本的yang模块集合中相较于上一版本发生更新的yang模块;
33、接收网络管理设备发送的yang模块同步请求,所述yang模块同步请求是所述网络管理设备在确定所述网络管理设备存储的目标版本的yang模块集合不是最新版本的情况下发送的;
34、向所述网络管理设备发送所述历史链,以使得所述网络管理设备在根据所述历史链,确定目标yang模块,并向所述网络设备发送获取所述目标yang模块的增量请求,其中,所述目标yang模块为:所述历史链中从所述目标版本对应的节点至所述最新版本对应的节点中记录的发生更新的yang模块;
35、接收所述增量请求,并根据所述增量请求向所述网络管理设备发送所述目标yang模块,以使得所述网络管理设备基于所述目标yang模块更新所存储的yang模块集合。
36、本技术的一个实施例中,所述根据所存储的yang模块集合的更新情况,构建历史链,具体包括:
37、在当前所存储的yang模块集合为初始版本的情况下,构建历史链中对应初始版本yang模块集合的节点;
38、在当前所存储的yang模块集合不是初始版本的情况下,构建对应当前所存储版本的yang模块的节点,并将新构建的节点链接于所述历史链的首部。
39、本技术的一个实施例中,所述历史链中的节点中记录有该节点对应的yang模块集合的版本标识、生成时刻,除对应初始版本的节点外的其他节点中还记录有:所对应版本的yang模块集合中相较于上一版本发生更新的yang模块的模块标识以及更新类型,所述更新类型为修改、新增或删除。
40、第四方面,本技术实施例提供了一种网络管理设备,所述网络管理设备包括:
41、处理器;
42、收发器;
43、机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述机器可执行指令促使所述处理器执行以下步骤:
44、判断所述网络管理设备中当前存储的目标版本的yang模块集合与网络设备中当前存储的最新版本的yang模块集合是否为同一版本;
45、若不是,则向所述网络管理设备发送yang模块同步请求;
46、接收所述网络设备响应于所述yang模块同步请求发送的历史链,其中,所述历史链是所述网络设备根据所存储的yang模块集合的更新情况构建的,所述历史链中的节点顺次对应不同的yang模块集合,所述yang模块集合按照版本顺序排列,除对应初始版本的节点外,其他节点中记录有所对应版本的yang模块集合中相较于上一版本发生更新的yang模块;
47、根据所述历史链,确定目标yang模块,其中,所述目标yang模块为:所述历史链中从所述目标版本对应的节点至所述最新版本对应的节点中记录的发生更新的yang模块;
48、向所述网络设备发送获取所述目标yang模块的增量请求;
49、接收所述网络设备响应于所述增量请求反馈的目标yang模块,基于所述目标yang模块更新所存储的yang模块集合。
50、本技术的一个实施例中,所述机器可执行指令还促使所述处理器执行以下步骤:
51、若所述网络管理设备中当前未存储yang模块或所述历史链中不包含对应目标版本的yang模块集合的节点,则向所述网络设备发送全量同步请求,以使得所述网络设备向所述网络管理设备反馈当前存储的最新版本的yang模块集合中的所有yang模块的元数据;
52、根据所述元数据确定需要获取的yang模块;
53、针对需要获取的yang模块,向网络设备发送获取请求,以使得所述网络设备反馈所述获取请求针对的yang模块;
54、基于所接收的yang模块更新自身存储的yang模块集合。
55、本技术的一个实施例中,所述判断所述网络管理设备中当前存储的目标版本的yang模块集合与网络设备中当前存储的最新版本的yang模块集合是否为同一版本,具体包括:
56、接收网络设备推送的其当前存储的最新版本的yang模块集合的版本标识;
57、判断所接收的版本标识与所述网络管理设备中当前存储的目标版本的yang模块集合的版本标识是否相同;
58、若相同,则确定最新版本的yang模块集合与所述目标版本的yang模块集合为同一版本;
59、若不相同,则确定最新版本的yang模块集合与所述目标版本的yang模块集合不是同一版本。
60、第五方面,本技术实施例提供了一种另一种下一代数据建模语言yang模块增量同步装置,应用于网络设备,所述装置包括:
61、历史链构建模块,用于根据所存储的yang模块集合的更新情况,构建历史链,其中,所述历史链中的节点顺次对应按照版本顺序排列的不同的yang模块集合,除对应初始版本的节点外,其他节点中记录有所对应版本的yang模块集合中相较于上一版本发生更新的yang模块;
62、同步请求接收模块,用于接收网络管理设备发送的yang模块同步请求,所述yang模块同步请求是所述网络管理设备在确定所述网络管理设备存储的目标版本的yang模块集合不是最新版本的情况下发送的;
63、历史链发送模块,用于向所述网络管理设备发送所述历史链,以使得所述网络管理设备在根据所述历史链,确定目标yang模块,并向所述网络设备发送获取所述目标yang模块的增量请求,其中,所述目标yang模块为:所述历史链中从所述目标版本对应的节点至所述最新版本对应的节点中记录的发生更新的yang模块;
64、增量请求接收模块,用于接收所述增量请求,并根据所述增量请求向所述网络管理设备发送所述目标yang模块,以使得所述网络管理设备基于所述目标yang模块更新所存储的yang模块集合。
65、本技术的一个实施例中,所述历史链构建模块,具体用于:
66、在当前所存储的yang模块集合为初始版本的情况下,构建历史链中对应初始版本yang模块集合的节点;
67、在当前所存储的yang模块集合不是初始版本的情况下,构建对应当前所存储版本的yang模块的节点,并将新构建的节点链接于所述历史链的首部。
68、本技术的一个实施例中,所述历史链中的节点中记录有该节点对应的yang模块集合的版本标识、生成时刻,除对应初始版本的节点外的其他节点中还记录有:所对应版本的yang模块集合中相较于上一版本发生更新的yang模块的模块标识以及更新类型,所述更新类型为修改、新增或删除。
69、第六方面,本技术实施例提供了一种另一种下一代数据建模语言yang模块增量同步装置,应用于网络管理设备,所述装置包括:
70、版本判断模块,用于判断所述网络管理设备中当前存储的目标版本的yang模块集合与网络设备中当前存储的最新版本的yang模块集合是否为同一版本;
71、同步请求发送模块,用于若不是,则向所述网络管理设备发送yang模块同步请求;
72、历史链接收模块,用于接收所述网络设备响应于所述yang模块同步请求发送的历史链,其中,所述历史链是所述网络设备根据所存储的yang模块集合的更新情况构建的,所述历史链中的节点顺次对应不同的yang模块集合,所述yang模块集合按照版本顺序排列,除对应初始版本的节点外,其他节点中记录有所对应版本的yang模块集合中相较于上一版本发生更新的yang模块;
73、目标模块确定模块,用于根据所述历史链,确定目标yang模块,其中,所述目标yang模块为:所述历史链中从所述目标版本对应的节点至所述最新版本对应的节点中记录的发生更新的yang模块;
74、增量请求发送模块,用于向所述网络设备发送获取所述目标yang模块的增量请求;
75、第一集合更新模块,用于接收所述网络设备响应于所述增量请求反馈的目标yang模块,基于所述目标yang模块更新所存储的yang模块集合。
76、本技术的一个实施例中,所述装置还包括:
77、全量请求发送模块,用于若所述网络管理设备中当前未存储yang模块或所述历史链中不包含对应目标版本的yang模块集合的节点,则向所述网络设备发送全量同步请求,以使得所述网络设备向所述网络管理设备反馈当前存储的最新版本的yang模块集合中的所有yang模块的元数据;
78、模块获取模块,用于根据所述元数据确定需要获取的yang模块;
79、获取请求发送模块,用于针对需要获取的yang模块,向网络设备发送获取请求,以使得所述网络设备反馈所述获取请求针对的yang模块;
80、第二集合更新模块,用于基于所接收的yang模块更新自身存储的yang模块集合。
81、本技术的一个实施例中,所述版本判断模块,具体用于:
82、接收网络设备推送的其当前存储的最新版本的yang模块集合的版本标识;
83、判断所接收的版本标识与所述网络管理设备中当前存储的目标版本的yang模块集合的版本标识是否相同;
84、若相同,则确定最新版本的yang模块集合与所述目标版本的yang模块集合为同一版本;
85、若不相同,则确定最新版本的yang模块集合与所述目标版本的yang模块集合不是同一版本。
86、第七方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面任一所述的方法步骤。
87、第八方面,本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面任一所述的方法。
88、本技术实施例有益效果:
89、本技术实施例提供的方案中,网络设备中构建了历史链,其中记录了网络设备中yang模块集合中每次更新的yang模块,因此网络设备向网络管理设备发送历史链之后,网络管理设备能够根据历史链确定从网络管理设备所存储的目标版本的yang模块集合到最新版本的yang模块集合发生更新的目标yang模块。因此网络管理设备和网络设备之间仅需要传输记录发生变化的yang模块的历史链,而无需全量获取最新版本的yang模块集合的元数据,从而降低yang模块同步时需要传输的数据量,提高yang模块同步的数据传输效率,节省计算资源,降低同步延迟。
90、当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。