路由上报的识别方法及装置与流程

文档序号:30271081发布日期:2022-06-02 09:36阅读:170来源:国知局
路由上报的识别方法及装置与流程

1.本技术涉及通信技术领域,尤其涉及一种路由上报的识别方法及装置。


背景技术:

2.目前,若用户希望查看某台网络设备内bgp邻居的路由、邻居状态以及其他相关信息,可登录网络设备后输入各种查看命令,并通过网络设备的屏幕显示查看结果。
3.边界网关协议(英文:border gateway protocol,简称:bgp)监控协议(英文:bgp monitoring protocol,简称:bmp)是一种用于监控bgp邻居的协议,其可访问bgp邻居的路由、邻居状态以及其他相关信息,还可周期性地对上述内容的统计信息进行显示。
4.被监控的网络设备称为客户端,监控服务器称为监控端。一个客户端可与多个监控端连接。管理人员在客户端内配置连接的监控端(通过配置监控端的地址、端口号,以使得客户端与监控端建立tcp连接)以及需要监控的bgp邻居。
5.管理人员在客户端内配置监控的bgp邻居后,客户端根据上报周期,向监控端发送bmp报文。监控端接收到bmp报文后,遵循bmp协议以及bgp协议解析出报文内容,并以可视化的界面呈现给用户。
6.客户端在监控bgp邻居的过程中,若在bgp邻居接收到路由后启动监控,客户端需遍历当前设备的本地路由表,并对bgp邻居接收到的路由进行组包后上报。在上报过程中,若出现bgp邻居的路由更新或新增路由,客户端还需判断对应更新的路由是否需要上报,增加客户端的开销。
7.另外,随着bmp协议的不断完善、细化,客户端监控邻居bgp的路由又被细分为策略前(pre-policy)模式以及策略后(post-policy)模式(其中,pre-policy,指的是未应用策略前监控bgp邻居接收的路由和路由属性;post-policy指的是应用策略后监控bgp邻居接收的路由和路由属性)。当监控模式变化时,例如,由pre-policy模式切换为post-policy模式时,客户端需明确向服务端发送路由撤销报文,以通知服务端删除采用旧模式上报的路由。但是,在客户端发送路由撤销报文之前,客户端也需遍历当前设备的本地路由表,并获取采用旧模式监控的路由,这对于客户端来说也是个不小的开销。
8.上送两种情况,均需客户端在bgp邻居的路由中设置是否已上报过的标记,如此,才可准确判断如何对bgp邻居的路由进行何种处理。但是,在路由数量较多时,将会占用客户端的大量内存资源。


技术实现要素:

