配置更新的方法、装置、系统及计算机可读存储介质与流程



1.本技术实施例涉及通信技术领域,特别涉及一种配置更新的方法、装置、系统及计算机可读存储介质。


背景技术:



2.网络配置协议(network configuration protocol,netconf)是一种用于管理网络设备的机制,管理人员可以通过客户端使用这套机制对网络设备进行配置管理。其中,配置管理包括配置更新,配置更新如增加、修改、删除网络设备的配置数据等。
3.在相关技术中,在分布式管理网络设备的场景中,多个客户端可以对同一个网络设备进行配置更新。在netconf中定义有上锁操作和解锁操作。任一个客户端与某网络设备之间建立会话之后,在对该网络设备进行配置更新的过程中,首先要通过上锁操作对该网络设备中需要更新的数据集进行上锁,在锁定该数据集的状态下对该网络设备进行配置更新。在配置更新之后,该客户端通过解锁操作来解除对该数据集的锁定,或者该客户端通过关闭该会话来解除锁定,以便其他客户端对该网络设备进行配置更新。
4.然而,相关技术中客户端需要在锁定数据集的状态下对网络设备进行配置更新,这样,当该网络设备中的该数据集被一个客户端锁定时,其他客户端便不能再基于该数据集对该网络设备进行配置更新。可见这种方案的并发控制的效率较低,会对其他客户端产生一定的影响。且在其他客户端急需基于该数据集对该网络设备进行一些重要配置更新的情况下,其他客户端只能强制关闭该客户端与该网络设备之间的会话,强制中断会话可能会对该客户端造成影响。


技术实现要素:



