一种梳理网络设备垃圾策略配置的方法及装置
技术领域
本发明涉及网络运维或者割接领域,尤其是一种梳理网络设备垃圾策略配置的方法及装置。
背景技术
因网络防控等需求,网络中需要配置大量的各种策略,由于不同时期、不同的人配置的策略,导致配置名称、顺序等各种信息不一致以及重复性问题凸显,常规的方法是靠人工逐条去比对,查找效率非常低下。特别是网络割接后一些策略未做必要的删除操作,导致大量的垃圾策略配置被保留,为后面割接和维护增加不必要的麻烦。
策略模板举例1:
acl number 2001
rule 0 permit source X.X.X.X 0.0.0.255
rule 5 permit source X.X.X.X 0.0.0.255
rule 10 permit source X.X.X.X 0.0.0.255
rule 15 permit source X.X.X.X 0.0.0.255
#
traffic classifier XXX-IP-ZHONGYAO operator or
if-match acl 2001//也可以是ip-prefix(同ACL类似,也是定义匹配的地址)
#
traffic behavior XXX-IP-ZHONGYAO
remark dscp 53
#
traffic policy ttred
classifier ttred behavior ttred
#
interface Eth-Trunk1
ip address X.X.X.X 255.255.255.252
isis enable 1
isis circuit-level level-2
traffic-policy bingdu inbound
策略模板举例2:
接口引用
interface Vlan4
ip address 10.2.4.1 255.255.255.0
ip helper-address 10.2.3.5
ip policy route-map×××
!访问控制策略
access-list 101permit ip 10.2.4.00.0.0.255 192.168.10.00.0.0.255
access-list 102permit ip 10.2.4.00.0.0.255any
!路由图
route-map×××permit 10
match ip address 101
set ip default next-hop 10.2.3.254
!
发明内容
为克服网络运维或者是割接工作过程中,大量的未梳理策略导致的维护或者割接难度增大和割接风险升高的问题,本发明提供一种梳理网络设备垃圾策略配置的方法及装置,根据预定义策略模板信息以及设备配置信息,可快速准确地完成对定义了但未被调用策略的梳理,提升工作效率,减少人工成本及失误率。
为实现上述目的,本发明采用下述技术方案:
在本发明一实施例中,提出了一种梳理网络设备垃圾策略配置的方法,该方法包括:
采集网络设备配置数据并存储为文本文件;
手动给出采集策略的标准配置模板,并在每个标准配置模板每行数据中自定义关键字;
逐行读取配置的文本文件,对上一步中识别的关键字进行加工;
使用上述关键字,配合条件语句,逐行匹配配置的文本文件中内容,满足上述条件的配置存储到列表list1中;
根据需要将定义部分的关键字和调用部分的关键字进行匹配,求出补集,验证定义的有没有被调用,从而确定哪些定义的策略是垃圾策略。
进一步地,策略的标准配置模板分为四部分,第一部分是定义匹配条件,第二部分是定义策略主体,第三部分是策略主体内调用定义的匹配条件,第四部分是最终调用所定义的策略。
进一步地,对上一步中识别的关键字进行加工,包括:
关键字为三个的直接使用;为二个的,自动添加一个第三个关键字作为满足NO的条件;为一个的,复制一个满足YES条件,自动添加一个第三个关键字作为满足NO的条件。
进一步地,列表list1中存储的配置包含有匹配条件、策略主体名称、策略调用的条件以及策略被其他配置调用情况。
进一步地,根据需要将定义部分的关键字和调用部分的关键字进行匹配,求出补集,验证定义的有没有被调用,从而确定哪些定义的策略是垃圾策略,包括:
使用定义了策略的关键字和调用该策略的配置关键字,分别抓取上一步中配置的文本文件中匹配的行数据相应部分,之后求出补集,从而确定哪些定义了的策略没有被使用;
根据上一步的结果和策略名称输出补集;
使用定义了条件的关键字和调用该条件的配置关键字,分别抓取上一步中配置的文本文件中匹配的行数据相应部分,之后求出补集,从而确定哪些定义了的条件没有被调用;
根据上一步的结果和策略名称输出补集;
合并求出的补集,最后梳理出来即为未被调用的垃圾信息。
进一步地,每个配置模板每行数据中自定义的关键字为唯一标识该行数据的关键字。
进一步地,文本文件为txt格式文件。
在本发明一实施例中,还提出了一种梳理网络设备垃圾策略配置的装置,该装置包括:
数据采集模块,用于采集网络设备配置数据并存储为S1.txt;
关键字自定义模块,用于手动给出采集策略的标准配置模板,并在每个标准配置模板每行数据中自定义关键字;
关键字加工模块,用于逐行读取配置的S1.txt,对上一步中识别的关键字进行加工;
关键字匹配模块,用于使用上述关键字,配合条件语句,逐行匹配配置的S1.txt中内容,满足上述条件的配置存储到列表list1中;
策略验证模块,用于根据需要将定义部分的关键字和调用部分的关键字进行匹配,求出补集,验证定义的有没有被调用,从而确定哪些定义的策略是垃圾策略。
在本发明一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述梳理网络设备垃圾策略配置的方法。
在本发明一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行梳理网络设备垃圾策略配置的方法的计算机程序。
有益效果:
本发明提出的梳理网络设备垃圾策略配置的方法及装置根据定义的策略模板和采集到的网络配置信息可迅速确定配置中哪些定义了的策略数据没有被使用,为垃圾配置清理快速提供依据。
附图说明
图1是本发明一实施例的梳理网络设备垃圾策略配置的方法流程示意图;
图2是本发明一实施例的梳理网络设备垃圾策略配置的装置结构示意图;
图3是本发明一实施例的计算机设备结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种梳理网络设备垃圾策略配置的方法及装置,是在采集网络设备配置数据(存储在S1.txt)的基础上,由采集数据的工程师按照策略固有配置步骤给出需要采集策略的标准配置模板,并需要给出每个配置模板行数据的关键字(可以唯一标识该行数据,例如定义策略主体关键字(如route-policy和node和非|)可以唯一识别route-policy rp_VNH2ISIS permit node 10类似的行,定义调用该策略的配置关键字(route-policy和route-policy和非node),定义匹配策略条件的关键字(if-match和ip-prefix和非node),以及定义条件关键字(ip和ip-prefix和非node)),再利用计算机强大快速的处理能力,结合程序中有效的逻辑算法,自动搜索出满足上述关键字的配置,包含有匹配条件、策略主体名称、策略调用的条件以及策略被其他配置调用情况,之后再根据需要将定义部分出的关键字和调用部分的关键字进行匹配,求出补集,就可以验证定义的有没有被调用,从而确定哪些定义的策略是垃圾策略,如按照配置一万行,其中包括有三千各种策略组合配置,准确确定是否存在和哪些策略被定义了但是没被调用,确定补集(存储定义了的没有被调用的数据)最多只需要一分钟,可以节省大量的时间,由此来提升工作效率、减少公司人员成本。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
图1是本发明一实施例的梳理网络设备垃圾策略配置的方法流程示意图。如图1所示,该方法包括:
步骤S101,采集网络设备配置数据并存储为S1.txt;
步骤S102,手动给出采集策略的标准配置模板,策略的标准配置模板基本上都固定分为四部分,第一部分是定义匹配条件,第二部分是定义策略主体,第三部分是策略主体内调用定义的匹配条件,第四部分是最终调用所定义的策略,并在每行数据中自定义唯一标识该行的关键字;
步骤S103,逐行读取配置的S1.txt,对上一步中识别的关键字进行加工,关键字为三个的直接使用;为二个的,自动添加一个第三个关键字作为满足NO的条件,比如{if-match ip-prefix}变为{if-match ip-prefixno_};为一个的,复制一个满足YES条件,自动添加一个第三个关键字作为满足NO的条件,比如{import-route}变为{import-routeimport-route no_};
步骤S104,使用上述关键字,配合条件语句,逐行匹配配置的S1.txt中内容,满足上述条件的配置存储到列表list1中,信息包含有匹配条件、策略主体名称、策略调用的条件以及策略被其他配置调用情况;
步骤S105-步骤S109,根据需要将定义部分的关键字和调用部分的关键字进行匹配,求出补集,验证定义的有没有被调用,从而确定哪些定义的策略是垃圾策略。
具体的,步骤S105,确定哪些定义了的策略没有被使用,方法:使用定义了的关键字查找调用了的配置,如使用定义了策略的关键字{route-policy node no_}和调用该策略的配置关键字{peer route-policy node},分别抓取步骤S104中配置文件中匹配的行数据相应部分,之后求出补集;
步骤106,根据步骤S105的结果和策略名称(route-policy后面那个字段,如MAN_2_in)输出补集;
步骤107,方法同步骤S105,确定哪些定义了的条件没有被调用,方法:使用定义了条件的关键字{ipip-prefixno_}和调用该条件的配置关键字{if-match ip-prefixno_},分别抓取步骤S104中配置文件中匹配的行数据相应部分,之后求出补集;
步骤108,根据步骤107的结果和策略名称(ip-prefix后面那个字段,如pl_Private_Default)输出补集;
步骤109,合并求出的补集,最后梳理出来即为未被调用的垃圾信息。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
为了对上述梳理网络设备垃圾策略配置的方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
下面以城域网为例,需要对网络设备垃圾策略配置进行梳理,具体过程如下:
步骤S101:采集设备配置存储为S1.txt,假设采集的设备配置文件存储的信息为:
sysname XXXX.163
#
acl number 3999
rule 1permit icmp source Y.Y.Y.Y 0 destination X.X.X.X 0
rule 2permit icmp source Y.Y.Y.145 0destination X.X.X.220
rule 50deny 255
#
traffic classifier MAN_IN operator or
if-match acl 3999
#
traffic behavior MAN_IN
#
traffic policy MAN_IN
share-mode
classifier MAN_INbehavior MAN_IN precedence 1
#
interface Ip-Trunk1
ipv6 enable
ipv6 address XXX:E:XXX:101::2/127
ip netstream inbound
traffic-policy MAN_IN inbound
#
route-policy MAN_1_in deny node 10
if-match ip-prefix pl_Illegal
#
route-policy MAN_1_in deny node 20
if-match as-path-filter 100
#
route-policy MAN_2_in permit node 290
if-match ip-prefix pl_PermitMask_Length
ip ip-prefix pl_Illegal index 5permit 10.0.0.0 8greater-equal 8less-equal 32
ip ip-prefix pl_Illegal index 10permit 127.0.0.0 8greater-equal8less-equal 32
ip ip-prefix pl_PermitMask_Length index 10permit 0.0.0.08 greater-equal 8less-equal 24
ip ip-prefix pl_Private_Default index 5permit 0.0.0.00
ip ip-prefix pl_Private_Default index 10permit 10.0.0.08greater-equal8less-equal 32
...
#
ipv4-family unicast
undo synchronization
peer 21.144.111.219 enable
peer 21.144.111.219 route-policy MAN_1_in import
....
步骤S102:手动给出策略配置模板,策略配置基本上都固定分为四部分,第一是定义匹配条件,第二个定义策略主体,第三个策略主体内调用定义的匹配条件,第四最终调用所定义的策略,在每行数据中自定义唯一标识该行的关键字,以route-policy为例,模板格式如下:
ip ip-prefix pl_VNH2ISIS index 5permit 118.84.111.128 32{ip ip-prefix}
route-policy rp_VNH2ISIS permit node 10{route-policy node}
if-match ip-prefix pl_VNH2ISIS{if-match ip-prefix}
apply tag 4134
import-route static route-policy rp_VNH2ISIS{route-policy}
其中{}内的内容是每行的关键字,不同关键字之间需要有空格,同时关键字暂定不能超过三个,前两个为满足YES(要求匹配的)的关键字,最后一个为满足NO(要求不匹配的)的关键字,满足YES得关键字可以重复,满足NO的关键字可以不存在。
步骤S103:逐行读取配置的S1.txt文本文件,对步骤S102中识别的关键字进行加工,关键字为三个的直接使用,为二个的,自动添加一个第三个关键字作为满足NO的条件,比如{if-match ip-prefix}变为{if-match ip-prefix no_},为一个的,复制一个满足YES条件,自动添加一个第三个关键字作为满足NO的条件,比如{import-route}变为{import-route import-route no_},最后步骤S102中的文本变为:
ip ip-prefix pl_VNH2ISIS index 5permit 118.84.111.128 32{ip ip-prefixno_}
route-policy rp_VNH2ISIS permit node 10{route-policy node no_}
if-match ip-prefix pl_VNH2ISIS{if-match ip-prefix no_}
peer 21.145.6.219 route-policy MAN_1_in import{peer route-policy no_}
步骤S104:使用上述关键字,配合条件语句,逐行匹配S1.txt文件中内容,满足上述条件的数据存储到列表list1中,信息如下:
route-policy MAN_1_in deny node 10
if-match ip-prefix pl_Illegal
route-policy MAN_1_in deny node 20
if-match as-path-filter 100
route-policy MAN_2_in permit node 290
if-match ip-prefix pl_PermitMask_Length
ip ip-prefix pl_Illegal index 5permit 10.0.0.0 8greater-equal 8less-equal 32
ip ip-prefix pl_Illegal index 10permit 127.0.0.0 8greater-equal8less-equal 32
ip ip-prefix pl_PermitMask_Length index 10permit 0.0.0.08greater-equal 8less-equal 24
ip ip-prefix pl_Private_Default index 5permit 0.0.0.00
ip ip-prefix pl_Private_Default index 10permit 10.0.0.08greater-equal8less-equal 32
peer 21.145.6.219route-policy MAN_1_in import
步骤S105:确定哪些定义了的策略没有被使用,方法:使用定义了的关键字查找调用了的配置,如使用定义了策略的关键字{route-policy node no_}和调用该策略的配置关键字{peer route-policy node},分别抓取步骤S104中配置文件中匹配的行数据相应部分:
定义策略:
route-policy MAN_1_in deny node 10
route-policy MAN_1_in deny node 20
route-policy MAN_2_in permit node 290
调用策略:
peer 21.145.6.219 route-policy MAN_1_in import
步骤S106:根据步骤S105结果和策略名称(route-policy后面那个字段,如MAN_2_in)输出补集:
[route-policy MAN_2_in permit node 290]
步骤S107:方法同步骤S105,确定哪些定义的条件没有被调用:方法:使用定义了条件的关键字{ip ip-prefixno_}和调用该条件的配置关键字{if-match ip-prefixno_},分别抓取步骤S104中配置文件中匹配的行数据相应部分:
定义条件:
ip ip-prefix pl_Illegal index 5permit 10.0.0.0 8greater-equal 8less-equal 32
ip ip-prefix pl_Illegal index 10permit 127.0.0.0 8greater-equal8less-equal 32
ip ip-prefix pl_PermitMask_Length index 10permit 0.0.0.0 8greater-equal 8less-equal 24
ip ip-prefix pl_Private_Default index 5permit 0.0.0.00
ip ip-prefix pl_Private_Default index 10permit 10.0.0.0 8greater-equal 8less-equal 32
调用条件:
if-match ip-prefix pl_Illegal
if-match ip-prefix pl_PermitMask_Length
步骤S108:根据步骤S107结果和策略名称(ip-prefix后面那个字段,如pl_Private_Default)输出补集:
[‘ip ip-prefix pl_Private_Default index 5permit 0.0.0.00’,
‘ip ip-prefix pl_Private_Default index 10permit 10.0.0.08greater-equal 8less-equal 32’]
其他定义和调用的关系也使用同样的方法,不再熬述。
步骤S109,合并求出的补集,最后梳理出来的未被调用的垃圾信息如下:
[route-policy MAN_2_in permit node 290]
[‘ip ip-prefix pl_Private_Default index 5permit 0.0.0.00’,
‘ip ip-prefix pl_Private_Default index 10permit 10.0.0.08greater-equal 8less-equal 32’]
基于同一发明构思,本发明还提出一种梳理网络设备垃圾策略配置的装置。该装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是本发明一实施例的梳理网络设备垃圾策略配置的装置结构示意图。如图2所示,该装置包括:
数据采集模块201,采集网络设备配置数据并存储为S1.txt;
关键字自定义模块202,手动给出采集策略的标准配置模板,策略的标准配置模板基本上都固定分为四部分,第一部分是定义匹配条件,第二部分是定义策略主体,第三部分是策略主体内调用定义的匹配条件,第四部分是最终调用所定义的策略,并在每行数据中自定义唯一标识该行的关键字;
关键字加工模块203,逐行读取配置的S1.txt,对上一步中识别的关键字进行加工,关键字为三个的直接使用;为二个的,自动添加一个第三个关键字作为满足NO的条件;为一个的,复制一个满足YES条件,自动添加一个第三个关键字作为满足NO的条件;
关键字匹配模块204,使用上述关键字,配合条件语句,逐行匹配配置的S1.txt中内容,满足上述条件的配置存储到列表list1中,信息包含有匹配条件、策略主体名称、策略调用的条件以及策略被其他配置调用情况;
策略验证模块205,根据需要将定义部分的关键字和调用部分的关键字进行匹配,求出补集,验证定义的有没有被调用,从而确定哪些定义的策略是垃圾策略。
具体的,确定哪些定义了的策略没有被使用,方法:使用定义了的关键字查找调用了的配置和调用该策略的配置关键字,分别抓取上一步中配置文件中匹配的行数据相应部分,之后求出补集;
根据上一步的结果和策略名称输出补集;
方法同上,确定哪些定义了的条件没有被调用,方法:使用定义了条件的关键字和调用该条件的配置关键字,分别抓取上一步中配置文件中匹配的行数据相应部分,之后求出补集;
根据步骤上一步的结果和策略名称输出补集;
合并求出的补集,最后梳理出来即为未被调用的垃圾信息。
应当注意,尽管在上文详细描述中提及了梳理网络设备垃圾策略配置的装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
基于前述发明构思,如图3所示,本发明还提出一种计算机设备300,包括存储器310、处理器320及存储在存储器310上并可在处理器320上运行的计算机程序330,处理器320执行计算机程序330时实现前述梳理网络设备垃圾策略配置的方法。
基于前述发明构思,本发明还提出一种计算机可读存储介质,计算机可读存储介质存储有执行前述梳理网络设备垃圾策略配置的方法的计算机程序。
本发明提出的梳理网络设备垃圾策略配置的方法及装置可快速准确地完成对定义了但未被调用策略的梳理,提升工作效率,减少人工成本及失误率。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。
对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。