9.有鉴于此,本技术提供了一种路由上报的识别方法及装置,用以解决现有客户端在对bgp邻居的路由设置是否已上报过的标识时,若路由数量较多,则将占用客户端打了内存资源的问题。
10.第一方面,本技术提供了一种路由上报的识别方法,所述方法应用于客户端,所述客户端内已配置radix树,所述radix树内存储bgp邻居的路由,所述方法包括:
11.在所述radix树中,以根节点为起始点遍历第一数量个路由,并记录遍历第一数量个路由后的第一遍历位置,所述第一遍历位置内存储第一路由;
12.向监控端发送第一路由更新报文,所述第一路由更新报文包括所述第一遍历位置之前已遍历的第一数量个路由以及所述第一路由;
13.当接收到所述bgp邻居发送的第二路由更新报文后,判断所述第一路由与所述第二路由更新报文包括的第二路由之间的大小关系;
14.根据判断结果,确定所述第二路由是否已通过所述第一路由更新报文上报至所述监控端;
15.若已通过所述第一路由更新报文上报至所述监控端,则向所述监控端发送第三路由更新报文,所述第三路由更新报文包括所述第二路由。
16.第二方面,本技术提供了一种路由上报的识别装置,所述装置应用于客户端,所述客户端内已配置radix树,所述radix树内存储bgp邻居的路由,所述装置包括:遍历单元、发送单元、第一判断单元、接收单元以及确定单元。
17.遍历单元,用于在所述radix树中,以根节点为起始点遍历第一数量个路由,并记录遍历第一数量个路由后的第一遍历位置,所述第一遍历位置内存储第一路由;
18.发送单元,用于向监控端发送第一路由更新报文,所述第一路由更新报文包括所述第一遍历位置之前已遍历的第一数量个路由以及所述第一路由;
19.第一判断单元,用于当所述接收单元接收到所述bgp邻居发送的第二路由更新报文后,判断所述第一路由与所述第二路由更新报文包括的第二路由之间的大小关系;
20.确定单元,用于根据判断结果,确定所述第二路由是否已通过所述第一路由更新报文上报至所述监控端;
21.所述发送单元还用于,若已通过所述第一路由更新报文上报至所述监控端,则向所述监控端发送第三路由更新报文,所述第三路由更新报文包括所述第二路由。
22.第三方面,本技术提供了一种网络设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使执行本技术第一方面所提供的方法。
23.因此,通过应用本技术提供的路由上报的识别方法及装置,在radix树中,客户端以根节点为起始点遍历第一数量个路由,并记录遍历第一数量个路由后的第一遍历位置,该第一遍历位置内存储第一路由;客户端向监控端发送第一路由更新报文,该第一路由更新报文包括第一遍历位置之前已遍历的第一数量个路由以及第一路由;当接收到bgp邻居发送的第二路由更新报文后,客户端判断第一路由与第二路由更新报文包括的第二路由之间的大小关系;根据判断结果,客户端确定第二路由是否已通过第一路由更新报文上报至监控端;若已通过第一路由更新报文上报至监控端,则客户端向监控端发送第三路由更新报文,该第三路由更新报文包括第二路由。
24.如此,通过将bgp邻居路由保存在按字典序排序的radix树内,借助字典序的特点,完成无需在bgp邻居路由中记录上报标记即可判断出bgp邻居路由是否已上报至监控端。解决了现有客户端在对bgp邻居的路由设置是否已上报过的标识时,若路由数量较多,则将占用客户端打了内存资源的问题,实现了无需占用额外内存就实现bgp邻居路由的批量上报、实时上报,以及撤销已上报bgp邻居路由的相关操作。
附图说明
25.图1为本技术实施例提供的路由上报的识别方法的流程图;
26.图2为本技术实施例提供的路由上报的识别装置结构图;
27.图3为本技术实施例提供的网络设备硬件结构体。
具体实施方式
28.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本技术相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
29.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。
30.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
31.下面对本技术实施例提供的路由上报的识别方法进行详细地说明。参见图1,图1为本技术实施例提供的路由上报的识别方法的流程图。该方法应用于客户端。本技术实施例提供的路由上报的识别方法可包括如下所示步骤。
32.步骤110、在所述radix树中,以根节点为起始点遍历第一数量个路由,并记录遍历第一数量个路由后的第一遍历位置,所述第一遍历位置内存储第一路由。
33.具体地,监控服务器称为监控端,被监控的网络设备称为客户端。用户在查看网络设备内bgp邻居的路由、邻居状态以及其他相关信息时,客户端可根据上报周期,实时或者批量向监控端发送路由更新报文。监控端接收到路由更新报文后,遵循bmp协议以及bgp协议解析出报文内容,并以可视化的界面呈现给用户。
34.在本技术实施例中,客户端内已配置基数(radix)树,该radix树内按照字典序存储bgp邻居的路由。字典序也即是按照路由内包括的目的网际互连协议(英文:internet protocol,简称:ip)地址的大小进行排序,目的ip地址小的越靠近根节点。
35.在一个上报周期中,客户端以根节点为起始点遍历第一数量个路由,并记录遍历第一数量个路由后的第一遍历位置,该第一遍历位置内存储第一路由。
36.其中,客户端内已支持的协议内部各功能之间需均衡调度,为了避免某些操作一次处理占用时间过多,导致其他功能无法及时调度,管理人员可根据经验值确定第一数量。例如,第一数量为50。
37.第一遍历位置由第一遍历位置所在radix树的树类型以及第一路由组成。第一路由为当前遍历过程中遍历到的最后一条路由。
38.需要说明的是,邻居bgp路由可能包含不同的类型。例如,ipv4单播路由、ipv6单播
路由。不同类型的路由通常会存储在不同的radix树中。树类型指的是本次遍历的是ipv4单播路由类型的radix树,或者,当前遍历的是ipv6单播路由类型的radix树。
39.进一步地,在本技术实施例中,客户端结束本次遍历后,启动一通知事件,该通知事件包括第一遍历位置。待下次上报周期到来时,调用该通知事件,并以第一遍历位置为起始点,启动第二次遍历。或者,客户端结束本次遍历后,启动一定时器,待定时器超时时,获取第一遍历位置,并以第一遍历位置为起始点,启动第二次遍历。
40.步骤120、向监控端发送第一路由更新报文,所述第一路由更新报文包括所述第一遍历位置之前已遍历的第一数量个路由以及所述第一路由。
41.具体地,根据步骤120的描述,客户端遍历第一数量个路由后,遵循bmp协议以及bgp协议生成第一路由更新报文,该第一路由更新报文包括第一数量个路由以及第一路由。
42.客户端向监控端发送第一路由更新报文。监控端接收到第一路由更新报文后,解析出报文内容,并以可视化的界面呈现给用户。
43.步骤130、当接收到所述bgp邻居发送的第二路由更新报文后,判断所述第一路由与所述第二路由更新报文包括的第二路由之间的大小关系。
44.具体地,根据步骤120的描述,客户端向监控端发送第一路由更新报文后,等待进入下一个上报周期。
45.若此时,客户端接收到bgp邻居发送的第二路由更新报文,该第二路由更新报文包括第二路由。该第二路由可为一条新路由,或者,该第二路由为在先已同步的历史路由的路由属性更新。
46.客户端从第二路由更新报文中获取第二路由后,判断第一路由与第二路由之间的大小关系。
47.进一步地,客户端判断第一路由与第二路由之间的大小关系,具体过程为:按照字典序排列方式的radix树,客户端判断第一路由与第二路由之间的大小关系;其中,bgp邻居路由按照目的ip地址的大小存储在radix树中,距离根节点的路由包括的目的ip地址小。
48.更进一步地,第一遍历位置还包括第一遍历位置所在radix树的树类型;第一路由包括第一路由前缀以及第一掩码;第二路由包括第二路由前缀以及第二掩码;
49.客户端按照字典序排列方式的radix树,判断第一路由与第二路由之间的大小关系,具体过程为:
50.若第二路由与radix树的树类型匹配,也即是第二路由的路由类型与radix树的树类型匹配,例如,第二路由的路由类型为ipv4单播路由,radix树的树类型为ipv4单播路由类型的radix树,则客户端判断第一路由前缀与第二路由前缀的大小。
51.若第二路由前缀小于第一路由前缀,则客户端确定第二路由小于第一路由,若第二路由前缀大于第一路由前缀,则客户端确定第二路由大于第一路由。例如,第二路由为1.1.0.0/24,第一路由为1.1.1.0/32,则第二路由前缀小于第一路由前缀,客户端确定第二路由小于第一路由。
52.若第二路由前缀与第一路由前缀相同,则客户端判断第二掩码与第一掩码的大小;若第二掩码小于第一掩码,则客户端确定第二路由小于第一路由,若第二掩码大于第一掩码,则客户端确定第二路由大于第一路由。例如,第二路由为1.1.0.0/24,第一路由为1.1.0.0/32,则第二路由前缀与第一路由前缀相同,客户端判断第二掩码与第一掩码的大
小。在本示例中,第二掩码小于第一掩码,则客户端确定第二路由小于第一路由。
53.若第二掩码与第一掩码相同,则客户端判断第二路由与第一路由在冲突链中的位置;若第二路由在冲突链中的位置处于第一路由在冲突链中的位置之前,则客户端确定第二路由小于第一路由,否则,客户端确定第二路由大于第一路由。例如,第二路由为2.1.0.0/24-a,第一路由为2.1.0.0/24-b,则第二路由前缀与第一路由前缀相同,第二掩码与第一掩码相同,客户端确定第二路由与第一路由为等价路由。客户端遍历冲突链,通过比较关键属性(例如,addpath属性中的pathid值)的大小,确定第二路由、第一路由在冲突链中的位置。若第二路由在冲突链中的位置处于第一路由在冲突链中的位置之前,或若第二路由在冲突链中的位置与第一路由在冲突链中的位置相同,则客户端确定第二路由小于或等于第一路由。
54.步骤140、根据判断结果,确定所述第二路由是否已通过所述第一路由更新报文上报至所述监控端。
55.具体地,根据步骤130的描述,客户端判断第二路由与第一路由直接的大小关系后,根据判断结果,客户端确定第二路由是否已通过第一路由更新报文上报至监控端。
56.进一步地,客户端根据判断结果,确定第二路由是否已通过第一路由更新报文上报至监控端,具体过程:
57.若第二路由小于或等于第一路由,则客户端确定第二路由在radix树中的位置在第一遍历位置之前,第二路由已通过第一路由更新报文上报至监控端。
58.若第二路由大于第一路由,则客户端确定第二路由在radix树中的位置在第一遍历位置之后,第二路由未通过第一路由更新报文上报至监控端。
59.步骤150、若已通过所述第一路由更新报文上报至所述监控端,则向所述监控端发送第三路由更新报文,所述第三路由更新报文包括所述第二路由。
60.具体地,根据步骤140的描述,若第二路由已通过第一路由更新报文上报至监控端,则客户端生成并向监控端发送第三路由更新报文,该第三路由更新报文包括第二路由。
61.监控端接收到第三路由更新报文后,从中获取第二路由。根据第二路由,更新本地在先存储的历史路由。
62.进一步地,若第二路由未通过第一路由更新报文上报至监控端,则客户端根据第二路由,更新radix树。该更新radix树具体包括:若第二路由为新路由,则客户端将第二路由存储至radix树中;若第二路由为历史路由的路由属性更新,则客户端将radix树中的历史路由更新为第二路由。
63.在下一个上报周期中,客户端以第一遍历位置为起始点,在radix树中,再次遍历第二数量个路由,并记录遍历第二数量个路由后的第二遍历位置,该第二数量个路由包括第二路由。
64.客户端遵循bmp协议以及bgp协议生成第四路由更新报文,该第四路由更新报文包括第二数量个路由以及第二遍历位置内存储的路由。
65.客户端向监控端发送第四路由更新报文。监控端接收到第四路由更新报文后,解析出报文内容,并以可视化的界面呈现给用户。
66.在本技术实施例中,若第二路由未通过第一路由更新报文上报至监控端,则客户端可在后续的上报周期中,当遍历的路由包括第二路由时,通过路由更新报文上报至监控
端。
67.其中,第二数量可与第一数量相同也可不同,管理人员可根据当前网络设备状态、经验值确定。
68.因此,通过应用本技术提供的路由上报的识别装置,在radix树中,客户端以根节点为起始点遍历第一数量个路由,并记录遍历第一数量个路由后的第一遍历位置,该第一遍历位置内存储第一路由;客户端向监控端发送第一路由更新报文,该第一路由更新报文包括第一遍历位置之前已遍历的第一数量个路由以及第一路由;当接收到bgp邻居发送的第二路由更新报文后,客户端判断第一路由与第二路由更新报文包括的第二路由之间的大小关系;根据判断结果,客户端确定第二路由是否已通过第一路由更新报文上报至监控端;若已通过第一路由更新报文上报至监控端,则客户端向监控端发送第三路由更新报文,该第三路由更新报文包括第二路由。
69.如此,通过将bgp邻居路由保存在按字典序排序的radix树内,借助字典序的特点,完成无需在bgp邻居路由中记录上报标记即可判断出bgp邻居路由是否已上报至监控端。解决了现有客户端在对bgp邻居的路由设置是否已上报过的标识时,若路由数量较多,则将占用客户端打了内存资源的问题,实现了无需占用额外内存就实现bgp邻居路由的批量上报、实时上报,以及撤销已上报bgp邻居路由的相关操作。
70.可选地,在本技术实施例中,客户端向监控端发送第一路由更新报文之后,还包括客户端监控模式切换后,应向监控端上报撤销路由报文的处理过程,以及上报撤销路由报文后,客户端又接收到路由更新报文后的处理过程。
71.具体地,客户端可在已配置的第一监控模式内执行前述步骤110-步骤150,当客户端从第一监控模式切换至第二监控模式后,客户端需将在第一监控模式下通过路由更新报文上报的路由进行撤销处理。
72.其中,第一监控模式、第二监控模式可具体为策略前(pre-policy)模式以及策略后(post-policy)模式。
73.客户端向监控端上报撤销路由报文的过程如下:
74.当确定监控模式已从第一监控模式切换至第二监控模式时,客户端将第一遍历位置记录为遍历结束位置,也即是,客户端确定遍历结束位置之前包括遍历结束位置,radix树中存储的路由需进行撤销。
75.在radix树中,客户端以根节点为起始点再次遍历第三数量个路由,并记录遍历第三数量个路由后的第三遍历位置,该第三遍历位置存储第三路由。
76.客户端判断第三路由与第一路由之间的大小关系。可以理解的是,客户端判断第三路由与第一路由之间大小关系的过程与前述客户端判断第二路由与第一路由之间大小关系的过程相同,在此不再复述。
77.若第三路由小于或等于第一路由,则客户端确定第三遍历位置在第一遍历位置之前,且第三遍历位置之前存储的路由以及第三遍历位置存储的第三路由,均需进行撤销。
78.客户端遵循bmp协议以及bgp协议生成第一撤销路由报文,该第一撤销路由报文包括第三数量个路由以及第三路由。
79.客户端向监控端发送第一撤销路由报文。
80.需要说明的是,客户端通过一次遍历到达遍历结束位置,将会导致耗时过长,协议
其他功能无法正常调度,因此,客户端可分多次遍历后到达遍历结束位置。例如,客户端通过第三遍历位置,到达根节点与遍历结束位置之间距离的20%,客户端通过第四遍历位置,到达距离的40%等等。
81.客户端结束本次遍历后,启动一通知事件,该通知事件包括第三遍历位置。待下次上报周期到来时,调用该通知事件,并以第三遍历位置为起始点,启动第四次遍历。或者,客户端结束本次遍历后,启动一定时器,待定时器超时时,获取第三遍历位置,并以第三遍历位置为起始点,启动第四次遍历。
82.监控端接收到第一撤销路由报文后,解析出报文内容,并在本地删除客户端在先上报的路由。
83.客户端向监控端发送第一撤销路由报文后,等待进入下一个上报周期。
84.若此时,客户端接收到bgp邻居发送的第五路由更新报文,该第五路由更新报文包括第四路由。该第四路由可为一条新路由,或者,该第四路由为在先已同步的历史路由的路由属性更新。
85.客户端从第五路由更新报文中获取第四路由后,判断第一路由、第三路由以及第四路由之间的大小关系。
86.进一步地,客户端判断第一路由、第三路由以及第四路由之间的大小关系,具体过程为:
87.按照字典序排列方式的radix树,客户端分别判断第四路由与第一路由、第四路由与第三路由之间的大小关系;其中,所述bgp邻居路由按照目的ip地址的大小存储在radix树中,靠近根节点的路由包括的目的ip地址小。
88.更进一步地,第一遍历位置包括第一遍历位置所在radix树的树类型;第一路由包括第一路由前缀以及第一掩码;第四路由包括第四路由前缀以及第四掩码;
89.客户端按照字典序排列方式的radix树,判断第四路由与第一路由之间的大小关系,具体过程为:
90.若第四路由的路由类型与所述radix树的树类型匹配,也即是第四路由的路由类型与radix树的树类型匹配,例如,第四路由的路由类型为ipv4单播路由,radix树的树类型为ipv4单播路由类型的radix树,则客户端判断第四路由前缀与第一路由前缀的大小。
91.若第四路由前缀小于第一路由前缀,则客户端确定第四路由小于第一路由,若第四路由前缀大于第一路由前缀,则客户端确定第四路由大于所述第一路由;若第四路由前缀与第一路由前缀相同,则客户端判断第四掩码与第一掩码的大小;若第四掩码小于第一掩码,则客户端确定第四路由小于第一路由,若第四掩码大于第一掩码,则客户端确定第四路由大于第一路由;若第四掩码与第一掩码相同,则客户端判断第四路由与第一路由在冲突链中的位置;若第四路由在冲突链中的位置处于第一路由在冲突链中的位置之前,或若第四路由在冲突链的位置与第一路由在冲突链中的位置相同,则确定第四路由小于或等于第一路由,否则,客户端确定第四路由大于第一路由。
92.可以理解的是,客户端判断第四路由与第一路由之间大小关系的过程与前述客户端判断第二路由与第一路由之间大小关系的过程相同,在此不再举例描述。
93.更进一步地,第三遍历位置包括第三遍历位置所在radix树的树类型;第三路由包括第三路由前缀以及第三掩码;第四路由包括第四路由前缀以及第四掩码;
94.客户端按照字典序排列方式的radix树,判断第四路由与第三路由之间的大小关系,具体过程为:
95.若第四路由的路由类型与radix树的树类型匹配,则客户端判断第四路由前缀与第三路由前缀的大小;若第四路由前缀小于第三路由前缀,则客户端确定第四路由小于第三路由,若第四路由前缀大于第三路由前缀,则客户端确定第四路由大于第三路由;若第四路由前缀与第三路由前缀相同,则客户端判断第四掩码与第三掩码的大小;若第四掩码小于第三掩码,则客户端确定第四路由小于第三路由,若第四掩码大于第三掩码,则确定第四路由大于第三路由;若第四掩码与第三掩码相同,则客户端判断第四路由与第三路由在冲突链中的位置;若第四路由在冲突链中的位置处于第三路由在冲突链中的位置之前,或若第四路由在冲突链的位置与第三路由在冲突链中的位置相同,则客户端确定第四路由小于或等于第三路由,否则,客户端确定第四路由大于第三路由。
96.可以理解的是,客户端判断第四路由与第三路由之间大小关系的过程与前述客户端判断第二路由与第一路由之间大小关系的过程相同,在此不再举例描述。
97.根据前述的判断可知:
98.在一种实现情况中,若第四路由小于或等于第一路由,则客户端确定第四路由在radix树中的位置在遍历结束位置之前或相同,第四路由为待撤销路由;若第四路由小于或等于第三路由,则客户端确定第四路由在radix树中的位置在第三遍历位置之前或相同;并且,在上一个上报周期,客户端已通过第一撤销路由报文上报至监控端。
99.此时,客户端仅更新radix树,并不再向监控端发送撤销路由报文。
100.在另一种实现情况中,若第四路由小于或等于第一路由,则客户端确定第四路由在radix树中的位置在遍历结束位置之前或相同,第四路由为待撤销路由;若第四路由大于第三路由,则客户端确定第四路由在radix树中的位置在第三遍历位置之后;并且,在上一个上报周期,客户端未通过第一撤销路由报文上报至监控端。
101.此时,客户端遵循bmp协议以及bgp协议生成该第二撤销路由报文包括第四路由,并更新radix树。
102.客户端向监控端发送第二撤销路由报文。监控端接收到第一撤销路由报文后,解析出报文内容,并在本地删除客户端在先上报的路由。
103.在另一种实现情况中,若第三路由大于第一路由,则客户端确定第三路由在radix树中的位置在遍历结束位置之后,第三路由不为待撤销路由。此时,客户端清除遍历结束位置以及第三遍历位置,也不再启动通知事件或者定时器。
104.需要说明的是,客户端的监控模式切换后,需再次向监控端上报切换监控模式后的路由更新报文,以使得监控端存储切换监控模式后的路由。
105.在radix树中,客户端再次以根节点为起始点遍历第四数量个路由,并记录遍历第四数量个路由后的第四遍历位置,该第四遍历位置内存储第六路由。
106.客户端遍历第四数量个路由后,遵循bmp协议以及bgp协议生成第六路由更新报文,该第六路由更新报文包括第四数量个路由以及第六路由。
107.在第二监控模式下,客户端向监控端发送第六路由更新报文。监控端接收到第六路由更新报文后,解析出报文内容,并以可视化的界面呈现给用户。
108.其中,第四数量可与第一数量、第二数量、第三数量相同也可不同,管理人员可根
据当前网络设备状态、经验值确定。
109.基于同一发明构思,本技术实施例还提供了与路由上报的识别方法对应的路由上报的识别装置。参见图2,图2为本技术实施例提供的路由上报的识别装置,所述装置应用于客户端,所述客户端内已配置radix树,所述radix树内存储bgp邻居的路由,所述装置包括:遍历单元210、发送单元220、第一判断单元230、接收单元240以及确定单元250。
110.所述遍历单元210,用于在所述radix树中,以根节点为起始点遍历第一数量个路由,并记录遍历第一数量个路由后的第一遍历位置,所述第一遍历位置内存储第一路由;
111.所述发送单元220,用于向监控端发送第一路由更新报文,所述第一路由更新报文包括所述第一遍历位置之前已遍历的第一数量个路由以及所述第一路由;
112.所述第一判断单元230,用于当所述接收单元240接收到所述bgp邻居发送的第二路由更新报文后,判断所述第一路由与所述第二路由更新报文包括的第二路由之间的大小关系;
113.所述确定单元250,用于根据判断结果,确定所述第二路由是否已通过所述第一路由更新报文上报至所述监控端;
114.所述发送单元220还用于,若已通过所述第一路由更新报文上报至所述监控端,则向所述监控端发送第三路由更新报文,所述第三路由更新报文包括所述第一路由。
115.可选地,所述装置还包括:更新单元(图中未示出),用于若未通过第一路由更新报文上报至监控端,则根据所述第二路由,更新所述radix树;
116.所述遍历单元210还用于,在下一个上报周期中,以所述第一遍历位置为起始点,在所述radix树中,再次遍历第二数量个路由,并记录遍历第二数量个路由后的第二遍历位置,所述第二数量个路由包括所述第二路由;
117.所述发送单元220还用于,向所述监控端发送第四路由更新报文,所述第四路由更新报文包括所述第二数量个路由以及所述第二遍历位置内存储的路由。
118.可选地,所述第一判断单元230具体用于,按照字典序排列方式的所述radix树,判断所述第一路由与所述第二路由之间的大小关系;
119.其中,bgp邻居路由按照目的ip地址的大小存储在所述radix树中,靠近根节点的路由包括的目的ip地址小。
120.可选地,所述第一遍历位置还包括所述第一遍历位置所在radix树的树类型;所述第一路由包括第一路由前缀以及第一掩码;所述第二路由包括第二路由前缀以及第二掩码;
121.所述第一判断单元230还具体用于,若所述第二路由的路由类型与所述radix树的树类型匹配,则判断所述第一路由前缀与所述第二路由前缀的大小;
122.若所述第二路由前缀小于所述第一路由前缀,则确定所述第二路由小于所述第一路由,若所述第二路由前缀大于所述第一路由前缀,则确定所述第二路由大于所述第一路由;
123.若所述第二路由前缀与所述第一路由前缀相同,则判断所述第二掩码与所述第一掩码的大小;
124.若所述第二掩码小于所述第一掩码,则确定所述第二路由小于所述第一路由,若所述第二掩码大于所述第一掩码,则确定所述第二路由大于所述第一路由;
125.若所述第二掩码与所述第一掩码相同,则判断所述第二路由与所述第一路由在冲突链中的位置;
126.若所述第二路由在所述冲突链中的位置处于所述第一路由在所述冲突链中的位置之前或相同,则确定所述第二路由小于或等于所述第一路由,否则,确定所述第二路由大于所述第一路由。
127.可选地,所述确定单元250具体用于,若所述第二路由小于或等于所述第一路由,则确定所述第二路由已通过所述第一路由更新报文上报至所述监控端;
128.若所述第二路由大于所述第一路由,则确定所述第二路由未通过所述第一路由更新报文上报至所述监控端。
129.可选地,所述装置还包括:记录单元(图中未示出),用于当确定监控模式已从第一监控模式切换至第二监控模式时,将所述第一遍历位置记录为遍历结束位置;
130.所述遍历单元210还用于,在所述radix树中,以所述根节点为起始点遍历第三数量个路由,并记录遍历第三数量个路由后的第三遍历位置,所述第三遍历位置存储第三路由;
131.所述发送单元220还用于,若所述第三路由小于或等于所述第一路由,则向所述监控端发送第一撤销路由报文,所述第一撤销路由报文包括所述第三数量个路由以及所述第三路由;
132.第二判断单元(图中未示出),用于当所述接收单元240接收到所述bgp邻居发送的第五路由更新报文后,判断所述第一路由、第三路由以及所述第五路由更新报文包括的第四路由之间的大小关系;
133.所述发送单元220还用于,若所述第四路由小于或等于所述第一路由且所述第四路由小于或等于所述第三路由,则更新所述radix树,并不再向所述监控端发送撤销路由报文。
134.可选地,所述发送单元220还用于,若所述第四路由小于所述第一路由且所述第四路由大于所述第三路由,则向所述监控端发送第二撤销路由报文,所述第二撤销路由报文包括所述第四路由,并更新所述radix树。
135.可选地,所述第二判断单元(图中未示出)具体用于,按照字典序排列方式的所述radix树,分别判断所述第四路由与所述第一路由、所述第四路由与所述第三路由之间的大小关系;
136.其中,bgp邻居路由按照目的ip地址的大小存储在所述radix树中,靠近根节点的路由包括的目的ip地址小。
137.可选地,所述第一遍历位置包括所述第一遍历位置所在radix树的树类型;所述第一路由包括第一路由前缀以及第一掩码;所述第四路由包括第四路由前缀以及第四掩码;
138.所述第二判断单元(图中未示出)还具体用于,若所述第四路由的路由类型与所述radix树的树类型匹配,则判断所述第四路由前缀与所述第一路由前缀的大小;
139.若所述第四路由前缀小于所述第一路由前缀,则确定所述第四路由小于所述第一路由,若所述第四路由前缀大于所述第一路由前缀,则确定所述第四路由大于所述第一路由;
140.若所述第四路由前缀与所述第一路由前缀相同,则判断所述第四掩码与所述第一
掩码的大小;
141.若所述第四掩码小于所述第一掩码,则确定所述第四路由小于所述第一路由,若所述第四掩码大于所述第一掩码,则确定所述第四路由大于所述第一路由;
142.若所述第四掩码与所述第一掩码相同,则判断所述第四路由与所述第一路由在冲突链中的位置;
143.若所述第四路由在所述冲突链中的位置处于所述第一路由在所述冲突链中的位置之前或相同,则确定所述第四路由小于或等于所述第一路由,否则,确定所述第四路由大于所述第一路由。
144.可选地,所述第三遍历位置包括所述第三遍历位置所在radix树的树类型;所述第三路由包括第三路由前缀以及第三掩码;所述第四路由包括第四路由前缀以及第四掩码;
145.所述第二判断单元(图中未示出)还具体用于,若所述第四路由的路由类型与所述radix树的树类型匹配,则判断所述第四路由前缀与所述第三路由前缀的大小;
146.若所述第四路由前缀小于所述第三路由前缀,则确定所述第四路由小于所述第三路由,若所述第四路由前缀大于所述第三路由前缀,则确定所述第四路由大于所述第三路由;
147.若所述第四路由前缀与所述第三路由前缀相同,则判断所述第四掩码与所述第三掩码的大小;
148.若所述第四掩码小于所述第三掩码,则确定所述第四路由小于所述第三路由,若所述第四掩码大于所述第三掩码,则确定所述第四路由大于所述第三路由;
149.若所述第四掩码与所述第三掩码相同,则判断所述第四路由与所述第三路由在冲突链中的位置;
150.若所述第四路由在所述冲突链中的位置处于所述第三路由在所述冲突链中的位置之前或相同,则确定所述第四路由小于或等于所述第三路由,否则,确定所述第四路由大于所述第三路由。
151.可选地,所述装置还包括:清除单元(图中未示出),用于若所述第三路由大于所述第一路由,则清除所述遍历结束位置以及所述第三遍历位置;
152.所述遍历单元210还用于,在所述radix树中,以所述根节点为起始点遍历第四数量个路由,并记录遍历第四数量个路由后的第四遍历位置,所述第四遍历位置内存储第六路由;
153.所述发送单元220还用于,在所述第二监控模式下,向所述监控端发送第六路由更新报文,所述第六路由更新报文包括所述第四遍历位置之前已遍历的第四数量个路由以及所述第六路由。
154.因此,通过应用本技术提供的路由上报的识别方法及装置,在radix树中,客户端以根节点为起始点遍历第一数量个路由,并记录遍历第一数量个路由后的第一遍历位置,该第一遍历位置内存储第一路由;客户端向监控端发送第一路由更新报文,该第一路由更新报文包括第一遍历位置之前已遍历的第一数量个路由以及第一路由;当接收到bgp邻居发送的第二路由更新报文后,客户端判断第一路由与第二路由更新报文包括的第二路由之间的大小关系;根据判断结果,客户端确定第二路由是否已通过第一路由更新报文上报至监控端;若已通过第一路由更新报文上报至监控端,则客户端向监控端发送第三路由更新
报文,该第三路由更新报文包括第二路由。
155.如此,通过将bgp邻居路由保存在按字典序排序的radix树内,借助字典序的特点,完成无需在bgp邻居路由中记录上报标记即可判断出bgp邻居路由是否已上报至监控端。解决了现有客户端在对bgp邻居的路由设置是否已上报过的标识时,若路由数量较多,则将占用客户端打了内存资源的问题,实现了无需占用额外内存就实现bgp邻居路由的批量上报、实时上报,以及撤销已上报bgp邻居路由的相关操作。
156.基于同一发明构思,本技术实施例还提供了一种网络设备,如图3所示,包括处理器310、收发器320和机器可读存储介质330,机器可读存储介质330存储有能够被处理器310执行的机器可执行指令,处理器310被机器可执行指令促使执行本技术实施例所提供的路由上报的识别方法。前述图2所示的路由上报的识别装置,可采用如图3所示的网络设备硬件结构实现。
157.上述计算机可读存储介质330可以包括随机存取存储器(英文:random access memory,简称:ram),也可以包括非易失性存储器(英文:non-volatile memory,简称:nvm),例如至少一个磁盘存储器。可选的,计算机可读存储介质330还可以是至少一个位于远离前述处理器310的存储装置。
158.上述处理器310可以是通用处理器,包括中央处理器(英文:central processing unit,简称:cpu)、网络处理器(英文:network processor,简称:np)等;还可以是数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)、现场可编程门阵列(英文:field-programmable gate array,简称:fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
159.本技术实施例中,处理器310通过读取机器可读存储介质330中存储的机器可执行指令,被机器可执行指令促使能够实现处理器310自身以及调用收发器320执行前述本技术实施例描述的路由上报的识别方法。
160.另外,本技术实施例提供了一种机器可读存储介质330,机器可读存储介质330存储有机器可执行指令,在被处理器310调用和执行时,机器可执行指令促使处理器310自身以及调用收发器320执行前述本技术实施例描述的路由上报的识别方法。
161.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
162.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
163.对于路由上报的识别装置以及机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
164.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精
神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1