5.本技术实施例提供了一种配置更新的方法、装置、系统及计算机可读存储介质,通过网络设备检测到客户端与网络设备分别记录的该数据对象版本信息一致的情况下,网络设备对该数据对象进行配置更新的方法,能够减少配置更新冲突,提高并发控制的效率。所述技术方案如下:
6.第一方面,提供了一种配置更新的方法,该方法包括:
7.网络设备接收第一客户端发送的网络配置协议netconf配置请求报文,netconf配置请求报文包括操作指示信息,该操作指示信息指示第一客户端请求网络设备对第一数据对象所执行的操作,该操作指示信息包括第一版本信息,第一版本信息为第一客户端记录的第一数据对象的版本信息,第一数据对象包括网络设备的配置数据;在网络设备检测第一版本信息与第一参考版本信息一致的情况下,网络设备对第一数据对象执行操作。其中,第一参考版本信息为网络设备记录的第一数据对象的版本信息。
8.也即是,某个客户端在对网络设备进行配置更新时,该客户端可以在不锁定该数据对象的情况下向网络设备发送netconf配置请求报文,在网络设备检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,网络设备对该数据对象进行配置更
新。这样,该客户端无需对需要配置更新的数据对象进行上锁,提高了并发控制的效率,减少了多个客户端之间的配置冲突,也即对其他客户端的影响较小。
9.可选地,第一客户端在发送netconf配置请求报文之前可以检测版本信息的一致性,也可以不检测版本信息的一致性。在第一客户端检测版本信息的一致性的情况下,netconf配置请求报文为第一客户端检测第一版本信息与第一参考版本信息一致的情况下发送的。也即是,第一客户端和网络设备均也可以检测版本信息的一致性,以充分减少配置冲突。在第一客户端检测版本信息不一致的情况下,第一客户端可以不发送配置请求报文,从而第一客户端的无效请求。
10.可选地,该方法还包括:网络设备接收第一客户端发送的查询报文,该查询报文包括第一数据对象的标识;网络设备向第一客户端发送查询响应报文,该查询响应报文包括网络设备记录的第一数据对象的版本信息。也即是,第一客户端可以通过即时查询的方式获取网络设备记录的第一数据对象的版本信息。需要说明的是,第一客户端可以随时向网络设备发送查询报文以查询某数据对象的版本信息。例如,第一客户端可以在需要检测版本信息一致性时向网络设备发送查询报文,也即在网络设备接收第一客户端发送的netconf配置请求报文之前,网络设备接收第一客户端发送的查询报文。或者,第一客户端可以在发送netconf配置请求报文一段时间之后,向网络设备发送查询报文,如网络设备在对第一数据对象执行操作之后接收第一客户端发送的查询报文,以将第一数据对象最新的版本信息告知给第一客户端,用于第一客户端对网络设备是否对第一数据对象成功执行操作进行验证。或者,第一客户端可以在其他任一时间向网络设备发送查询报文以查询某数据对象的版本信息。
11.可选地,该方法还包括:网络设备向第一客户端发送数据变更通知报文,该数据变更通知报文包括网络设备记录的第一数据对象的版本信息,该数据变更通知报文为网络设备在第一客户端订阅关于第一数据对象中数据的变更通知的情况下发送的。也即是,第一客户端可以通过订阅的方式获取网络设备记录的第一数据对象的版本信息,也即获取网络设备记录的最新的版本信息。例如,网络设备基于其他客户端的请求修改了第一数据对象中的数据,即第一数据对象中的数据发生了变更,那么网络设备向第一客户端发送一个数据变更通知报文,该数据变更通知报文包括网络设备记录的第一数据对象最新的版本信息。
12.需要说明的是,上述第一客户端获取网络设备记录的第一数据对象的版本信息的两种实现方式(包括即时查询和订阅的方式)可以单独使用,也可以结合使用,本技术实施例对此不作限定。
13.可选地,在申请实施例中,版本信息包括版本号、时间戳或序列号。例如,版本信息包括时间戳,第一参考版本信息是网络设备记录的网络设备完成对第一数据对象执行操作的系统时间,或,第一参考版本信息是网络设备记录的网络设备开始对第一数据对象执行操作的系统时间。
14.在本技术实施例中,存在一些操作是关于两个数据对象的操作,例如复制操作,可选地,为了保证这两个数据对象中的配置数据与第一客户端所维护的一致,网络设备需要分别检测这两个数据对象的版本信息的一致性。以复制操作为例,可选地,第一客户端请求网络设备对第一数据对象执行的操作包括复制操作,该操作指示信息还包括第五版本信
息,第五版本信息为第一客户端记录的第五数据对象的版本信息,第五数据对象包括网络设备的配置数据,复制操作用于用第五数据对象中的配置数据覆盖第一数据对象中的配置数据;那么,在网络设备检测第一版本信息与第一参考版本信息一致的情况下,网络设备对第一数据对象执行操作,包括:在网络设备检测第一版本信息与第一参考版本信息一致且第五版本信息与第五参考版本信息一致的情况下,网络设备对第一数据对象执行操作,第五参考版本信息为网络设备记录的第五数据对象的版本信息。
15.可选地,该方法还包括:网络设备完成对第一数据对象执行操作;网络设备记录第一参考版本信息。
16.可选地,网络设备记录第一参考版本信息,包括:在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度的情况下,网络设备更新并记录第一参考版本信息。也即是,若第一数据对象本身具有版本信息,则在第一数据对象发生数据变更之后,网络设备需要更新第一数据对象的版本信息,以通过版本信息记录第一数据对象的变更情况。
17.可选地,该操作指示信息还包括第二数据对象的标识,第一数据对象为第二数据对象的子数据对象,第二参考版本信息为网络设备记录的第二数据对象的版本信息,网络设备记录第一参考版本信息,包括:在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,且第二参考版本信息对应的第二数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度的情况下,网络设备更新并记录第一参考版本信息和第二参考版本信息。也即是,若第一数据对象本身具有版本信息,且第一数据对象的父数据对象(即第二数据对象)也具有版本信息,则在第一数据对象发生数据变更之后,导致第二数据对象也发生了变更,那么网络设备不仅需要更新第一数据对象的版本信息,还需要更新第二数据对象的版本信息。
18.可选地,该操作指示信息还包括第三数据对象的标识,第一数据对象为第三数据对象的子数据对象,第三参考版本信息为网络设备记录的第三数据对象的版本信息,网络设备设置的访问控制功能支持反选机制,网络设备记录第一参考版本信息,包括:在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,第三参考版本信息对应的第三数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,且网络设备设置的访问控制功能的反选机制参数不包括第一数据对象的标识的情况下,网络设备更新并记录第一参考版本信息和第三参考版本信息;在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,第三参考版本信息对应的第三数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,且网络设备设置的访问控制功能的反选机制参数包括第一数据对象的标识的情况下,网络设备更新并记录第一参考版本信息。也即是,网络设备设置的访问控制功能支持反选机制,反选机制用于将子数据对象从父数据对象中反选出去,以使子数据对象的数据变更不影响父数据对象的版本信息。
19.由上述介绍可知,本技术实施例通过访问控制机制来实现多用户并发访问控制,从而减少配置冲突。也即是,本方案通过访问控制功能来为数据对象设置版本信息这个属性,进而通过检测版本信息的一致性来对网络设备进行配置更新。可选地,在通过检测版本信息的一致性来对网络设备进行配置更新之前,客户端可以请求网络设备为数据对象设置
访问控制功能,接下来将对此进行介绍。
20.可选地,该方法还包括:网络设备接收第一客户端发送的设置访问控制功能请求报文,该设置访问控制功能请求报文包括第一数据对象的标识;如果网络设备基于第一数据对象的标识确定第一数据对象满足设置访问控制功能条件,则网络设备基于第一数据对象的标识,为第一数据对象设置版本信息初始值;网络设备向第一客户端发送设置成功响应报文,该设置成功响应报文指示第一客户端记录第一数据对象的版本信息。
21.可选地,设置成功响应报文包括版本信息初始值;或者,设置成功响应报文指示第一客户端为第一数据对象设置版本信息初始值。也即是,网络设备将设置的版本信息初始值通过设置成功响应报文告知给第一客户端,或者,第一客户端在接收到设置成功响应报文后自动为第一数据对象设置版本信息初始值。
22.可选地,设置访问控制功能条件包括:网络设备支持设置访问控制功能,且第一数据对象还不存在版本信息。也即是,在网络设备支持通过客户端设置访问控制功能,且第一数据对象还未设置访问控制功能的情况下,网络设备能够成功为第一数据对象设置访问控制功能。
23.可选地,设置访问控制功能条件还包括:第一数据对象的数据粒度满足网络设备支持的设置访问控制功能的数据粒度。也即是,网络设备支持设置访问控制功能的数据粒度可能包括或者不包括第一数据对象的数据粒度,在网络设备支持通过客户端设置访问控制功能,第一数据对象还未设置访问控制功能,且网络设备支持的设置访问控制功能的数据粒度包括第一数据对象的数据粒度的情况下,网络设备能够成功为第一数据对象设置访问控制功能。
24.可选地,设置访问控制功能请求报文还包括反选机制参数,反选机制参数包括一个或多个第四数据对象的标识,第四数据对象为第一数据对象的子数据对象。也即是,在第一客户端为第一数据对象设置访问控制功能的同时,还能够设置反选机制参数,以将第一数据对象的某些子数据对象(即第四数据对象)从第一数据对象中反选出去,使得第四数据对象的数据变更不影响第一数据对象的版本信息。
25.可选地,该方法还包括:网络设备接收第一客户端发送的删除设置访问控制功能请求报文,该删除设置访问控制功能请求报文包括第一数据对象的标识;如果网络设备基于第一数据对象的标识确定第一数据对象满足设置访问控制功能删除条件,则网络设备基于第一数据对象的标识,删除第一数据对象的版本信息。
26.可选地,设置访问控制功能删除条件包括:网络设备支持设置访问控制功能,且网络设备记录有第一数据对象的版本信息。也即是,在网络设备支持通过客户端设置访问控制功能,且第一数据对象已被设置访问控制功能的情况下,网络设备能够成功删除第一数据对象的版本信息,也即解除对第一数据对象的访问控制保护。
27.可选地,该方法还包括:网络设备向第一客户端发送能力通知报文,该能力通知报文包括访问控制功能的支持能力参数,该支持能力参数用于指示网络设备是否支持设置访问控制功能。
28.可选地,该能力通知报文还包括访问控制功能的支持粒度参数,该支持粒度参数用于指示网络设备支持设置访问控制功能的数据粒度,数据粒度包括数据集粒度、yang模块粒度和数据节点粒度中的一个或多个。也即是,网络设备还能够告知客户端关于访问控
制功能的支持能力以及支持粒度,从而使客户端精准地向网络设备发送关于设置或删除访问控制功能的请求报文。
29.第二方面,提供了一种配置更新的方法,该方法包括:
30.第一客户端向网络设备发送网络配置协议netconf配置请求报文,netconf配置请求报文包括操作指示信息,该操作指示信息指示第一客户端请求网络设备对第一数据对象所执行的操作,该操作指示信息包括第一版本信息,第一版本信息为第一客户端记录的第一数据对象的版本信息,第一数据对象包括网络设备的配置数据;该配置请求报文用于在网络设备检测第一版本信息与第一参考版本信息一致的情况下指示网络设备对第一数据对象执行操作,第一参考版本信息为网络设备记录的第一数据对象的版本信息。
31.也即是,某个客户端在对网络设备进行配置更新时,该客户端可以在不锁定该数据对象的情况下向网络设备发送netconf配置请求报文,在网络设备检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,网络设备对该数据对象进行配置更新。这样,该客户端无需对需要配置更新的数据对象进行上锁,提高了并发控制的效率,减少了多个客户端之间的配置冲突,也即对其他客户端的影响较小。
32.可选地,第一客户端在发送netconf配置请求报文之前可以检测版本信息的一致性,也可以不检测版本信息的一致性。在第一客户端检测版本信息的一致性的情况下,netconf配置请求报文为第一客户端检测第一版本信息与第一参考版本信息一致的情况下发送的。也即是,第一客户端和网络设备均也可以检测版本信息的一致性,以充分减少配置冲突。在第一客户端检测版本信息不一致的情况下,第一客户端可以不发送配置请求报文,从而第一客户端的无效请求。可选地,第一客户端通过即时查询或订阅的方式获取网络设备记录的第一数据对象的版本信息,实现方式与上述第一方面中的相关过程一致,这里不再赘述。
33.可选地,第一客户端向网络设备发送网络配置协议netconf配置请求报文之后,还包括:第一客户端接收网络设备发送的配置成功响应报文;第一客户端更新第一版本信息。也即是,第一客户端还能够在获知网络设备对第一数据对象成功执行操作后更新第一版本信息,以记录第一数据对象的变更情况。
34.可选地,配置成功响应报文包括更新后的第一参考版本信息;第一客户端更新第一版本信息,包括:第一客户端将第一版本信息更新为更新后的第一参考版本信息。也即是,网络设备直接将更新后的第一参考版本信息通过配置成功响应报文通知给第一客户端,第一客户端直接将第一版本信息更新为更新后的第一参考版本信息即可。
35.需要说明的是,上述第二方面中的配置更新方法与上述第一方面中的配置更新方法一致,在上述第二方面中仅介绍了与上述第一方面对应的部分内容,在上述第二方面中未介绍的内容请参照上述第一方面,在上述第二方面中不一一赘述。
36.第三方面,提供了一种配置更新的方法,该方法包括:
37.在第一客户端检测第一版本信息与第一参考版本信息一致的情况下,第一客户端向网络设备发送网络配置协议netconf配置请求报文;其中,第一版本信息为第一客户端记录的第一数据对象的版本信息,第一参考版本信息为网络设备记录的第一数据对象的版本信息,netconf配置请求报文携带操作指示信息,操作指示信息指示第一客户端请求网络设备对第一数据对象所执行的操作。
38.也即是,在本技术实施例中,某个客户端在对网络设备进行配置更新时,该客户端可以在不锁定该数据对象,且检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,向网络设备发送netconf配置请求报文。这样,该客户端无需对需要配置更新的数据对象进行上锁,提高了并发控制的效率,减少了多个客户端之间的配置冲突,也即对其他客户端的影响较小。
39.可选地,该方法还包括:第一客户端向网络设备发送查询报文,该查询报文携带第一数据对象的标识;第一客户端接收网络设备发送的查询响应报文,查询响应报文携带网络设备记录的第一数据对象的版本信息。也即是,第一客户端可以通过即时查询的方式获取网络设备记录的第一数据对象的版本信息。
40.可选地,该方法还包括:第一客户端接收网络设备发送的数据变更通知报文,数据变更通知报文携带网络设备记录的第一数据对象的版本信息,该数据变更通知报文为第一客户端订阅关于第一数据对象中数据的变更通知的情况下接收的。也即是,第一客户端可以通过订阅的方式获取网络设备记录的第一数据对象的版本信息。
41.需要说明的是,在上述第一方面和第二方面中,通过网络设备检测版本信息的一致性,或者通过客户端和网络设备检测版本信息的一致性,从而减少配置冲突,提高并发控制的效率。而在上述第三方面中,通过客户端检测版本信息的一致性,从而减少配置冲突,提高并发控制的效率。也即,上述第三方面与第一方面、第二方面的区别在于,检测版本信息一致性的执行主体不同,而在上述第一方面和第二方面中介绍的其他内容在上述第三方面中同样适用,本技术实施例在上述第三方面中不一一赘述。
42.第四方面,提供了一种配置更新的装置,所述配置更新的装置具有实现上述第一方面中配置更新的方法行为的功能。所述配置更新的装置包括一个或多个模块,该一个或多个模块用于实现上述第一方面所提供的配置更新的方法。
43.也即是,提供了一种配置更新的装置,该装置用于网络设备,该装置包括:
44.第一接收模块,用于接收第一客户端发送的网络配置协议netconf配置请求报文,netconf配置请求报文包括操作指示信息,该操作指示信息指示第一客户端请求网络设备对第一数据对象所执行的操作,该操作指示信息包括第一版本信息,第一版本信息为第一客户端记录的第一数据对象的版本信息,第一数据对象包括网络设备的配置数据;
45.配置更新模块,用于在网络设备检测第一版本信息与第一参考版本信息一致的情况下,对第一数据对象执行操作,第一参考版本信息为网络设备记录的第一数据对象的版本信息。
46.可选地,netconf配置请求报文为第一客户端检测第一版本信息与第一参考版本信息一致的情况下发送的。
47.可选地,该装置还包括:
48.第二接收模块,用于接收第一客户端发送的查询报文,该查询报文包括第一数据对象的标识;
49.第一发送模块,用于向第一客户端发送查询响应报文,该查询响应报文包括网络设备记录的第一数据对象的版本信息。
50.可选地,该装置还包括:
51.第二发送模块,用于向第一客户端发送数据变更通知报文,该数据变更通知报文
包括网络设备记录的第一数据对象的版本信息,该数据变更通知报文为网络设备在第一客户端订阅关于第一数据对象中数据的变更通知的情况下发送的。
52.可选地,版本信息包括时间戳,第一参考版本信息是网络设备记录的网络设备完成对第一数据对象执行操作的系统时间,或,第一参考版本信息是网络设备记录的网络设备开始对第一数据对象执行操作的系统时间。
53.可选地,该装置还包括:
54.处理模块,用于完成对第一数据对象执行该操作;
55.记录模块,用于记录第一参考版本信息。
56.可选地,记录模块包括:
57.第一记录子模块,用于在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度的情况下,更新并记录第一参考版本信息。
58.可选地,该操作指示信息还包括第二数据对象的标识,第一数据对象为第二数据对象的子数据对象,第二参考版本信息为网络设备记录的第二数据对象的版本信息;
59.记录模块包括:
60.第二记录子模块,用于在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,且第二参考版本信息对应的第二数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度的情况下,更新并记录第一参考版本信息和第二参考版本信息。
61.可选地,该操作指示信息还包括第三数据对象的标识,第一数据对象为第三数据对象的子数据对象,第三参考版本信息为网络设备记录的第三数据对象的版本信息,网络设备设置的访问控制功能支持反选机制;
62.记录模块包括:
63.第三记录子模块,用于在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,第三参考版本信息对应的第三数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,且网络设备设置的访问控制功能的反选机制参数不包括第一数据对象的标识的情况下,更新并记录第一参考版本信息和第三参考版本信息;
64.第四记录子模块,用于在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,第三参考版本信息对应的第三数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,且网络设备设置的访问控制功能的反选机制参数包括第一数据对象的标识的情况下,更新并记录第一参考版本信息。
65.可选地,该装置还包括:
66.第三接收模块,用于接收第一客户端发送的设置访问控制功能请求报文,该设置访问控制功能请求报文包括第一数据对象的标识;
67.设置模块,用于如果网络设备基于第一数据对象的标识确定第一数据对象满足设置访问控制功能条件,则基于第一数据对象的标识,为第一数据对象设置版本信息初始值;
68.第三发送模块,用于向第一客户端发送设置成功响应报文,该设置成功响应报文指示第一客户端记录第一数据对象的版本信息。
69.可选地,该设置成功响应报文包括版本信息初始值;或者,该设置成功响应报文指
示第一客户端为第一数据对象设置版本信息初始值。
70.可选地,设置访问控制功能条件包括:网络设备支持设置访问控制功能,且第一数据对象还不存在版本信息。
71.可选地,设置访问控制功能条件还包括:第一数据对象的数据粒度满足网络设备支持的设置访问控制功能的数据粒度。
72.可选地,该设置访问控制功能请求报文还包括反选机制参数,反选机制参数包括一个或多个第四数据对象的标识,第四数据对象为第一数据对象的子数据对象。
73.可选地,该装置还包括:
74.第四接收模块,用于接收第一客户端发送的删除设置访问控制功能请求报文,该删除设置访问控制功能请求报文包括第一数据对象的标识;
75.删除模块,用于如果网络设备基于第一数据对象的标识确定第一数据对象满足设置访问控制功能删除条件,则基于第一数据对象的标识,删除第一数据对象的版本信息。
76.可选地,设置访问控制功能删除条件包括:网络设备支持设置访问控制功能,且网络设备记录有第一数据对象的版本信息。
77.可选地,该装置还包括:
78.第四发送模块,用于向第一客户端发送能力通知报文,该能力通知报文包括访问控制功能的支持能力参数,该支持能力参数用于指示网络设备是否支持设置访问控制功能。
79.可选地,该能力通知报文还包括访问控制功能的支持粒度参数,支持粒度参数用于指示网络设备支持设置访问控制功能的数据粒度,数据粒度包括数据集粒度、yang模块粒度和数据节点粒度中的一个或多个。
80.可选地,该操作包括复制操作,该操作指示信息还包括第五版本信息,第五版本信息为第一客户端记录的第五数据对象的版本信息,第五数据对象包括网络设备的配置数据,复制操作用于用第五数据对象中的配置数据覆盖第一数据对象中的配置数据;
81.配置更新模块包括:
82.配置更新子模块,用于在网络设备检测第一版本信息与第一参考版本信息一致且第五版本信息与第五参考版本信息一致的情况下,对第一数据对象执行操作,第五参考版本信息为网络设备记录的第五数据对象的版本信息。
83.第五方面,提供了一种配置更新的装置,所述配置更新的装置具有实现上述第二方面中配置更新的方法行为的功能。所述配置更新的装置包括一个或多个模块,该一个或多个模块用于实现上述第二方面所提供的配置更新的方法。
84.也即是,提供了一种配置更新的装置,该装置用于第一客户端,该装置包括:
85.第一发送模块,用于向网络设备发送网络配置协议netconf配置请求报文,netconf配置请求报文包括操作指示信息,该操作指示信息指示第一客户端请求网络设备对第一数据对象所执行的操作,该操作指示信息包括第一版本信息,第一版本信息为第一客户端记录的第一数据对象的版本信息,第一数据对象包括网络设备的配置数据;
86.其中,该配置请求报文用于在网络设备检测第一版本信息与第一参考版本信息一致的情况下指示网络设备对第一数据对象执行该操作,第一参考版本信息为网络设备记录的第一数据对象的版本信息。
87.可选地,该装置还包括:
88.接收模块,用于接收网络设备发送的配置成功响应报文;
89.更新模块,用于更新第一版本信息。
90.可选地,该配置成功响应报文包括更新后的第一参考版本信息;
91.更新模块包括:
92.更新子模块,用于将第一版本信息更新为该更新后的第一参考版本信息。
93.第六方面,提供了一种配置更新的装置,所述配置更新的装置具有实现上述第三方面中配置更新的方法行为的功能。所述配置更新的装置包括一个或多个模块,该一个或多个模块用于实现上述第三方面所提供的配置更新的方法。
94.也即是,提供了一种配置更新的装置,该装置用于第一客户端,该装置包括:
95.第一发送模块,用于在第一客户端检测第一版本信息与第一参考版本信息一致的情况下,向网络设备发送网络配置协议netconf配置请求报文;
96.其中,第一版本信息为第一客户端记录的第一数据对象的版本信息,第一参考版本信息为网络设备记录的第一数据对象的版本信息,netconf配置请求报文包括操作指示信息,该操作指示信息指示第一客户端请求网络设备对第一数据对象所执行的操作。
97.可选地,该装置还包括:
98.第二发送模块,用于向网络设备发送查询报文,该查询报文包括第一数据对象的标识;
99.第一接收模块,用于接收网络设备发送的查询响应报文,该查询响应报文包括网络设备记录的第一数据对象的版本信息。
100.可选地,该装置还包括:
101.第二接收模块,用于接收网络设备发送的数据变更通知报文,该数据变更通知报文包括网络设备记录的第一数据对象的版本信息,该数据变更通知报文为第一客户端订阅关于第一数据对象中数据的变更通知的情况下接收的。
102.第七方面,提供了一种通信设备,所述通信设备包括处理器和存储器,所述存储器用于存储执行上述第一方面、第二方面或第三方面所提供的配置更新的方法的程序,以及存储用于实现上述第一方面、第二方面或第三方面所提供的配置更新的方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述存储设备的操作装置还可以包括通信总线,该通信总线用于该处理器与存储器之间建立连接。
103.第八方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面、第二方面或第三方面所述的配置更新的方法。
104.第九方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面、第二方面或第三方面所述的配置更新的方法。
105.上述第四方面、第五方面、第六方面、第七方面、第八方面和第九方面所获得的技术效果与第一方面、第二方面或第三方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
106.本技术实施例提供的技术方案至少能够带来以下有益效果:
107.在本技术实施例中,某个客户端在对网络设备进行配置更新时,该客户端可以在
不锁定该数据对象的情况下向网络设备发送netconf配置请求报文,在网络设备检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,网络设备对该数据对象进行配置更新。或者,客户端在检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,向网络设备发送netconf配置请求报文。这样,该客户端无需对需要配置更新的数据对象进行上锁,提高了并发控制的效率,减少了多个客户端之间的配置冲突,也即对其他客户端的影响较小。
附图说明
108.图1是本技术实施例提供的一种配置更新的方法所涉及的系统架构图;
109.图2是本技术实施例提供的一种通信设备的结构示意图;
110.图3是本技术实施例提供的一种配置更新的方法的流程图;
111.图4是本技术实施例提供的另一种配置更新的方法的流程图;
112.图5是本技术实施例提供的又一种配置更新的方法的流程图;
113.图6是本技术实施例提供的又一种配置更新的方法的流程图;
114.图7是本技术实施例提供的一种配置更新的装置的结构示意图;
115.图8是本技术实施例提供的另一种配置更新的装置的结构示意图;
116.图9是本技术实施例提供的又一种配置更新的装置的结构示意图。
具体实施方式
117.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
118.为了便于理解,先对本技术实施例中所涉及的部分名词和术语进行解释。
119.网络配置协议(netconf):是一种用于管理网络设备的机制,管理人员可以通过客户端使用这套机制对网络设备进行配置管理。其中,配置管理包括配置更新,配置更新包括增加、修改、删除网络设备的配置数据等。管理人员还可以通过客户端获取网络设备的配置数据和状态信息(状态数据)等。netconf是基于可扩展标记语言xml(extensible markup language)的网络配置和管理协议,基于rpc(remote procedure call)机制实现客户端和网络设备之间通信。在请求意见稿(request for comments,rfc)6241、rfc8526中定义有网络配置协议(netconf)。
120.数据集(datastore):netconf协议允许定义多个数据集(也称为配置数据集、数据库、配置数据库等),用于存储网络设备的配置数据、状态信息等。例如,运行(running)数据集、候选(candidate)数据集、启动(startup)数据集等。其中,running数据集用于存储网络设备在运行过程中生效的配置数据。candidate数据集用于存储为网络设备配置的但未生效的配置数据,也即存储管理人员编辑的配置数据,但还未提交正式生效,将candidate数据集提交到running数据集之后即正式生效。startup数据集存储网络设备下一次启动时使用的配置数据。
121.yang(yet another next generation):最初被设计用来作为netconf的数据建模语言。
122.yang模型:使用yang数据建模语言建立的数据模型被称为是yang模型。yang模型
可以由netconf客户端和网络设备进行维护。yang模型以数据节点的形式表达网络设备的配置数据和状态数据。yang模型定义可用于基于netconf的操作的数据层次结构。使用yang模型实例化后的数据可以以xml或json的编码格式存储。
123.yang模块(yang module):一个数据集可包含一个或多个yang module,即,一个数据集中可存储多个yang module中的配置数据、状态信息等。
124.数据节点(node):一个yang module可包含一个或多个数据节点,多个数据节点之间以树结构组织。即,一个yang module中可存储一个或多个数据节点中的配置数据、状态信息等。
125.接下来对本技术实施例所涉及的系统架构进行介绍。需要说明的是,本技术实施例描述的网络架构以及业务场景是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
126.图1是本技术实施例提供的一种配置更新的方法所涉及的系统架构图。该系统可以称为网络管理系统(network management system,nms)、netconf系统等。参见图1,该系统包括多个客户端和网络设备101。在图1中以该多个客户端包括第一客户端102和第二客户端103进行示意性说明。该多个客户端中的各个客户端均与网络设备101通过有线或无线方式连接以进行通信。如图1所示,各个客户端与网络设备101之间可以通过网际协议(internet protocol,ip)网络进行通信。
127.该多个客户端用于通过netconf协议对网络设备101进行配置更新。例如,以该多个客户端中的第一客户端102为例,第一客户端102根据本技术实施例提供的配置更新方法向网络设备101发送netconf配置请求报文,以请求对网络设备101进行配置更新。其中,netconf配置请求报文可以简称为配置请求报文,在接下来的实施例中将按照该简称进行介绍。
128.网络设备101用于通过netconf协议对自身的配置数据进行更新。例如,网络设备101接收第一客户端102发送的配置请求报文,根据本技术实施例提供的配置更新方法对自身的配置数据进行更新。
129.可选地,该系统包括多个网络设备,每个网络设备能够与至少一个客户端建立通信连接,以通过所连接的客户端进行配置更新,任一个客户端也能够对至少一个网络设备进行配置更新。在本技术实施例中,以对一个网络设备的配置更新为例进行介绍,对其他网络设备进行配置更新的原理是类似的。
130.由上述可知,该系统采用的是客户端(client)/服务端(server)架构。其中,客户端也可以被称为网管设备、管理设备、控制器等。服务端即为网络设备。
131.在本技术实施例中,客户端可以是被安装和部署在任一种计算机设备上,例如服务器、台式电脑、笔记本电脑、手机等,还可以被安装和部署在云平台的计算和存储资源上。网络设备可以是路由器、交换机、网关、防火墙等设备。可选地,客户端可以通过运行应用程序、网页等来对网络设备进行配置更新,例如,管理人员(也称为网络运维人员、网管等)通过客户端上运行的应用程序来编辑、提交、查询配置数据等等。
132.请参考图2,图2是根据本技术实施例示出的一种通信设备的结构示意图。可选地,该计算机设备为图1中所示的客户端或网络设备,该通信设备包括一个或多个处理器201、
通信总线202、存储器203以及一个或多个通信接口204。
133.处理器201为一个通用中央处理器(central processing unit,cpu)、网络处理器(network processing,np)、微处理器、或者为一个或多个用于实现本技术方案的集成电路,例如,专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。可选地,上述pld为复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。
134.通信总线202用于在上述组件之间传送信息。可选地,通信总线202分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
135.可选地,存储器203为只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、光盘(包括只读光盘(compact disc read-only memory,cd-rom)、压缩光盘、激光盘、数字通用光盘、蓝光光盘等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器203独立存在,并通过通信总线202与处理器201相连接,或者,存储器203与处理器201集成在一起。
136.通信接口204使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口204包括有线通信接口,可选地,还包括无线通信接口。其中,有线通信接口例如以太网接口等。可选地,以太网接口为光接口、电接口或其组合。无线通信接口为无线局域网(wireless local area networks,wlan)接口、蜂窝网络通信接口或其组合等。
137.可选地,在一些实施例中,通信设备包括多个处理器,如图2中所示的处理器201和处理器205。这些处理器中的每一个为一个单核处理器,或者一个多核处理器。可选地,这里的处理器指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
138.在具体实现中,作为一种实施例,通信设备还包括输出设备206和输入设备207。输出设备206和处理器201通信,能够以多种方式来显示信息。例如,输出设备206为液晶显示器(liquid crystal display,lcd)、发光二级管(light emitting diode,led)显示设备、阴极射线管(cathode ray tube,crt)显示设备或投影仪(projector)等。输入设备207和处理器201通信,能够以多种方式接收用户的输入。例如,输入设备207是鼠标、键盘、触摸屏设备或传感设备等。
139.在一些实施例中,存储器203用于存储执行本技术方案的程序代码210,处理器201能够执行存储器203中存储的程序代码210。该程序代码中包括一个或多个软件模块,该通信设备能够通过处理器201以及存储器203中的程序代码210,来实现下文图3至图6实施例提供的配置更新的方法。
140.接下来对本技术实施例提供的配置更新方法进行介绍。
141.在本技术实施例中,第一客户端对网络设备进行配置更新的过程中,无需对网络设备中需要更新的数据对象(如数据集、yang模块或数据节点)进行锁定,第一客户端与网络设备各自记录数据对象的版本信息,通过检测版本信息的一致性来确定进行配置更新还
是暂缓配置更新。在一种实现方式中,第一客户端向网络设备发送配置请求报文之后,网络设备通过检测版本信息的一致性来判断是否进行配置更新。在另一种实现方式中,第一客户端检测版本信息的一致性,在检测到版本信息一致后向网络设备发送配置请求报文,网络设备接收到配置请求报文后进行配置更新。在又一种实现方式中,第一客户端检测版本信息的一致性,在检测到版本信息一致后向网络设备发送配置请求报文,网络设备接收到配置请求报文后也检测版本信息的一致性,在检测到版本信息一致的情况下进行配置更新。
142.需要说明的是,在本技术实施例中,数据对象的版本信息实质上的一种乐观锁信息,也即本方案通过乐观锁机制实现多用户并发访问控制,从而减少配置冲突。乐观锁机制也可以称为并发访问控制机制,在本技术实施例中通过对数据对象设置访问控制功能(也可称为设置锁保护或设置访问控制保护或设置乐观锁)来为数据对象设置版本信息这个属性,进而通过检测版本信息的一致性来对网络设备进行配置更新。为了便于理解,在介绍通过检测版本信息的一致性来对网络设备进行配置更新之前,首先对为数据对象设置访问控制保护的实现方式进行介绍。需要说明的是,对某个数据对象设置访问控制保护实质上是对该数据对象设置乐观锁(也可以认为是设置锁保护),而能否对数据对象设置访问控制保护需要根据该网络设备是否支持设置访问控制功能(也可称为乐观锁功能)来确定。在本技术实施例中,网络设备支持设置访问控制功能,从而能够实现本技术实施例提供的配置更新方法。其中,对数据对象设置访问控制保护包括添加访问控制保护和删除访问控制保护,接下来分别介绍对数据对象添加访问控制保护和删除访问控制保护的实现方式。
143.首先介绍对数据对象添加访问控制保护的实现方式,以第一客户端请求网络设备对第一数据对象添加访问控制保护为例进行介绍。需要说明的是,除第一客户端之外的其他客户端均可以请求网络设备为一个或多个数据对象添加访问控制保护,原理与第一客户端请求网络设备对第一数据对象添加访问控制保护类似,本文不一一介绍。
144.在本技术实施例中,第一客户端向网络设备发送设置访问控制功能请求报文,网络设备接收第一客户端发送的设置访问控制功能请求报文。其中,设置访问控制功能请求报文也可称为添加访问控制保护请求报文、添加保护请求报文等,接下来以添加保护请求报文为例进行介绍。第一客户端发送的添加保护请求报文包括第一数据对象的标识。如果网络设备基于第一数据对象的标识确定第一数据对象满足设置访问控制功能条件,则该网络设备基于第一数据对象的标识,为第一数据对象设置版本信息初始值。网络设备向第一客户端发送设置成功响应报文,设置成功响应报文指示第一客户端记录第一数据对象的版本信息。其中,设置访问控制功能条件也可称为访问控制保护添加条件,或保护添加条件,设置成功响应报文也可称为添加成功响应报文,接下来以保护添加条件和添加成功响应报文为例进行介绍。
145.可选地,在本技术实施例中,版本信息包括版本号、时间戳或序列号。可选地,版本号是由字母、数字和符号等中的一种或多种组成的并具有解释性的一种命名格式,例如version1.2.0,该版本号就是由字母version,数字和符号组成的,命名格式为version主版本号.子版本号.次版本号。又如,版本号为1,该版本号就是由数字组成的。使用时间戳作为数据对象的版本信息就是使用网络设备或系统根据系统时间信息作为数据对象的版本标识。序列号是一组数字序列,上述数字序列可以随机生成也可以按照某种生成规则产生,例
如网络设备根据数据对象的操作完成时间信息通过哈希算法得到一个序列号作为上述数据对象的版本信息。示例性地,若版本信息为版本号,则该网络设备为第一数据对象设置的版本信息初始值可以为1或version1.0.0。若版本信息为时间戳,则该网络设备为第一数据对象设置的版本信息初始值可以为该网络设备为第一数据对象设置访问控制保护的系统时间。
146.可选地,添加成功响应报文包括网络设备为第一数据对象设置的版本信息初始值,这样,第一客户端将该添加成功响应报文包括的版本信息初始值记录为第一数据对象的版本信息。或者,添加成功响应报文指示第一客户端为第一数据对象设置版本信息初始值,这样,第一客户端在接收到添加成功响应报文之后,为第一数据对象设置版本信息初始值,将设置的版本信息初始值记录为第一数据对象的版本信息。
147.可选地,在本技术实施例中,保护添加条件包括:网络设备支持设置访问控制功能,且第一数据对象还不存在版本信息。也即是,在网络设备支持设置访问控制功能,且第一数据对象还未被添加访问控制保护的情况下,网络设备能够成功对第一数据对象添加访问控制保护。需要说明的是,网络设备支持设置访问控制功能可以认为是网络设备支持客户端为数据对象设置访问控制功能,也即网络设备支持客户端动态设置访问控制功能。可选地,若网络设备被默认配置为支持访问控制功能,但不支持客户端动态设置访问控制功能,则认为是网络设备不支持设置访问控制功能,或者说不支持动态设置访问控制功能。例如网络设备出厂默认配置已为数据对象设置访问控制功能,且不支持客户端添加或删除数据对象的访问控制功能。
148.由前述可知,存储网络设备的配置数据的数据对象可以为数据集、yang模块和数据节点,即,本技术实施例中一个数据对象的数据粒度可以为数据集粒度、yang模块粒度或数据节点粒度。基于此,可选地,网络设备设置访问控制功能时所支持的数据粒度可以包括数据集粒度、yang模块粒度和数据节点粒度中的一个或多个。也即,本方案中可以仅为数据集设置访问控制保护,或者,仅为yang模块设置访问控制保护,或者,仅为数据节点设备访问控制保护,或者,为数据集和yang模块设置访问控制保护,或者,为数据集和数据节点设置访问控制保护,或者,为yang模块和数据节点设备访问控制保护,或者,为数据集、yang模块和数据节点设置访问控制保护。
149.基于此,可选地,保护添加条件还包括:第一数据对象的数据粒度满足网络设备支持的设置访问控制功能的数据粒度。也即是,在网络设备支持设置访问控制功能,第一数据对象还未被添加访问控制保护,且第一数据对象的数据粒度符合条件的情况下,网络设备能够成功对第一数据对象添加访问控制保护。
150.需要说明的是,若该网络设备默认支持设置访问控制功能,且不限制支持设置访问控制功能的数据粒度,那么网络设备接收到第一客户端的添加保护请求报文之后,为第一客户端所请求的数据对象添加访问控制保护即可。
151.在本技术实施例中,若第一数据对象不满足保护添加条件,则该网络设备向第一客户端发送添加失败响应报文,添加失败响应报文也可称为设置失败响应报文。可选地,添加失败响应报文携带访问控制保护添加失败的原因。访问控制保护添加失败的原因可能为该网络设备不支持设置访问控制功能,或者,该网络设备支持设置访问控制功能,但第一数据对象已添加访问控制保护。
152.示例性地,通过扩展netconf来为数据对象设置访问控制保护,例如定义set-ol-capability操作来为数据对象设置访问控制保护,《set-ol-capability》中的参数包括《target》和《support》。其中,《target》参数携带请求添加访问控制保护的数据对象的标识,《support》参数的取值为“true”或“false”,“true”表示请求为《target》参数所指示的数据对象添加访问控制保护,“false”表示请求为《target》参数所指示的数据对象删除访问控制保护。
153.例如,假设第一客户端请求为一个数据集添加访问控制保护,第一客户端向网络设备发送的一个添加保护请求报文携带如下信息。其中,《target》参数指示的是一个数据集,表示第一客户端请求为《target》参数所指示的数据集添加访问控制保护。该数据集为running数据集,也即是,《set-ol-capability》参数中的内容指示为running数据集添加访问控制保护。
[0154][0155]
在该running数据集满足保护添加条件的情况下,该网络设备向第一客户端发送的一个添加成功响应报文携带如下信息。其中,《ok/》指示添加访问控制保护成功。
[0156][0157]
在由于网络设备不支持为数据集设置访问控制功能,而导致该running数据集不满足保护添加条件的情况下,该网络设备向第一客户端发送的一个添加失败响应报文携带如下信息。其中,《rpc-error》参数中的内容指示访问控制保护添加失败以及失败的原因,《error-message》参数中的“this datastore can not be set revision”表示访问控制保护添加失败的原因,即原因为该网络设备不支持为该数据集设置访问控制保护。
[0158][0159][0160]
在由于该running数据集已存在版本信息(即已添加访问控制保护),而导致该running数据集不满足保护添加条件的情况下,该网络设备向第一客户端发送的一个添加失败响应报文携带如下信息。其中,《rpc-error》参数中的内容指示添加访问控制保护失败以及失败的原因,《error-message》参数中的“datastore revision already exists”表示添加访问控制保护失败的原因,即原因为该数据集已添加访问控制保护。
[0161][0162]
又如,假设第一客户端请求为一个数据节点添加访问控制保护,第一客户端向网络设备发送的一个添加保护请求报文携带如下信息。其中,《target》参数指示的是一个数据节点,表示请求为《target》参数所指示的数据节点添加访问控制保护。该数据节点即“/t:top/t:interface/t:name”这个路径下的数据节点。
[0163][0164]
在该数据节点满足保护添加条件的情况下,该网络设备向第一客户端发送的一个添加成功响应报文与上述示例中的添加成功响应报文可以相同。
[0165]
在由于该网络设备不支持为数据节点设置访问控制功能,而导致该数据节点不满足保护添加条件的情况下,该网络设备向第一客户端发送的一个添加失败响应报文携带如下信息。其中,《error-message》参数中的
““
name”element cannot be set revision”表示访问控制保护添加失败的原因,即原因为该网络设备不支持为该数据节点设置访问控制保护。
[0166][0167]
在由于该数据节点已存在版本信息(即已添加访问控制保护),而导致该数据节点不满足保护添加条件的情况下,该网络设备向第一客户端发送的一个添加失败响应报文携带如下信息。其中,《rpc-error》参数中的内容指示添加访问控制保护失败以及失败的原因,《error-message》参数中的
““
name”revision already exists”表示添加访问控制保护失败的原因,即原因为该数据节点已添加访问控制保护。
[0168][0169]
由前述可知,本技术实施例中设置版本信息是为了记录数据对象的变更情况,例如在数据对象进行数据变更后可以更新数据对象的版本信息。而在一些情况下,某些子数据对象的数据变更对父数据对象的影响不大,或者其他原因,网管人员可能不希望网络设备记录某父数据对象中某子数据对象的变更情况,那么在对该父数据对象设置访问控制保护时将这些子数据对象反选出去,后续网络设备在对这些子数据对象进行配置更新后不更新父数据对象的版本信息。基于此,在本技术实施例中,还提供一种反选机制,也即网络设备设置的访问控制功能支持反选机制,网络设备根据反选机制参数来判断对某个数据对象的配置更新是否影响该数据对象的上级数据对象(父数据对象)的版本信息。相应地,在第一客户端对数据对象添加访问控制保护时,还可以设置反选机制参数。可选地,前述添加保护请求报文还包括反选机制参数,反选机制参数包括一个或多个第四数据对象的标识,第四数据对象为第一数据对象的子数据对象,第四数据对象的数据粒度小于第一数据对象的数据粒度。也即是,在对第一数据对象添加访问控制保护时将一个或多个第四数据对象从第一数据对象中反选出去,从而使得后续对该一个或多个第四数据对象的配置更新不影响第一数据对象的版本信息。
[0170]
示例性地,通过扩展netconf来为数据对象设置访问控制保护,例如定义set-ol-capability操作来为数据对象设置访问控制保护,定义《reverse-match》来设置反选机制参数,《set-ol-capability》中的参数包括《target》、《support》和《reverse-match》。第一客户端向网络设备发送的一个添加保护请求报文携带如下信息。其中,《set-ol-capability》参数中的内容指示为candidate数据集添加访问控制保护,且为将candidate数据集包含的一个数据节点的标识设置为反选机制参数。《target》参数携带第一客户端请求添加访问控制保护的数据对象的标识,即candidate。《support》参数的取值为“true”,表示为《target》参数所指示的数据对象添加访问控制保护。《reverse-match》参数中的“/ietf-interface/address/name”为candidate数据集所包含的一个数据节点的标识,表示将“/ietf-interface/address/name”设置为反选机制参数包括的一个数据对象的标识。可选地,在本技术实施例中,一个数据节点以该数据节点的路径进行标识。也即是,《reverse-match》参数中指定路径下的数据节点属于《target》参数所指示的数据集的范畴,但该数据节点中配置数据的变化不影响该数据集的版本信息。简单来说,第一客户端请求网络设备为candidate数据集添加乐观锁,但是对于“/ietf-interface/address/name”路径下的数据节点的修改不必受乐观锁限制,该数据节点的变化也不影响candidate数据集的版本信息。
[0171][0172]
还需要说明的是,上述示例中以将一个数据节点从一个数据集中反选出去为例进行介绍,在本技术实施例中,也可以将一个或多个数据节点从一个yang模块或一个数据集中反选出去,也可以将一个或多个yang模块从一个数据集中反选出去。另外,若《reverse-match》参数中数据对象的数据粒度满足网络设备所支持设置访问控制功能的数据粒度,那么,仍可以为《reverse-match》参数中的数据对象单独设置访问控制保护。
[0173]
以上介绍了为数据对象添加访问控制保护的实现方式,接下来介绍为数据对象删除访问控制保护的实现方式,这里仍以第一客户端请求网络设备删除第一数据对象的访问控制保护为例进行介绍。需要说明的是,除第一客户端之外的其他客户端均可以请求网络设备删除一个或多个数据对象的访问控制保护,原理与第一客户端请求网络设备删除第一数据对象的访问控制保护相似,本文不一一介绍。
[0174]
在本技术实施例中,第一客户端向网络设备发送删除设置访问控制功能请求报文,删除设置访问控制功能请求报文包括第一数据对象的标识,该网络设备接收第一客户端发送的删除设置访问控制功能请求报文。如果该网络设备基于第一数据对象的标识确定第一数据对象满足设置访问控制功能删除条件,则该网络设备基于第一数据对象的标识,删除第一数据对象的版本信息。可选地,删除设置访问控制功能请求报文也可称为删除访问控制保护请求报文、删除保护请求报文等,设置访问控制功能删除条件也可称为访问控制保护删除条件、保护删除条件。在接下来的实施例中将以删除保护请求报文和保护删除条件为例进行介绍。
[0175]
可选地,在本技术实施例中,保护删除条件包括:网络设备支持设置访问控制功能,且网络设备记录有第一数据对象的版本信息。也即是,在网络设备支持设置访问控制功能,且第一数据对象已添加访问控制保护的情况下,网络设备能够成功删除第一数据对象的乐观锁。
[0176]
在本技术实施例中,网络设备删除第一数据对象的版本信息之后,向第一客户端发送删除成功响应报文。可选地,第一客户端接收到删除成功响应报文后删除第一客户端记录的第一数据对象的版本信息。
[0177]
在本技术实施例中,若第一数据对象不满足保护删除条件,则该网络设备向第一客户端发送删除失败响应报文。可选地,删除失败响应报文包括访问控制保护删除失败的原因。访问控制保护删除失败的原因可能为该网络设备不支持设置访问控制功能,或者,该网络设备支持设置访问控制功能,但第一数据对象还未被添加访问控制保护。
[0178]
示例性地,通过扩展netconf来为数据对象设置访问控制保护,例如定义set-ol-capability操作来为数据对象设置访问控制保护,《set-ol-capability》中的参数包括《target》和《support》。第一客户端向网络设备发送的一个删除保护请求报文携带如下信息。其中,《set-ol-capability》参数中的内容指示为running数据集删除访问控制保护,《target》参数的取值为第一客户端请求删除访问控制保护的数据对象的标识,即running。《support》参数的取值为“false”,表示为《target》指示的数据对象删除访问控制保护。
[0179][0180]
在第一数据对象满足保护删除条件的情况下,网络设备向第一客户端发送的一个删除成功响应报文携带如下信息。其中,《ok/》指示删除访问控制保护成功。
[0181][0182]
在由于网络设备不支持设置访问控制功能,而导致第一数据对象不满足保护删除条件的情况下,该网络设备向第一客户端发送的一个删除失败响应报文携带如下信息。其中,《rpc-error》参数中的内容指示访问控制保护删除失败以及失败的原因,《error-message》参数中的“this datastore cannot be set revision”表示访问控制保护删除失败的原因,即原因为该网络设备不支持为数据集设置访问控制保护。
[0183][0184]
在由于第一数据对象不存在版本信息(即未添加访问控制保护),而导致第一数据对象不满足保护删除条件的情况下,该网络设备向第一客户端发送的一个删除失败响应报文携带如下信息。其中,《rpc-error》参数中的内容指示访问控制保护删除失败以及失败的原因,《error-message》参数中的“datastore revision don’t exist”表示访问控制保护删除失败的原因,即原因为该数据集未添加访问控制保护。
[0185][0186]
以上介绍了为数据对象添加访问控制保护和删除访问控制保护的实现方式。可选地,在本技术实施例中,网络设备与第一客户端还能够交互各自的能力信息,例如,网络设备向第一客户端通知网络设备对访问控制功能的支持能力等等,以便于第一客户端准确地向该网络设备发送各种请求。可选地,网络设备与第一客户端之间在建立会话连接之后先交互各自的能力信息,网络设备与第一客户端也可以在会话过程中的任意时间来交互各自的能力信息,本技术实施例对此不作限定。接下来介绍网络设备向第一客户端通知网络设备对访问控制功能的支持能力的实现方式。
[0187]
在本技术实施例中,网络设备向第一客户端发送能力通知报文,该能力通知报文包括访问控制功能的支持能力参数,该支持能力参数包括第一取值或第二取值,第一取值指示该网络设备支持设置访问控制功能,第二取值指示该网络设备不支持设置访问控制功能。
[0188]
可选地,第一取值和第二取值可以为数值、字符串等,本技术实施例对此不作限定。例如,第一取值和第二取值分别为“1”和“0”,或者,第一取值和第二取值分别为“dynamic”和“static”。
[0189]
由前述可知,在一些实施例中,网络设备对支持设置访问控制功能的数据粒度有所限制。基于此,可选地,能力通知报文还包括访问控制功能的支持粒度参数,支持粒度参数用于指示该网络设备支持设置访问控制功能的数据粒度,数据粒度包括数据集粒度、yang模块粒度和数据节点粒度中的一个或多个。
[0190]
示例性地,假设网络设备向第一客户端发送的能力通知报文携带basic-mode参数和granularity参数,basic-mode参数和granularity参数分别为访问控制功能的支持能力参数和支持粒度参数。其中,basic-mode参数的取值为“dynamic”或“static”。“dynamic”表示支持动态添加和删除访问控制保护,“static”表示不支持动态添加和删除访问控制保护,也即该网络设备对访问控制功能的支持是静态的,该网络设备对访问控制功能的支持能力在出厂时即确定,不能够在该网络设备的运行过程中通过客户端动态添加或删除访问控制保护。granularity参数的取值包括“datastore”、“module”和“node”中的一个或多个。“datastore”表示该网络设备支持对数据集粒度的数据对象维护乐观锁,只要修改了已添加访问控制保护的一个数据集中的配置数据,且修改的不是反向机制参数中的数据,那么网络设备就需要更新该数据集的版本信息。“module”表示该网络设备支持对yang模块粒度的数据对象维护乐观锁。“node”表示该网络设备支持对数据节点粒度的数据对象维护乐观锁。
[0191]
基于上述示例,网络设备向第一客户端发送的一个能力通知报文可以携带如下信息。这里以网络设备向第一客户端发送一个hello报文为例,该hello报文携带《capabilities》参数集,《capabilities》参数集包括一个或多个《capability》参数,每个《capability》参数携带网络设备的一种能力信息。其中,在该hello报文携带的第三个《capability》参数中携带访问控制功能的支持能力参数(即basic-mode参数)和支持粒度参数(即granularity参数)。该《capability》参数中的“basic-mode=dynamic”表示第一取值为“dynamic”,指示该网络设备支持动态设置访问控制功能,“granularity=datastore,module”表示网络设备所支持设置访问控制功能的数据粒度包括数据集粒度和yang模块粒度。
[0192][0193]
interface-desc”的时间戳2021-07-2210:45utc。又如,第一数据对象是yang模块“ietf-interface-desc”中的数据节点“mtu”,第一版本信息的第一客户端记录的数据节点“mtu”的序列号0001。
[0201]
这里示例性地给出yang模块“ietf-interface-desc”中数据节点形成的yang模型如下所示,yang模块“ietf-interface-desc”中的数据节点包括“interface”、“name”、“description”、“mtu”、“ip-address”。
[0202][0203]
需要说明的是,假设第一数据对象的类型或数据粒度被设置或定义为yang模块,网络设备接收到的第一客户端发送的netconf配置请求报文包括操作指示信息,该操作指示信息指示第一客户端请求网络设备对名称为ietf-interface-desc的yang模块中的“name”节点进行操作,那么这里的第一数据对象是名称为ietf-interface-desc的yang模块,不是数据节点“name”,所以第一版本信息是上述yang模块“ietf-interface-desc”的版本信息。同理,假设第一数据对象的类型被设置或定义为数据集,网络设备接收到的第一客户端发送的netconf配置请求报文包括操作指示信息,该操作指示信息指示第一客户端请求网络设备对running数据集中的“host-name”节点进行操作,那么这里的第一数据对象是running数据集,不是数据节点“host-name”,所以第一版本信息是上述running数据集的版本信息。
[0204]
可选地,第一客户端请求该网络设备对第一数据对象所执行的操作包括编辑(edit-config)、复制(copy-config)、提交(commit)或删除(delete-config)等操作中的一种或多种。
[0205]
需要说明的是,netconf中的编辑操作、删除操作是关于一个数据对象的操作,网
络设备检测这一个数据对象的版本信息的一致性即可。netconf中的复制操作是关于两个数据对象的操作,可选地,为了保证这两个数据对象中的配置数据与第一客户端所维护的一致,网络设备需要分别检测这两个数据对象的版本信息的一致性。例如,netconf中的提交操作是关于两个数据对象的操作,即一个数据对象为running数据集、另一数据对象为candidate数据集,其中running数据集为第一数据对象,网络设备需要检测running数据集的版本信息的一致性,但对于candidate数据集来说,网络设备可以检测或不检测candidate数据集的版本信息的一致性。可选地,若网络设备不检测candidate数据集的版本信息,那么,candidate可以不设置对应的版本信息。接下来以该操作包括复制操作为例,对本技术实施例中需要分别检测两个数据对象的版本信息的一致性的情况进行介绍。
[0206]
在本技术实施例中,第一客户端请求该网络设备对第一数据对象执行的操作包括复制操作,那么操作指示信息还包括第五版本信息,第五版本信息为第一客户端记录的第五数据对象的版本信息,第五数据对象包括网络设备的配置数据。其中,复制操作用于用第五数据对象中的配置数据覆盖第一数据对象中的配置数据。第一数据对象与第五数据对象为不同的数据对象。
[0207]
可选地,在本身实施例中,通过对netconf定义的这些操作进行扩展以携带版本信息从而实现对网络设备的配置更新。接下来以该操作分别包括编辑操作、提交操作和复制操作为例对此进行介绍。
[0208]
示例性地,以该操作包括编辑操作,版本信息为版本号(revision)为例,对netconf定义的edit-config操作进行扩展,以携带第一版本信息。例如,在需要配置更新的第一数据对象的标识后面增加版本信息这个属性。如在下述示例中,操作指示信息包括《edit-config》参数中的内容,《target》参数中的《running ol:revision=”1”/》表示第一数据对象为running数据集,且第一客户端记录的running数据集的版本号为1。另外,还可以看出,通过《edit-config》参数来指示第一客户端请求网络设备所执行的编辑操作,通过《target》参数来携带第一数据对象的标识。需要说明的是,在netconf定义的edit-config操作中,edit-config操作可以通过operation参数来指示具体操作为合并(merge)、删除、替换等。如在下述示例中,《interface xc:operation="merge"》指示对相应接口的配置数据进行合并操作。还需说明的是,operation参数是可选的参数,若《edit-config》参数中未携带operation参数,则表示edit-config操作指示默认操作,默认操作为merge操作。
[0209][0210][0211]
以该操作包括提交操作,版本信息为版本号(revision)为例,对netconf定义的commit操作进行扩展,以携带第一版本信息。如在下述示例中,操作指示信息包括《commit ol:revision=”2”/》,通过《commit ol:revision=”2”/》来指示第一客户端请求网络设备所执行的提交操作,以及指示第一数据对象为running数据集,指示第二数据对象为candidate数据集,另外,还携带第一客户端记录的running数据集的版本信息为2。该提交操作用于用candidate数据集中的配置数据覆盖running数据集中的配置数据,以将candidate数据集中的配置数据提交正式生效。
[0212][0213]
以该操作包括复制操作,版本信息为版本号(revision)为例,对netconf定义的copy-config操作进行扩展,以携带第一版本信息和第五版本信息。例如,在第一数据对象(目的数据对象)和第二数据对象(源数据对象)的标识后面分别增加对应的版本信息这个属性。如在下述示例中,操作指示信息包括《copy-config》参数中的内容,《target》参数中的《startup ol:revision=”1”/》表示第一数据对象为startup数据集,且第一客户端记录的startup数据集的版本号为1,《source》参数中的《running ol:revision=”2”/》表示第二数据对象为running数据集,且第一客户端记录的running数据集的版本号为2。另外,还可以看出,通过《copy-config》参数来指示第一客户端请求网络设备所执行的复制操作,通过《target》参数来携带第一数据对象的标识,通过《source》参数来携带第二数据对象的标
识。
[0214][0215]
由前述可知,第一客户端在向网络设备发送配置请求报文之前,也可以先检测版本信息的一致性。第一客户端检测版本信息的一致性的话,需要先获取网络设备记录的第一数据对象的版本信息。接下来介绍第一客户端获取网络设备记录的第一数据对象的版本信息的两种实现方式。需要说明的是,若还需检测第五数据对象的版本信息的一致性,第一客户端可以分别获取网络设备记录的第一数据对象和第五数据对象的版本信息。接下来以第一客户端获取网络设备记录的第一数据对象的版本信息为例对此进行介绍,第一客户端获取网络设备记录的第五数据对象的版本信息的实现方式类似。
[0216]
第一客户端获取网络设备记录的第一数据对象的版本信息的一种实现方式为:第一客户端向网络设备发送查询报文,查询报文包括第一数据对象的标识。网络设备接收第一客户端发送的查询报文,网络设备向第一客户端发送查询响应报文,查询响应报文包括网络设备记录的第一数据对象的版本信息。也即是,第一客户端通过即时查询的方式获取网络设备记录的第一数据对象的版本信息。
[0217]
需要说明的是,若网络设备记录有第一数据对象的版本信息,则网络设备向第一客户端反馈一个成功响应报文,该成功响应报文即为查询响应报文,查询响应报文包括网络设备记录的第一数据对象的版本信息。可选地,查询响应报文包括版本字段,该版本字段包括网络设备记录的第一数据对象的版本信息。
[0218]
若网络设备未记录第一数据对象的版本信息,则网络设备向第一客户端反馈一个失败响应报文,该失败响应报文指示网络设备未记录第一数据对象的版本信息。可选地,该失败响应报文也包括一个版本字段,但该版本字段为空。其中,在第一数据对象不支持设置访问控制功能的情况下,或者,在第一数据对象支持设置但还未设置访问控制功能的情况下,网络设备向第一客户端反馈一个失败响应报文。可选地,在不同的情况下,网络设备反馈的失败响应报文相同或者不同。例如,在第一数据对象不支持设置访问控制功能的情况下,网络设备反馈的失败响应报文指示第一数据对象不支持设置访问控制功能。在第一数据对象支持设置但还未设置访问控制功能的情况下,网络设备反馈的失败响应报文指示第一数据对象支持但还未设置访问控制功能。
[0219]
示例性地,通过对netconf进行扩展,如定义get-revision操作用于客户端查询版
本信息,定义get-revision操作中的参数包括《source》参数和《filter》参数。其中,《source》参数用于携带数据集的标识,《filter》参数用于携带《source》参数所指示的数据集中的yang模块的名称或数据节点的路径或数据节点的名称。其中,《filter》参数为可选参数。例如,在第一数据对象为一个数据集的情况下,版本查询请求报文中《get-revision》参数包含《source》参数即可,以通过《source》参数指示第一数据对象的标识。在第一数据对象为一个yang模块或一个数据节点的情况下,版本查询请求报文中《get-revision》参数包含《source》参数和《filter》参数,以通过《source》参数和《filter》参数共同指示第一数据对象的标识。如在下述示例中,第一客户端向网络设备发送的一个查询报文携带如下信息。其中,《get-revision》参数中的内容指示第一客户端请求查询第一数据对象的版本信息,《get-revision》参数包含《source》参数,表示第一数据对象为一个数据集。《source》参数中的《running/》表示第一数据对象为running数据集。可选地,第一客户端通过《get-revision》向网络设备发送的查询报文可称为版本查询报文。
[0220][0221][0222]
又如在下述示例中,第一客户端向网络设备发送的一个查询报文携带如下信息。其中,《get-revision》参数中的内容指示第一客户端请求查询第一数据对象的版本信息,《get-revision》参数包含《source》参数和《filter》参数,表示第一数据对象为数据集中的yang模块或数据节点。其中,《source》参数中的《running/》表示第一数据对象所属的数据集为running数据集。《filter》参数中的《top》参数表示第一数据对象为running数据集中的/top/users数据节点。
[0223][0224]
在网络设备记录有第一数据对象的版本信息的情况下,网络设备反馈的一个查询响应报文携带如下信息。其中,《revision》2《revision》为一个版本字段,该版本字段表示网络设备记录的第一数据对象的版本信息为2。
[0225][0226]
在网络设备未记录第一数据对象的版本信息的情况下,网络设备反馈的一个失败响应报文携带如下信息。其中,《revision》《revision》为空,表示网络设备未记录第一数据对象的版本信息。
[0227][0228]
以上以扩展的get-revision操作为例,对第一客户端通过发送查询报文来获取网络设备记录的第一数据对象的版本信息进行了介绍。可选地,第一客户端也可以通过netcof中定义的《get-config》来获取网络设备记录的第一数据对象的版本信息。《get-config》用于客户端或控制器向网络设备查询网络设备上的配置数据,在申请实施例中,第一客户端向网络设备发送的查询报文包括《get-config》参数,《get-config》参数携带第一数据对象的标识。网络设备向第一客户端反馈的查询响应报文包括《data》参数,《data》参数携带第一数据对象的具体数据,还携带网络设备记录的第一数据对象的版本信息。可选地,第一客户端也可以通过netcof中定义的《get-data》或《get》来获取网络设备记录的第一数据对象的版本信息,原理类似于《get-config》。也即是,在本技术实施例中,也可以通过对netcof中定义的标准请求报文进行扩展,在第一客户端向网络设备发送查询报文以请求查询第一数据对象中具体数据的情况下,网络设备向第一客户端反馈第一数据对象中具
体数据的同时,还反馈网络设备所记录的第一数据对象的版本信息。可选地,第一客户端通过《get-config》向网络设备发送的查询报文也可称为配置查询报文。
[0229]
需要说明的是,在本技术实施例中,第一客户端可以在期望对第一数据对象进行配置更新时,通过即时查询的方式获取网络设备记录的第一数据对象的版本信息,第一客户端也可以在任意时刻通过即时查询的方式获取网络设备记录的第一数据对象的版本信息。第一客户端除了可以查询第一数据对象的版本信息之外,也可以查询其他的数据对象的版本信息。
[0230]
可选地,第一客户端通过发送一个查询报文来请求查询一个或多个数据对象的版本信息,在上述几个示例中,一个查询报文用于请求查询一个数据对象的版本信息。接下来介绍第一客户端通过发送一个查询报文来请求查询多个数据对象的版本信息的实现方式。
[0231]
以上述介绍的《get-config》为例,示例性地,第一客户端发送的一个查询报文携带如下信息。其中,《get-revision》参数携带《source》参数和《filter》参数。《source》参数指示请求查询的数据对象所在的数据集为running数据集。《filter》参数指示请求查询版本信息的数据对象包括running数据集中interfaceyang模块包括的接口名称为eth0对应的多个数据节点。
[0232][0233]
在网络设备记录有上述interfaceyang模块包括的ifname为eth0对应的多个数据节点的版本信息的情况下,网络设备反馈的一个查询响应报文携带如下信息。该查询响应报文携带《data》参数,《data》参数携带interfaceyang模块包括的ifname接口名称为eth0对应的四个数据节点各自的版本信息。其中,《ifname ol:revision=”1”》eth0《/ifname》表示接口名称为eth0的数据节点的版本信息为1。《mtu ol:revision=”3”》1450《/mtu》表示mtu(masuimum transmission unit,最大传输单元)为1450的数据节点的版本信息为3。《ip-address ol:revision=”2”》172.168.0.1《/ip-address》表示ipv4-address为172.168.0.1的数据节点的版本信息为2。《ip-address ol:revision=”1”》::1《/ip-address》表示ipv6-address为::1的数据节点的版本信息为1。
[0234][0235]
在这四个数据节点中部分数据节点有版本信息的情况下,网络设备向第一客户端反馈的一个查询响应报文携带这部分数据节点的版本信息。示例性地,网络设备反馈的一个查询响应报文携带如下信息。其中,接口名称为eth0的数据节点的版本信息为1,最大传输单元mtu为1450的数据节点的版本信息为3,ipv4-address为172.168.0.1的数据节点和ipv6-address为::1的数据节点均没有版本信息。
[0236][0237][0238]
以上几个示例中,第一客户端通过指定数据节点的名称来请求查询版本信息,在
本技术实施例中,也可以通过指定数据节点的路径来请求查询版本信息。例如通过xpath表达式来表示数据节点的路径。
[0239]
示例性地,第一客户端发送的一个查询报文携带如下信息。其中,《filter》参数携带一个xpath表达式,该xpath表达式指示第一客户端请求查询running数据集中user的name为fred对应的多个数据节点的版本信息。
[0240][0241]
可选地,在属于一个数据集或一个yang模块的多个数据节点的版本信息一致的情况下,则网络设备向第一客户端反馈的查询响应报文可以在该多个数据节点的父节点的标识后附上版本信息,以指示这多个数据节点均继承该父节点的版本信息。其中,在一种情况下,该多个数据节点自身具有版本信息且相同,在另一种情况下,该多个数据节点自身不具有版本信息,该多个数据节点的版本信息实质上是该多个数据节点的父节点的版本信息。
[0242]
示例性地,第一客户端向网络设备发送的一个查询报文携带如下信息。其中,《user ol:revision=”1”》表示name为fred的数据节点和id=2的company-info数据节点的版本信息均是继承了父节点user的版本信息1。
[0243]
[0244][0245]
以上介绍了第一客户端通过向网络设备发送查询报文来获取第一数据对象的版本信息的实现方式。在本技术实施例中,第一客户端获取网络设备记录的第一数据对象的版本信息的另一种实现方式为:网络设备向第一客户端发送数据变更通知报文,该数据变更通知报文包括网络设备记录的第一数据对象的版本信息,该数据变更通知报文为网络设备在第一客户端订阅关于第一数据对象中数据的变更通知的情况下发送的。也即是,第一客户端通过订阅的方式获取网络设备记录的第一数据对象的版本信息,也即获取网络设备记录的最新的版本信息。例如,网络设备基于其他客户端的请求修改了第一数据对象中的数据,即第一数据对象中的数据发生了变更,那么网络设备向第一客户端发送一个数据变更通知报文,该数据变更通知报文包括网络设备记录的第一数据对象最新的版本信息。
[0246]
可选地,第一客户端通过向网络设备发送订阅请求以订阅关于第一数据对象中配置数据的变更通知,或者,第一客户端默认设置向网络设备订阅关于第一数据对象中配置数据的变更通知,或者,网络设备默认向第一客户端推送数据变更通知报文。
[0247]
需要说明的是,版本信息可认为是记录第一数据对象中配置数据发生变更的标记,在第一数据对象包括的配置数据发生变更(即配置更新)的情况下,第一数据对象的版本信息可能发生变化,这种情况下,网络设备向第一客户端发送数据变更通知报文,数据变更通知报文携带网络设备记录的第一数据对象的版本信息。可选地,数据变更通知报文还包括第一数据对象中配置数据的具体变更信息。
[0248]
在本技术实施例中,上述第一客户端获取网络设备记录的第一数据对象的版本信息的两种实现方式可以单独使用,也可以结合使用,本技术实施例对此不作限定。例如,在结合使用的情况下,第一客户端既可以随时通过向网络设备发送版本查询请求报文来获取版本信息,第一客户端也可以通过接收网络设备发送的配置变更推送报文来获取版本信息。
[0249]
步骤302:网络设备接收该配置请求报文。
[0250]
在本技术实施例中,第一客户端向网络设备发送配置请求报文之后,网络设备接收该配置请求报文。
[0251]
步骤303:在网络设备检测第一版本信息与第一参考版本信息一致的情况下,网络设备对第一数据对象执行该操作,第一参考版本信息为网络设备记录的第一数据对象的版本信息。
[0252]
在本技术实施例中,网络设备在接收到该配置请求报文之后检测第一版本信息与
第一参考版本信息是否一致,也即检测第一客户端记录的版本信息是否与网络设备记录的版本信息一致。在网络设备检测第一版本信息与第一参考版本信息一致的情况下,网络设备对第一数据对象执行该操作。其中,第一参考版本信息为网络设备记录的第一数据对象的版本信息。
[0253]
由前述可知,若该操作包括复制操作,则配置请求报文携带的操作指示信息还包括第五版本信息,第五版本信息为第一客户端记录的第五数据对象的版本信息,第五数据对象包括网络设备的配置数据,第五数据对象与第一数据对象为不同的数据对象。那么,网络设备还需要检测第五版本信息与第五参考版本信息是否一致。在网络设备检测第一版本信息与第一参考版本信息一致且第五版本信息与第五参考版本信息一致的情况下,网络设备对第一数据对象执行该操作。其中,第五参考版本信息为网络设备记录的第五数据对象的版本信息。
[0254]
由前述可知,配置请求报文携带的操作指示信息包括第一数据对象的标识,例如编辑、删除、复制等操作的操作指示信息均包括第一数据对象(也称为目标数据对象)的标识,或者,配置请求报文携带的操作指示信息指示第一数据对象的标识,例如提交操作的操作指示信息指示第一数据对象(即running数据集)的标识。可选地,网络设备在接收到配置请求报文之后,基于第一数据对象的标识从乐观锁信息库中查询第一数据对象的版本信息,查询到的版本信息即为网络设备记录的第一数据对象的版本信息。可选地,若该操作包括复制操作,那么操作指示信息还包括第五数据对象的标识,网络设备基于第五数据对象的标识从乐观锁信息库中查询第五数据对象的版本信息,查询到的版本信息即为网络设备记录的第五数据对象的版本信息。其中,乐观锁信息库用于存储网络设备记录的数据对象的版本信息,乐观锁信息库由网络设备存储,或者由其他的设备存储,本技术实施例对此不作限定。可选地,乐观锁信息库为基于yang模型构建的信息库。
[0255]
在本技术实施例中,网络设备对第一数据对象执行该操作的实现方式参照netconf的相关介绍,这里不再赘述。网络设备完成对第一数据对象执行该操作之后,网络设备记录第一参考版本信息。需要说明的是,网络设备需要根据情况判断是否更新网络设备所记录的第一数据对象的版本信息,也即是否更新第一参考版本信息。
[0256]
需要说明的是,由前述可知,在申请实施例中,网络设备设置访问控制功能所支持的数据粒度包括数据集粒度、yang模块粒度和数据节点粒度中的一个或多个,且对数据对象设置访问控制保护时还可以设置反选机制参数,也即是,本技术实施例中的数据对象之间可具有父子关系,具有父子关系的数据对象之间还可能存在子数据对象从父数据对象中被反选出去或未被反选出去的情况,基于此,本技术实施例中网络设备在对第一数据对象执行该操作后,基于支持设置访问控制功能的数据粒度、数据对象之间的父子关系以及反选机制参数来判断是否更新版本信息,以及如何更新版本信息。
[0257]
在一种情况下,在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度的情况下,那么网络设备更新并记录第一参考版本信息。也即是,网络设备维护有第一数据对象本身的版本信息,那么在网络设备对第一数据对象执行配置更新的操作后,需要更新并记录第一参考版本信息。
[0258]
可选地,若操作指示信息还包括第二数据对象的标识,第一数据对象为第二数据对象的子数据对象,第二参考版本信息为网络设备记录的第二数据对象的版本信息,那么
网络设备记录第一参考版本信息的实现方式为:在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,且第二参考版本信息对应的第二数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度的情况下,网络设备更新并记录第一参考版本信息和第二参考版本信息。需要说明的是,在这种情况下,网络设备设置的访问控制功能可以不支持反选机制。这样,若第一数据对象发生了数据变更,则网络设备需要更新第一数据对象的版本信息,若由于第一数据对象的数据变更,导致第一数据对象的父数据对象(即第二数据对象)发生了数据变更,则网络设备也需要更新第二数据对象的版本信息。
[0259]
可选地,若操作指示信息还包括第三数据对象的标识,第一数据对象为第三数据对象的子数据对象,第三参考版本信息为网络设备记录的第三数据对象的版本信息,网络设备设置的访问控制功能支持反选机制,那么网络设备记录第一参考版本信息的实现方式为:在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,第三参考版本信息对应的第三数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,且网络设备设置的访问控制功能的反选机制参数不包括第一数据对象的标识的情况下,网络设备更新并记录第一参考版本信息和第三参考版本信息。在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,第三参考版本信息对应的第三数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,且网络设备设置的访问控制功能的反选机制参数包括第一数据对象的标识的情况下,网络设备更新并记录第一参考版本信息。
[0260]
也即是,在网络设备设置的访问控制功能支持反选机制的情况下,若第三数据对象为第一数据对象的父数据对象,且第一数据对象和第三数据对象的数据粒度均满足网络设备设置访问控制功能的数据粒度,即网络设备设置访问控制功能的数据粒度包括至少两种数据粒度,那么网络设备不仅更新第一数据对象的版本信息,还要根据反选机制参数是否包括第一数据对象的标识来判断在对第一数据对象执行完操作后是否更新第三数据对象的版本信息。其中,在反选机制参数不包括第一数据对象的标识的情况下,网络设备在对第一数据对象执行完操作后更新第三数据对象的版本信息,在反选机制参数包括第一数据对象的标识的情况下,网络设备在对第一数据对象执行完操作后保持第三数据对象的版本信息不变。
[0261]
可选地,在这种情况下,该操作指示信息还包括第三数据对象的标识,第三数据对象为第一数据对象的父数据对象,第三数据对象和第一数据对象的数据粒度均满足网络设备设置访问控制功能的数据粒度。即,第三数据对象包含了第一数据对象,第一数据对象的数据粒度小于第三数据对象的数据粒度。那么网络设备记录了第三数据对象的版本信息,以及第一数据对象的版本信息。也即是,第三数据对象为第一数据对象的上级数据对象或父数据对象,且第三数据对象和第一数据对象均有版本信息,那么网络设备除了更新第一数据对象的版本信息之外,还要根据反选机制参数是否包括第一数据对象的标识来判断在对第一数据对象完成操作后是否更新第三数据对象的版本信息。其中,在反选机制参数不包括第一数据对象的标识的情况下,当网络设备对第一数据对象的操作导致第一数据对象变更,进而导致第一数据对象的父数据对象(即第三数据对象)变更,在这种情况下,由于第一数据对象未被设置从第三数据对象中反选出去,因此网络设备需要更新第三数据对象的
版本信息。在反选机制参数包括第一数据对象的标识的情况下,当网络设备对第一数据对象的操作导致第一数据对象变更,但由于第一数据对象被设置从第三数据对象中反选出去,表示网络设备不需要记录由于第一数据对象导致的第三数据对象的变更,即使第一数据对象变更了,如果第三数据对象中除第一数据对象之外数据对象没有变更,在这种情况下,网络设备保持第三数据对象的版本信息不变。也即是,在本技术实施例中,若第三数据对象为第一数据对象的父数据对象,第三数据对象对应的反选机制参数包括第一数据对象的标识,那么,即使对第一数据对象进行配置更新,网络设备也不会更新第三数据对象的版本信息。简单来说,也就是将第一数据对象从第三数据对象中反选出去,对第一数据对象的配置更新不影响第三数据对象的版本信息。
[0262]
示例性地,当网络设备接收到的第一客户端发送的netconf配置请求报文包括操作指示信息,该操作指示信息指示第一客户端请求网络设备对名称为ietf-interface-desc的yang模块中的“name”节点进行操作,ietf-interface-desc的yang模块是第三数据对象,第三数据对象的类型或数据粒度为yang模块,“name”节点是第一数据对象,第一数据对象的类型或数据粒度为数据节点。假设网络设备设置访问控制功能所支持的数据粒度包括yang模块和数据节点,网络设备记录了ietf-interface-desc的yang模块的版本信息,以及“name”节点的版本信息。那么网络设备在对“name”节点执行操作之后更新“name”节点的版本信息。另外,若反选机制参数包括“name”节点的标识,则网络设备保持ietf-interface-desc的yang模块的版本信息不变。若反选机制参数不包括“name”节点的标识,则网络设备更新ietf-interface-desc的yang模块的版本信息。
[0263]
需要说明的是,在这种情况下,也即在第三数据对象与第一数据对象之间具有父子关系,且第一数据对象和第三数据对象的数据粒度均满足网络设备设置访问控制功能的数据粒度的情况下,若本技术实施例中该网络设备不支持设置反选机制参数,则该网络设备对第一数据对象执行操作以进行配置更新后,分别更新第一数据对象和第三数据对象的版本信息。
[0264]
示例性地,假设第一数据对象为一个数据节点,第三数据对象为一个数据集,该数据集包含该数据节点,该数据节点的数据粒度和该数据集的数据粒度均满足该网络设备设置访问控制功能的数据粒度,且该网络设备分别记录有该数据节点和该数据集的版本信息。那么,如果该数据集对应的反选机制参数包括该数据节点的标识,那么该网络设备对该数据节点执行操作以进行配置更新后,该网络设备更新该数据节点的版本信息,保持该数据集的版本信息不变。如果该数据集对应的反选机制参数不包括该数据节点的标识,或者,该网络设备不支持设置反选机制参数,那么该网络设备对该数据节点执行操作以进行配置更新后,该网络设备分别更新该数据节点和该数据集的版本信息。
[0265]
在另一种情况下,第一数据对象的数据粒度不满足网络设备设置访问控制功能的数据粒度,第三数据对象为第一数据对象的父数据对象,第三数据对象的数据粒度满足网络设备设置访问控制功能的数据粒度,即第一数据对象的父数据对象具有版本信息。那么,网络设备需要根据第一数据对象的标识是否被设置为反选机制参数来判断在对第一数据对象执行完操作后是否更新第三数据对象的版本信息。其中,在反选机制参数包括第一数据对象的标识的情况下,该网络设备保持第三数据对象的版本信息不变。在反选机制参数不包括第一数据对象的标识的情况下,该网络设备更新第三数据对象的版本信息。
[0266]
示例性地,网络设备支持对一种数据粒度的数据对象设置访问控制功能,假设网络设备不支持设置数据节点的访问控制功能,但支持设置数据集的访问控制功能,第一数据对象为一个数据节点,第三数据对象为一个数据集,第三数据对象为第一数据对象的父数据对象,那么网络设备记录有第三数据对象的版本信息,第一数据对象本身不具有版本信息。也即是,假设第一数据对象为一个数据节点,第三数据对象为一个数据集,该数据集为该数据节点的父数据对象,该数据节点的数据粒度不满足该网络设备设置访问控制功能的数据粒度,该数据集的数据粒度满足该网络设备设置访问控制功能的数据粒度,且该网络设备记录有该数据集的版本信息,而该数据节点本身没有版本信息。如果该数据集对应的反选机制参数包括该数据节点的标识,那么该网络设备对该数据节点执行操作以进行配置更新后,该网络设备保持该数据集的版本信息不变。如果该数据集对应的反选机制参数不包括该数据节点的标识,那么该网络设备对该数据节点执行操作以进行配置更新后,该网络设备更新该数据集的版本信息。
[0267]
例如,当网络设备接收到的第一客户端发送的netconf配置请求报文包括操作指示信息,该操作指示信息指示第一客户端请求网络设备对名称为ietf-interface-desc的yang模块中的“name”节点进行操作。假设网络设备设置访问控制功能所支持的数据粒度包括yang模块,网络设备记录了ietf-interface-desc的yang模块的版本信息。那么网络设备在对“name”节点执行操作之后,若反选机制参数包括“name”节点的标识,则网络设备保持ietf-interface-desc的yang模块的版本信息不变。若反选机制参数不包括“name”节点的标识,则网络设备更新ietf-interface-desc的yang模块的版本信息。
[0268]
可选地,若网络设备通过乐观锁信息库存储数据对象的版本信息,那么,网络设备通过更新乐观锁信息库来更新第一数据对象的版本信息,或者,更新第一数据对象和第三数据对象的版本信息。可选地,反选机制参数存储在乐观锁信息库中,网络设备从乐观锁信息库中查询反选机制参数,以及判断反选机制参数是否包括第一数据对象的标识。
[0269]
示例性地,若版本信息为版本号,版本号为数字的格式,则该网络设备更新第一参考版本信息的一种实现方式为:将第一参考版本信息加1后得到更新后的第一参考版本信息。若版本信息为版本号,版本号为version主版本号.子版本号.次版本号的命名格式,则该网络设备更新第一参考版本信息的一种实现方式为:将第一参考版本信息的主版本号或子版本号或次版本号加1后得到更新后的第一参考版本信息。若版本信息为时间戳,则该网络设备更新第一参考版本信息的一种实现方式为:网络设备将完成对第一数据对象执行操作的系统时间更新为第一参考版本信息,或者,网络设备将开始对第一数据对象执行操作的系统时间更新为第一参考版本信息,或者,网络设备将接收到配置请求报文的系统时间更新为第一参考版本信息。也即是,第一参考版本信息是网络设备记录的网络设备完成对第一数据对象执行操作的系统时间,或,第一参考版本信息是网络设备记录的网络设备开始对第一数据对象执行操作的系统时间,或,第一参考版本信息是网络设备记录的网络设备接收到配置请求报文的时间。若版本信息为其他的形式,网络设备更新第一参考版本信息的方式适应性改变即可。
[0270]
可选地,若第一客户端请求网络设备执行的操作为提交操作,网络设备在将candidate数据集中的配置数据提交到running数据集中之后,由于修改的是running数据集中的配置数据,那么网络设备需要更新running数据集的版本信息。假设网络设备以累加
的形式更新版本信息,该网络设备在执行提交操作后,在一种实现方式中,网络设备将running数据集的版本信息加1后得到更新后的版本信息,在另一种实现方式中,网络设备将running数据集的版本信息重置为版本信息初始值。
[0271]
在本技术实施例中,网络设备对第一数据对象执行该操作之后,还能够向第一客户端发送配置成功响应报文,以告知第一客户端成功执行该操作。相应地,第一客户端向网络设备发送配置请求报文之后,第一客户端还接收网络设备发送的配置成功响应报文。
[0272]
可选地,第一客户端在接收到网络设备发送的配置成功响应报文之后,第一客户端记录第一版本信息,也即更新并记录第一客户端记录的第一数据对象的版本信息。需要说明的是,第一客户端可以立即自动更新第一版本信息,也可以后续通过向网络设备查询网络设备所记录的第一数据对象的版本信息来更新第一版本信息。也即是,本技术实施例不限定第一客户端更新第一版本信息的实现方式。
[0273]
例如,在一种实现方式中,第一客户端向网络设备发送配置请求报文一段时间之后,第一客户端向网络设备发送一个查询报文,以查询第一数据对象最新的版本信息。网络设备接收第一客户端发送的查询报文,该查询报文包括第一数据对象的标识。网络设备向第一客户端发送一个查询响应报文,该查询响应报文包括网络设备记录的第一数据对象的版本信息,也即网络设备将第一数据对象更新后的版本信息告知给第一客户端。这样,第一客户端获取到第一数据对象更新后的版本信息后,若发现第一数据对象的版本信息发生了变化,则第一客户端确定网络设备对第一数据对象成功执行了操作。简单来说,在本技术实施例中,第一客户端可以通过查询来获取版本信息,进而对网络设备是否对第一数据对象成功执行操作或完成操作进行验证。
[0274]
在另一种实现方式中,网络设备向第一客户端发送的配置成功响应报文包括更新后的第一参考版本信息,那么,第一客户端将第一版本信息更新并记录为更新后的第一参考版本信息。
[0275]
示例性地,网络设备向第一客户端发送的一个配置成功响应报文携带如下信息。其中,《ok/》指示网络设备成功对第一数据对象执行该操作,也即网络设备成功进行了配置更新。可选地,《ok/》也可以替换为《ok ol:revision=”4”/》,以指示更新后的第一参考版本信息为4。
[0276][0277]
在本技术实施例中,在网络设备检测到第一版本信息与第一参考版本信息不一致的情况下,网络设备向第一客户端发送配置失败响应报文。若该操作为复制操作,且网络设备检测到第一版本信息与第一参考版本信息不一致,或者,网络设备检测第五版本信息与第五参考版本信息不一致,则网络设备向第一客户端发送配置失败响应报文。也即是,在第一客户端所维护的版本信息与网络设备所维护的版本信息不一致的情况下,网络设备不对第一数据对象执行操作,且向第一客户端反馈配置失败响应报文。
[0278]
可选地,网络设备向第一客户端发送的配置失败响应报文包括第一参考版本信息,也即网络设备可以将网络设备所记录的第一数据对象的版本信息告知给第一客户端。
[0279]
示例性地,网络设备向第一客户端发送的一个配置失败响应报文携带如下信息。其中,《rpc-error》参数中的内容指示配置失败,《error-info》参数携带配置失败的原因,且《message》参数携带网络设备所记录的第一参考版本信息为2。
[0280][0281][0282]
以上介绍了在第一客户端对网络设备进行配置更新的过程中,网络设备通过检测版本信息的一致性来判断是否进行配置更新。接下来请参照图4对图3实施例介绍的配置更新方法再次进行示例性说明。
[0283]
在图4中,假设网络设备检测版本信息的一致性,版本信息为通过累加进行更新的版本号,客户端a和客户端b均可以对该网络设备进行配置更新。
[0284]
在t1时刻,客户端a向网络设备发送了一个配置请求报文,该配置请求报文指示对第一数据对象执行编辑操作,且携带客户端a记录的第一版本信息为1,即v=1。该网络设备接收到该配置请求报文之后,查询自身记录的第一参考版本信息为1,即v=1,通过对比确定第一版本信息和第一参考版本信息一致,则该网络设备接受客户端a的请求,成功执行编辑操作以进行配置更新,且该网络设备在成功更新配置后将记录的第一参考版本信息更新为2,即v=2。在t2时刻,该网络设备向客户端a发送一个配置成功响应报文,该配置成功响应报文指示成功配置,且携带更新后的第一参考版本信息,即v=2。客户端a更新自身所记录的第一版本信息为2。
[0285]
在t3时刻,客户端b向该网络设备发送了一个配置请求报文,该配置请求报文指示对该数据对象执行编辑操作,且携带客户端b记录的第一版本信息为2,即v=2。该网络设备接收到该配置请求报文之后,查询自身记录的第一参考版本信息为2,即v=2,通过对比确定第一版本信息与第一参考版本信息一致,则该网络设备接受客户端b的请求,成功执行编辑操作以进行配置更新,且该网络设备在成功配置更新后将记录的第一参考版本信息更新为3,即v=3。在t4时刻,该网络设备向客户端b发送一个配置成功响应报文,该配置成功响应报文指示成功配置,且携带更新后的第一参考版本信息,即v=3。
[0286]
在t2时刻之后,客户端a在本端编辑配置数据,期望再次对第一数据对象中的配置数据进行更新。在t5时刻,客户端a又向该网络设备发送了一个配置请求报文,该配置请求报文指示对该数据对象执行编辑操作,且携带客户端a记录的第一版本信息为2,即v=2。该网络设备接收到该配置请求报文之后,查询自身记录的第一参考版本信息为3,即v=3,通过对比确定第一版本信息与第一参考版本信息不一致,则该网络设备拒绝客户端a的请求。
在t6时刻,网络设备向客户端a发送一个配置失败响应报文,该配置失败响应报文指示配置失败,且携带当前记录的第一参考版本信息,即v=3。
[0287]
以上介绍了客户端基于netconf对网络设备进行配置更新的方法,由网络设备参与检测版本信息的一致性,能够很大程度上避免配置更新的冲突。另外,可以看出,本技术实施例提供了一套完整的访问控制机制来减少配置冲突。本技术实施例提供的访问控制机制包括乐观锁能力通知、锁保护的添加和删除、乐观锁信息(即版本信息)的维护和查询,以及配置更新时乐观锁的应用(即检测版本信息的一致性)。在具体实现中,可以通过扩展netconf来实现本方案,例如定义新的rpc操作,如get-revision操作、set-ol-capability操作,修改原有的rpc操作,如在hello报文中增加一个《capability》参数以通知乐观锁支持能力。需要说明的是,以上介绍的一些具体实现方式并不用于限制本技术,客户端与网络设备之间也可以通过其他一些可能的实现方式来实现本方案。
[0288]
综上所述,在本技术实施例中,某个客户端在对网络设备进行配置更新时,该客户端可以在不锁定该数据对象的情况下向网络设备发送netconf配置请求报文,在网络设备检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,网络设备对该数据对象进行配置更新。或者,客户端在检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,向网络设备发送netconf配置请求报文。这样,该客户端无需对需要配置更新的数据对象进行上锁,提高了并发控制的效率,减少了多个客户端之间的配置冲突,也即对其他客户端的影响较小。
[0289]
图5是本技术实施例提供的另一种配置更新方法的流程图。在图5实施例中客户端单独检测版本信息的一致性。请参考图5,该方法包括如下步骤。
[0290]
步骤501:在第一客户端检测第一版本信息与第一参考版本信息一致的情况下,第一客户端向网络设备发送netconf配置请求报文,其中,第一版本信息为第一客户端记录的第一数据对象的版本信息,第一参考版本信息为该网络设备记录的第一数据对象的版本信息,该配置请求报文包括操作指示信息,该操作指示信息指示第一客户端请求该网络设备对第一数据对象所执行的操作。
[0291]
在本技术实施例中,第一客户端在期望对网络设备进行配置更新时,先检测第一版本信息与第一参考版本信息是否一致,其中,第一版本信息为第一客户端记录的第一数据对象的版本信息,第一参考版本信息为该网络设备记录的第一数据对象的版本信息。在第一客户端检测第一版本信息与第一参考版本信息一致的情况下,第一客户端向网络设备发送配置请求报文。其中,该配置请求报文包括操作指示信息,该操作指示信息指示第一客户端请求该网络设备对第一数据对象所执行的操作。
[0292]
由前述可知,第一客户端检测版本信息的一致性的话,需要先获取网络设备记录的第一数据对象的版本信息。接下来介绍第一客户端获取网络设备记录的第一数据对象的版本信息的两种实现方式。
[0293]
第一客户端获取网络设备记录的第一数据对象的版本信息的一种实现方式为:第一客户端向网络设备发送查询报文,查询报文包括第一数据对象的标识。第一客户端接收网络设备发送的查询响应报文,查询响应报文包括网络设备记录的第一数据对象的版本信息。也即是,第一客户端通过即时查询的方式获取网络设备记录的第一数据对象的版本信息。
[0294]
第一客户端获取网络设备记录的第一数据对象的版本信息的另一种实现方式为:第一客户端接收网络设备发送的数据变更通知报文,该数据变更通知报文包括网络设备记录的第一数据对象的版本信息,该数据变更通知报文为第一客户端订阅关于第一数据对象中配置数据的变更通知的情况下接收的。也即是,第一客户端通过订阅的方式获取网络设备记录的第一数据对象的版本信息。
[0295]
以上两种实现方式与前述图3实施例的步骤301中相关内容是一致的,步骤501中第一客户端获取网络设备记录的第一数据对象的版本信息的两种实现方式可以参照前述步骤301中的相关介绍,这里不再赘述。
[0296]
在第一客户端检测第一版本信息与第一参考版本信息不一致的情况下,第一客户端可以暂停配置更新。即使第一客户端在这种情况下仍向网络设备发送配置请求报文,网络设备也不会接受第一客户端的请求。
[0297]
步骤502:网络设备接收该配置请求报文,对第一数据对象执行该操作。
[0298]
在本技术实施例中,若网络设备接收到了第一客户端发送的配置请求报文,表示第一客户端已经检测第一版本信息与第一参考版本信息一致,那么网络设备可以无需检测版本信息一致性,网络设备基于该配置请求报文包括的操作指示信息对第一数据对象执行相应操作。
[0299]
需要说明的是,在这种情况下,网络设备成功执行该操作的概率较大。而在个别情况下,网络设备可能配置更新失败,例如,由于处理效率、网络延迟等原因导致第一客户端检测版本信息一致性的时刻与网络设备接收到该配置请求报文的时刻有较长的时间间隔,在这个时间间隔内网络设备可能接受了其他的客户端的请求而对第一数据对象中的配置数据进行了修改,这种情况下,第一客户端获取的第一参考版本信息并不是网络设备记录的最新版本信息。或者,由于网络设备自身故障、第一客户端请求的操作有误等原因,网络设备也可能会配置更新失败。
[0300]
还需要说明的是,图5实施例所介绍的由第一客户端单独检测版本信息一致性的实现方式,与图3实施例的区别仅在于检测版本信息的一致性的执行主体存在不同,图3实施例中所介绍的其他内容在图5实施例中同样适用,在图5中不再重复介绍。
[0301]
接下来请参照图6对图5实施例介绍的配置更新方法再次进行示例性说明。
[0302]
在图6中,假设第一客户端检测版本信息的一致性,版本信息为通过累加进行更新的版本号,客户端a和客户端b均可以对该网络设备进行配置更新。
[0303]
客户端a在本端编辑配置数据,以期望对网络设备的第一数据对象中的配置数据进行修改,客户端a记录的第一版本信息为1,即v=1。在t1时刻,客户端a向网络设备请求获取第一参考版本信息(如通过get-revision操作)。在t2时刻,网络设备向客户端a反馈的第一参考版本信息为1,即v=1。客户端a通过对比确定第一版本信息和第一参考版本信息一致,则在t3时刻,客户端a向网络设备发送一个配置请求报文,该配置请求报文指示对第一数据对象执行编辑操作。网络设备接收该配置请求报文之后,对第一数据对象执行配置操作以进行配置更新,且该网络设备在成功更新配置后将记录的第一参考版本信息更新为2,即v=2。在t4时刻,该网络设备向客户端a发送一个配置成功响应报文,该配置成功响应报文指示成功配置。客户端a接收到该配置成功响应报文之后,可以更新自身所记录的第一版本信息为2。
[0304]
客户端b在本端编辑配置数据,以期望对网络设备的第一数据对象中的配置数据进行修改,客户端b记录的第一版本信息为2,即v=2。在t5时刻,客户端b向网络设备请求获取第一参考版本信息(如通过get-revision操作)。在t6时刻,网络设备向客户端b反馈的第一参考版本信息为2,即v=2。客户端b通过对比确定第一版本信息和第一参考版本信息一致,则在t7时刻,客户端b向网络设备发送一个配置请求报文,该配置请求报文指示对第一数据对象执行编辑操作。网络设备接收该配置请求报文之后,对第一数据对象执行配置操作以进行配置更新,且该网络设备在成功更新配置后将记录的第一参考版本信息更新为3,即v=3。在t8时刻,该网络设备向客户端b发送一个配置成功响应报文,该配置成功响应报文指示成功配置。
[0305]
客户端a再次在本端编辑配置数据,以期望对网络设备的第一数据对象中的配置数据进行修改,客户端a此时记录的第一版本信息为2,即v=2。在t9时刻,客户端a向网络设备请求获取第一参考版本信息(如通过get-revision操作)。在t10时刻,网络设备向客户端a反馈的第一参考版本信息为3,即v=3。客户端a通过对比确定第一版本信息和第一参考版本信息不一致,则客户端a暂缓本次的配置请求。
[0306]
综上所述,在本技术实施例中,某个客户端在对网络设备进行配置更新时,该客户端可以在不锁定该数据对象的情况下向网络设备发送netconf配置请求报文,在网络设备检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,网络设备对该数据对象进行配置更新。或者,客户端在检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,向网络设备发送netconf配置请求报文。这样,该客户端无需对需要配置更新的数据对象进行上锁,提高了并发控制的效率,减少了多个客户端之间的配置冲突,也即对其他客户端的影响较小。
[0307]
图7是本技术实施例提供的一种配置更新的装置700的结构示意图,该配置更新的装置700可以由软件、硬件或者两者的结合实现成为通信设备的部分或者全部,该通信设备可以为图1至图6实施例中的网络设备。在本技术实施例中,该装置700用于网络设备。参见图7,该装置700包括:第一接收模块701和配置更新模块702。
[0308]
第一接收模块701,用于接收第一客户端发送的网络配置协议netconf配置请求报文,netconf配置请求报文包括操作指示信息,该操作指示信息指示第一客户端请求网络设备对第一数据对象所执行的操作,该操作指示信息包括第一版本信息,第一版本信息为第一客户端记录的第一数据对象的版本信息,第一数据对象包括网络设备的配置数据;
[0309]
配置更新模块702,用于在网络设备检测第一版本信息与第一参考版本信息一致的情况下,对第一数据对象执行操作,第一参考版本信息为网络设备记录的第一数据对象的版本信息。
[0310]
可选地,netconf配置请求报文为第一客户端检测第一版本信息与第一参考版本信息一致的情况下发送的。
[0311]
可选地,该装置700还包括:
[0312]
第二接收模块,用于接收第一客户端发送的查询报文,该查询报文包括第一数据对象的标识;
[0313]
第一发送模块,用于向第一客户端发送查询响应报文,该查询响应报文包括网络设备记录的第一数据对象的版本信息。
[0314]
可选地,该装置700还包括:
[0315]
第二发送模块,用于向第一客户端发送数据变更通知报文,该数据变更通知报文包括网络设备记录的第一数据对象的版本信息,该数据变更通知报文为网络设备在第一客户端订阅关于第一数据对象中数据的变更通知的情况下发送的。
[0316]
可选地,版本信息包括时间戳,第一参考版本信息是网络设备记录的网络设备完成对第一数据对象执行操作的系统时间,或,第一参考版本信息是网络设备记录的网络设备开始对第一数据对象执行操作的系统时间。
[0317]
可选地,该装置700还包括:
[0318]
处理模块,用于完成对第一数据对象执行该操作;
[0319]
记录模块,用于记录第一参考版本信息。
[0320]
可选地,记录模块包括:
[0321]
第一记录子模块,用于在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度的情况下,更新并记录第一参考版本信息。
[0322]
可选地,该操作指示信息还包括第二数据对象的标识,第一数据对象为第二数据对象的子数据对象,第二参考版本信息为网络设备记录的第二数据对象的版本信息;
[0323]
记录模块包括:
[0324]
第二记录子模块,用于在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,且第二参考版本信息对应的第二数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度的情况下,更新并记录第一参考版本信息和第二参考版本信息。
[0325]
可选地,该操作指示信息还包括第三数据对象的标识,第一数据对象为第三数据对象的子数据对象,第三参考版本信息为网络设备记录的第三数据对象的版本信息,网络设备设置的访问控制功能支持反选机制;
[0326]
记录模块包括:
[0327]
第三记录子模块,用于在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,第三参考版本信息对应的第三数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,且网络设备设置的访问控制功能的反选机制参数不包括第一数据对象的标识的情况下,更新并记录第一参考版本信息和第三参考版本信息;
[0328]
第四记录子模块,用于在第一参考版本信息对应的第一数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,第三参考版本信息对应的第三数据对象的数据粒度满足网络设备设置的访问控制功能的数据粒度,且网络设备设置的访问控制功能的反选机制参数包括第一数据对象的标识的情况下,更新并记录第一参考版本信息。
[0329]
可选地,该装置700还包括:
[0330]
第三接收模块,用于接收第一客户端发送的设置访问控制功能请求报文,该设置访问控制功能请求报文包括第一数据对象的标识;
[0331]
设置模块,用于如果网络设备基于第一数据对象的标识确定第一数据对象满足设置访问控制功能条件,则基于第一数据对象的标识,为第一数据对象设置版本信息初始值;
[0332]
第三发送模块,用于向第一客户端发送设置成功响应报文,该设置成功响应报文
指示第一客户端记录第一数据对象的版本信息。
[0333]
可选地,该设置成功响应报文包括版本信息初始值;或者,该设置成功响应报文指示第一客户端为第一数据对象设置版本信息初始值。
[0334]
可选地,设置访问控制功能条件包括:网络设备支持设置访问控制功能,且第一数据对象还不存在版本信息。
[0335]
可选地,设置访问控制功能条件还包括:第一数据对象的数据粒度满足网络设备支持的设置访问控制功能的数据粒度。
[0336]
可选地,该设置访问控制功能请求报文还包括反选机制参数,反选机制参数包括一个或多个第四数据对象的标识,第四数据对象为第一数据对象的子数据对象。
[0337]
可选地,该装置700还包括:
[0338]
第四接收模块,用于接收第一客户端发送的删除设置访问控制功能请求报文,该删除设置访问控制功能请求报文包括第一数据对象的标识;
[0339]
删除模块,用于如果网络设备基于第一数据对象的标识确定第一数据对象满足设置访问控制功能删除条件,则基于第一数据对象的标识,删除第一数据对象的版本信息。
[0340]
可选地,设置访问控制功能删除条件包括:网络设备支持设置访问控制功能,且网络设备记录有第一数据对象的版本信息。
[0341]
可选地,该装置700还包括:
[0342]
第四发送模块,用于向第一客户端发送能力通知报文,该能力通知报文包括访问控制功能的支持能力参数,该支持能力参数用于指示网络设备是否支持设置访问控制功能。
[0343]
可选地,该能力通知报文还包括访问控制功能的支持粒度参数,支持粒度参数用于指示网络设备支持设置访问控制功能的数据粒度,数据粒度包括数据集粒度、yang模块粒度和数据节点粒度中的一个或多个。
[0344]
可选地,该操作包括复制操作,该操作指示信息还包括第五版本信息,第五版本信息为第一客户端记录的第五数据对象的版本信息,第五数据对象包括网络设备的配置数据,复制操作用于用第五数据对象中的配置数据覆盖第一数据对象中的配置数据;
[0345]
配置更新模块702包括:
[0346]
配置更新子模块,用于在网络设备检测第一版本信息与第一参考版本信息一致且第五版本信息与第五参考版本信息一致的情况下,对第一数据对象执行操作,第五参考版本信息为网络设备记录的第五数据对象的版本信息。
[0347]
在本技术实施例中,某个客户端在对网络设备进行配置更新时,该客户端可以在不锁定该数据对象的情况下向网络设备发送netconf配置请求报文,在网络设备检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,网络设备对该数据对象进行配置更新。或者,客户端在检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,向网络设备发送netconf配置请求报文。这样,该客户端无需对需要配置更新的数据对象进行上锁,提高了并发控制的效率,减少了多个客户端之间的配置冲突,也即对其他客户端的影响较小。
[0348]
需要说明的是:上述实施例提供的配置更新的装置在配置更新时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能
模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的配置更新的装置与配置更新的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0349]
图8是本技术实施例提供的一种配置更新的装置800的结构示意图,该配置更新的装置700可以由软件、硬件或者两者的结合实现成为通信设备的部分或者全部,该通信设备可以为图1至图6实施例中的第一客户端。在本技术实施例中,该装置800用于第一客户端。参见图8,该装置800包括:第一发送模块801。
[0350]
第一发送模块801,用于向网络设备发送网络配置协议netconf配置请求报文,netconf配置请求报文包括操作指示信息,该操作指示信息指示第一客户端请求网络设备对第一数据对象所执行的操作,该操作指示信息包括第一版本信息,第一版本信息为第一客户端记录的第一数据对象的版本信息,第一数据对象包括网络设备的配置数据;
[0351]
其中,该配置请求报文用于在网络设备检测第一版本信息与第一参考版本信息一致的情况下指示网络设备对第一数据对象执行该操作,第一参考版本信息为网络设备记录的第一数据对象的版本信息。
[0352]
可选地,该装置800还包括:
[0353]
接收模块,用于接收网络设备发送的配置成功响应报文;
[0354]
记录模块,用于记录第一版本信息。
[0355]
可选地,该配置成功响应报文包括更新后的第一参考版本信息;
[0356]
记录模块包括:
[0357]
记录子模块,用于将第一版本信息更新并记录为该更新后的第一参考版本信息。
[0358]
在本技术实施例中,某个客户端在对网络设备进行配置更新时,该客户端可以在不锁定该数据对象的情况下向网络设备发送netconf配置请求报文,在网络设备检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,网络设备对该数据对象进行配置更新。或者,客户端在检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,向网络设备发送netconf配置请求报文。这样,该客户端无需对需要配置更新的数据对象进行上锁,提高了并发控制的效率,减少了多个客户端之间的配置冲突,也即对其他客户端的影响较小。
[0359]
需要说明的是:上述实施例提供的配置更新的装置在配置更新时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的配置更新的装置与配置更新的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0360]
图9是本技术实施例提供的一种配置更新的装置900的结构示意图,该配置更新的装置900可以由软件、硬件或者两者的结合实现成为通信设备的部分或者全部,该通信设备可以为图1至图6实施例中的第一客户端。在本技术实施例中,该装置用于第一客户端。参见图9,该装置900包括:第一发送模块901。
[0361]
第一发送模块901,用于在第一客户端检测第一版本信息与第一参考版本信息一致的情况下,向网络设备发送网络配置协议netconf配置请求报文;
[0362]
其中,第一版本信息为第一客户端记录的第一数据对象的版本信息,第一参考版
本信息为网络设备记录的第一数据对象的版本信息,netconf配置请求报文包括操作指示信息,该操作指示信息指示第一客户端请求网络设备对第一数据对象所执行的操作。
[0363]
可选地,该装置900还包括:
[0364]
第二发送模块,用于向网络设备发送查询报文,该查询报文包括第一数据对象的标识;
[0365]
第一接收模块,用于接收网络设备发送的查询响应报文,该查询响应报文包括网络设备记录的第一数据对象的版本信息。
[0366]
可选地,该装置900还包括:
[0367]
第二接收模块,用于接收网络设备发送的数据变更通知报文,该数据变更通知报文包括网络设备记录的第一数据对象的版本信息,该数据变更通知报文为第一客户端订阅关于第一数据对象中数据的变更通知的情况下接收的。
[0368]
在本技术实施例中,某个客户端在对网络设备进行配置更新时,该客户端可以在不锁定该数据对象,且检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,向网络设备发送netconf配置请求报文。这样,该客户端无需对需要配置更新的数据对象进行上锁,提高了并发控制的效率,减少了多个客户端之间的配置冲突,也即对其他客户端的影响较小。
[0369]
需要说明的是:上述实施例提供的配置更新的装置在配置更新时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的配置更新的装置与配置更新的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0370]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,dsl))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,dvd))或半导体介质(例如:固态硬盘(solid state disk,ssd))等。值得注意的是,本技术实施例提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
[0371]
应当理解的是,本文提及的“至少一个”是指一个或多个,“多个”是指两个或两个以上。在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,为了便于清楚
描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
[0372]
以上所述为本技术提供的实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。

技术特征:


1.一种配置更新的方法,其特征在于,所述方法包括:网络设备接收第一客户端发送的网络配置协议netconf配置请求报文,所述netconf配置请求报文包括操作指示信息,所述操作指示信息指示所述第一客户端请求所述网络设备对第一数据对象所执行的操作,所述操作指示信息包括第一版本信息,所述第一版本信息为所述第一客户端记录的所述第一数据对象的版本信息,所述第一数据对象包括所述网络设备的配置数据;在所述网络设备检测所述第一版本信息与第一参考版本信息一致的情况下,所述网络设备对所述第一数据对象执行所述操作,所述第一参考版本信息为所述网络设备记录的所述第一数据对象的版本信息。2.如权利要求1所述的方法,其特征在于,所述netconf配置请求报文为所述第一客户端检测所述第一版本信息与所述第一参考版本信息一致的情况下发送的。3.如权利要求2所述的方法,其特征在于,所述方法还包括:所述网络设备接收所述第一客户端发送的查询报文,所述查询报文包括所述第一数据对象的标识;所述网络设备向所述第一客户端发送查询响应报文,所述查询响应报文包括所述网络设备记录的所述第一数据对象的版本信息。4.如权利要求2或3所述的方法,其特征在于,所述方法还包括:所述网络设备向所述第一客户端发送数据变更通知报文,所述数据变更通知报文包括所述网络设备记录的所述第一数据对象的版本信息,所述数据变更通知报文为所述网络设备在所述第一客户端订阅关于所述第一数据对象中数据的变更通知的情况下发送的。5.如权利要求1-4任一所述的方法,其特征在于,所述版本信息包括时间戳,所述第一参考版本信息是所述网络设备记录的所述网络设备完成对所述第一数据对象执行所述操作的系统时间,或,所述第一参考版本信息是所述网络设备记录的所述网络设备开始对所述第一数据对象执行所述操作的系统时间。6.如权利要求1-5任一所述的方法,其特征在于,所述方法还包括:所述网络设备完成对所述第一数据对象执行所述操作;所述网络设备记录所述第一参考版本信息。7.如权利要求6所述的方法,其特征在于,所述网络设备记录所述第一参考版本信息,包括:在所述第一参考版本信息对应的所述第一数据对象的数据粒度满足所述网络设备设置的访问控制功能的数据粒度的情况下,所述网络设备更新并记录所述第一参考版本信息。8.如权利要求6所述的方法,其特征在于,所述操作指示信息还包括第二数据对象的标识,所述第一数据对象为所述第二数据对象的子数据对象,第二参考版本信息为所述网络设备记录的所述第二数据对象的版本信息,所述网络设备记录所述第一参考版本信息,包括:在所述第一参考版本信息对应的所述第一数据对象的数据粒度满足所述网络设备设置的访问控制功能的数据粒度,且所述第二参考版本信息对应的所述第二数据对象的数据粒度满足所述网络设备设置的访问控制功能的数据粒度的情况下,所述网络设备更新并记
录所述第一参考版本信息和所述第二参考版本信息。9.如权利要求6所述的方法,其特征在于,所述操作指示信息还包括第三数据对象的标识,所述第一数据对象为所述第三数据对象的子数据对象,第三参考版本信息为所述网络设备记录的所述第三数据对象的版本信息,所述网络设备设置的访问控制功能支持反选机制,所述网络设备记录所述第一参考版本信息,包括:在所述第一参考版本信息对应的所述第一数据对象的数据粒度满足所述网络设备设置的访问控制功能的数据粒度,所述第三参考版本信息对应的所述第三数据对象的数据粒度满足所述网络设备设置的访问控制功能的数据粒度,且所述网络设备设置的访问控制功能的反选机制参数不包括所述第一数据对象的标识的情况下,所述网络设备更新并记录所述第一参考版本信息和所述第三参考版本信息;或在所述第一参考版本信息对应的所述第一数据对象的数据粒度满足所述网络设备设置的访问控制功能的数据粒度,所述第三参考版本信息对应的所述第三数据对象的数据粒度满足所述网络设备设置的访问控制功能的数据粒度,且所述网络设备设置的访问控制功能的反选机制参数包括所述第一数据对象的标识的情况下,所述网络设备更新并记录所述第一参考版本信息。10.如权利要求1-9任一所述的方法,其特征在于,所述方法还包括:所述网络设备接收所述第一客户端发送的设置访问控制功能请求报文,所述设置访问控制功能请求报文包括所述第一数据对象的标识;如果所述网络设备基于所述第一数据对象的标识确定所述第一数据对象满足设置访问控制功能条件,则所述网络设备基于所述第一数据对象的标识,为所述第一数据对象设置版本信息初始值;所述网络设备向所述第一客户端发送设置成功响应报文,所述设置成功响应报文指示所述第一客户端记录所述第一数据对象的版本信息。11.如权利要求10所述的方法,其特征在于,所述设置成功响应报文包括所述版本信息初始值;或者,所述设置成功响应报文指示所述第一客户端为所述第一数据对象设置所述版本信息初始值。12.如权利要求10或11所述的方法,其特征在于,所述设置访问控制功能条件包括:所述网络设备支持设置访问控制功能,且所述第一数据对象还不存在版本信息。13.如权利要求12所述的方法,其特征在于,所述设置访问控制功能条件还包括:所述第一数据对象的数据粒度满足所述网络设备支持的设置访问控制功能的数据粒度。14.如权利要求10-13任一所述的方法,其特征在于,所述设置访问控制功能请求报文还包括反选机制参数,所述反选机制参数包括一个或多个第四数据对象的标识,所述第四数据对象为所述第一数据对象的子数据对象。15.如权利要求1-14任一所述的方法,其特征在于,所述方法还包括:所述网络设备接收所述第一客户端发送的删除设置访问控制功能请求报文,所述删除设置访问控制功能请求报文包括所述第一数据对象的标识;如果所述网络设备基于所述第一数据对象的标识确定所述第一数据对象满足设置访问控制功能删除条件,则所述网络设备基于所述第一数据对象的标识,删除所述第一数据对象的版本信息。
16.如权利要求1-15任一所述的方法,其特征在于,所述方法还包括:所述网络设备向所述第一客户端发送能力通知报文,所述能力通知报文包括访问控制功能的支持能力参数,所述支持能力参数用于指示所述网络设备是否支持设置访问控制功能。17.如权利要求16所述的方法,其特征在于,所述能力通知报文还包括访问控制功能的支持粒度参数,所述支持粒度参数用于指示所述网络设备支持设置访问控制功能的数据粒度,所述数据粒度包括数据集粒度、yang模块粒度和数据节点粒度中的一个或多个。18.一种配置更新的方法,其特征在于,所述方法包括:第一客户端向网络设备发送网络配置协议netconf配置请求报文,所述netconf配置请求报文包括操作指示信息,所述操作指示信息指示所述第一客户端请求所述网络设备对所述第一数据对象所执行的操作,所述操作指示信息包括第一版本信息,所述第一版本信息为所述第一客户端记录的所述第一数据对象的版本信息,所述第一数据对象包括所述网络设备的配置数据;所述配置请求报文用于在所述网络设备检测所述第一版本信息与第一参考版本信息一致的情况下指示所述网络设备对所述第一数据对象执行所述操作,所述第一参考版本信息为所述网络设备记录的所述第一数据对象的版本信息。19.如权利要求18所述的方法,其特征在于,所述第一客户端向网络设备发送网络配置协议netconf配置请求报文之后,还包括:所述第一客户端接收所述网络设备发送的配置成功响应报文;所述第一客户端记录所述第一版本信息。20.如权利要求19所述的方法,其特征在于,所述配置成功响应报文包括更新后的第一参考版本信息;所述第一客户端记录所述第一版本信息,包括:所述第一客户端将所述第一版本信息更新并记录为所述更新后的第一参考版本信息。21.一种配置更新的装置,其特征在于,所述装置用于网络设备,所述装置包括:第一接收模块,用于接收第一客户端发送的网络配置协议netconf配置请求报文,所述netconf配置请求报文包括操作指示信息,所述操作指示信息指示所述第一客户端请求所述网络设备对第一数据对象所执行的操作,所述操作指示信息包括第一版本信息,所述第一版本信息为所述第一客户端记录的所述第一数据对象的版本信息,所述第一数据对象包括所述网络设备的配置数据;配置更新模块,用于在所述网络设备检测所述第一版本信息与第一参考版本信息一致的情况下,对所述第一数据对象执行所述操作,所述第一参考版本信息为所述网络设备记录的所述第一数据对象的版本信息。22.如权利要求21所述的装置,其特征在于,所述netconf配置请求报文为所述第一客户端检测所述第一版本信息与所述第一参考版本信息一致的情况下发送的。23.如权利要求22所述的装置,其特征在于,所述装置还包括:第二接收模块,用于接收所述第一客户端发送的查询报文,所述查询报文包括所述第一数据对象的标识;第一发送模块,用于向所述第一客户端发送查询响应报文,所述查询响应报文包括所
述网络设备记录的所述第一数据对象的版本信息。24.如权利要求22或23所述的装置,其特征在于,所述装置还包括:第二发送模块,用于向所述第一客户端发送数据变更通知报文,所述数据变更通知报文包括所述网络设备记录的所述第一数据对象的版本信息,所述数据变更通知报文为所述网络设备在所述第一客户端订阅关于所述第一数据对象中数据的变更通知的情况下发送的。25.如权利要求21-24任一所述的装置,其特征在于,所述装置还包括:处理模块,用于完成对所述第一数据对象执行所述操作;记录模块,用于记录所述第一参考版本信息。26.如权利要求25所述的装置,其特征在于,所述记录模块包括:第一记录子模块,用于在所述第一参考版本信息对应的所述第一数据对象的数据粒度满足所述网络设备设置的访问控制功能的数据粒度的情况下,更新并记录所述第一参考版本信息。27.如权利要求25所述的装置,其特征在于,所述操作指示信息还包括第二数据对象的标识,所述第一数据对象为所述第二数据对象的子数据对象,第二参考版本信息为所述网络设备记录的所述第二数据对象的版本信息;所述记录模块包括:第二记录子模块,用于在所述第一参考版本信息对应的所述第一数据对象的数据粒度满足所述网络设备设置的访问控制功能的数据粒度,且所述第二参考版本信息对应的所述第二数据对象的数据粒度满足所述网络设备设置的访问控制功能的数据粒度的情况下,更新并记录所述第一参考版本信息和所述第二参考版本信息。28.如权利要求21-27任一所述的装置,其特征在于,所述装置还包括:第三接收模块,用于接收所述第一客户端发送的设置访问控制功能请求报文,所述设置访问控制功能请求报文包括所述第一数据对象的标识;设置模块,用于如果所述网络设备基于所述第一数据对象的标识确定所述第一数据对象满足设置访问控制功能条件,则基于所述第一数据对象的标识,为所述第一数据对象设置版本信息初始值;第三发送模块,用于向所述第一客户端发送设置成功响应报文,所述设置成功响应报文指示所述第一客户端记录所述第一数据对象的版本信息。29.如权利要求28所述的装置,其特征在于,所述设置成功响应报文包括所述版本信息初始值;或者,所述设置成功响应报文指示所述第一客户端为所述第一数据对象设置所述版本信息初始值。30.如权利要求28或29所述的装置,其特征在于,所述设置访问控制功能条件包括:所述网络设备支持设置访问控制功能,且所述第一数据对象还不存在版本信息。31.如权利要求21-30任一所述的装置,其特征在于,所述装置还包括:第四接收模块,用于接收所述第一客户端发送的删除设置访问控制功能请求报文,所述删除设置访问控制功能请求报文包括所述第一数据对象的标识;删除模块,用于如果所述网络设备基于所述第一数据对象的标识确定所述第一数据对象满足设置访问控制功能删除条件,则基于所述第一数据对象的标识,删除所述第一数据
对象的版本信息。32.如权利要求21-31任一所述的装置,其特征在于,所述装置还包括:第四发送模块,用于向所述第一客户端发送能力通知报文,所述能力通知报文包括访问控制功能的支持能力参数,所述支持能力参数用于指示所述网络设备是否支持设置访问控制功能。33.一种配置更新的装置,其特征在于,所述装置用于第一客户端,所述装置包括:第一发送模块,用于向网络设备发送网络配置协议netconf配置请求报文,所述netconf配置请求报文包括操作指示信息,所述操作指示信息指示所述第一客户端请求所述网络设备对所述第一数据对象所执行的操作,所述操作指示信息包括第一版本信息,所述第一版本信息为所述第一客户端记录的所述第一数据对象的版本信息,所述第一数据对象包括所述网络设备的配置数据;所述配置请求报文用于在所述网络设备检测所述第一版本信息与第一参考版本信息一致的情况下指示所述网络设备对所述第一数据对象执行所述操作,所述第一参考版本信息为所述网络设备记录的所述第一数据对象的版本信息。34.如权利要求33所述的装置,其特征在于,所述装置还包括:接收模块,用于接收所述网络设备发送的配置成功响应报文;记录模块,用于记录所述第一版本信息。35.如权利要求34所述的装置,其特征在于,所述配置成功响应报文包括更新后的第一参考版本信息;所述记录模块包括:记录子模块,用于将所述第一版本信息更新并记录为所述更新后的第一参考版本信息。36.一种配置更新的系统,其特征在于,所述系统包括多个客户端和网络设备,所述多个客户端用于通过网络配置协议netconf配置所述网络设备,第一客户端为所述多个客户端中的一个;所述网络设备用于实现权利要求1-17任一所述的方法的步骤;所述第一客户端用于实现权利要求18-20任一所述的方法的步骤。37.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-17任一所述的方法的步骤,或者,实现权利要求18-20任一所述的方法的步骤。

技术总结


本申请实施例公开了一种配置更新的方法、装置、系统及计算机可读存储介质,属于通信技术领域。在本申请实施例中,某个客户端在对网络设备进行配置更新时,该客户端可以在不锁定该数据对象的情况下向网络设备发送NETCONF配置请求报文,在网络设备检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,网络设备对该数据对象进行配置更新。或者,客户端在检测到客户端与网络设备分别记录的该数据对象的版本信息一致的情况下,向网络设备发送NETCONF配置请求报文。这样,该客户端无需对需要配置更新的数据对象进行上锁,提高了并发控制的效率,减少了多个客户端之间的配置冲突,也即对其他客户端的影响较小。也即对其他客户端的影响较小。也即对其他客户端的影响较小。


技术研发人员:

马秋方 吴钦 冯冲

受保护的技术使用者:

华为技术有限公司

技术研发日:

2021.07.29

技术公布日:

2023/2/6

本文发布于:2024-09-21 10:38:39,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/66946.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   网络设备   对象   版本
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议