一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种处理报文的方法和装置与流程

2022-03-09 01:14:23 来源:中国专利 TAG:


1.本技术涉及通信技术领域,尤其涉及一种处理报文的方法和装置。


背景技术:

2.随着网络系统的发展,各种网络攻击层出不穷,路由设备可能会接收到不可达ip报文,路由设备基于不可达ip报文的目的ip地址发送arp请求报文后,无法收到arp响应。当不可达ip报文的数量非常大时,路由设备会不停的发送arp请求报文,严重占用路由设备的arp资源,增加cpu的负担。
3.为了防止此类因解析大量不可达ip报文而造成的资源浪费,本领域技术人员发明了arp源抑制技术:当路由设备从某个源ip地址接收到的不可达ip报文数量达到预设阈值时,则认为路由设备受到此源ip地址的恶意攻击,触发保护机制,将后续来自此源ip地址的报文丢包,不再创建新的arp表项。
4.但是由于使用目的ip地址的设备可能会下线,也可能会发生故障,导致设备无法接收到arp请求报文,最终导致路由设备对设备的mac地址学习不成功,此时若多次学习不成功,认定存在恶意攻击,触发arp源抑制功能,会导致来自被抑制的源ip地址发送的正常报文也无法转发。


技术实现要素:

5.针对上述问题,本技术提供了一种处理报文的方法和装置,具体技术方案如下:
6.根据本技术的第一方面,提供一种处理报文的方法,该方法应用于路由设备,所述方法包括:
7.接收交换芯片上送的报文,解析其目的ip地址;
8.基于所述目的ip地址生成临时arp表项,并发送arp请求报文以获取所述目的ip地址对应的mac地址;
9.基于所述目的ip地址生成丢包表项,并将所述丢包表项下发至交换芯片,以供交换芯片在接到发往相同目的ip地址的新报文时,丢弃所述新报文;
10.若接收到针对所述arp请求报文的arp响应报文,则基于所述arp响应报文生成正式arp表项,并删除生成的所述临时arp表项以及所述丢包表项。
11.可选的,在所述处理报文的方法中,还包括:
12.在arp探测周期结束时,若仍未收到针对所述arp请求报文的arp响应报文,则判断所述丢包表项是否曾被命中;
13.若所述丢包表项未曾被命中,则删除生成的所述临时arp表项以及所述丢包表项;
14.若所述丢包表项曾被命中,则再次发送所述arp请求报文以获取所述目的ip地址对应的mac地址。
15.可选的,在所述处理报文的方法中,在生成临时arp表项后,还包括:
16.判断基于源ip地址为非指定扫描源ip地址的报文生成的临时arp表项的数量是否
达到第一阈值;
17.若达到所述第一阈值,则将源ip地址为非指定扫描源ip地址的报文的目的ip地址进行地址聚合,得到第一网段;
18.基于所述第一网段生成交换路由,所述交换路由的下一跳为黑洞,下发交换路由至交换芯片,以供交换芯片在接收到发往所述第一网段的新报文时,丢弃所述新报文;
19.删除进行地址聚合前已下发的基于源ip地址为非指定扫描源ip地址的报文的目的ip地址生成的丢包表项。
20.可选的,在所述处理报文的方法中,在生成临时arp表项后,还包括:
21.判断基于源ip地址为非指定扫描源ip地址的报文生成的临时arp表项的数量是否达到第二阈值;
22.若达到所述第二阈值,则丢弃交换芯片上送的新的源ip地址为非指定扫描源ip地址的报文;
23.所述第二阈值不小于所述第一阈值。
24.可选的,在将源ip地址为非指定扫描源ip地址的报文的目的ip地址进行地址聚合,得到第一网段后,还包括:
25.在学习到所述第一网段中任一ip地址对应的mac地址后,对所述第一网段中的其余ip地址重新进行地址聚合,得到第二网段;
26.基于所述第二网段重新下发交换路由至交换芯片,以替换基于所述第一网段下发的交换路由。
27.可选的,在处理报文的方法中,来自非指定扫描源ip地址的报文的arp探测周期小于来自指定扫描源ip地址的报文的arp探测周期。
28.根据本技术的第二方面,提供一种处理报文的装置,该装置应用于路由设备,包括:
29.接收报文模块,用于接收交换芯片上送的报文,解析其目的ip地址;
30.地址获取模块,用于基于所述目的ip地址生成临时arp表项,并发送arp请求报文以获取所述目的ip地址对应的mac地址;
31.表项下发模块,用于基于所述目的ip地址生成丢包表项,并将所述丢包表项下发至交换芯片,以供交换芯片在接到发往相同目的ip地址的新报文时,丢弃所述新报文;
32.表项删除模块,用于若接收到针对所述arp请求报文的arp响应报文,则基于所述arp响应报文生成正式arp表项,并删除生成的所述临时arp表项以及所述丢包表项。
33.可选的,在处理报文的装置中,还包括判断模块,所述判断模块,用于在arp探测周期结束时,若仍未收到针对所述arp请求报文的arp响应报文,则判断所述丢包表项是否曾被命中;
34.若所述丢包表项未曾被命中,则通知表项删除模块,删除生成的所述临时arp表项以及所述丢包表项;
35.若所述丢包表项曾被命中,则通知地址获取模块,再次发送所述arp请求报文以获取所述目的ip地址对应的mac地址。
36.可选的,在处理报文的装置中,还包括聚合模块,所述聚合模块,用于在生成临时arp表项后,判断基于源ip地址为非指定扫描源ip地址的报文生成的临时arp表项的数量是
否达到第一阈值;
37.若所述临时arp表项的数量达到所述第一阈值,则将源ip地址为非指定扫描源ip地址的报文的目的ip地址进行地址聚合,得到第一网段;
38.基于所述第一网段生成交换路由,所述交换路由的下一跳为黑洞,下发交换路由至交换芯片,以供交换芯片在接收到发往所述第一网段的新报文时,丢弃所述新报文;
39.删除进行地址聚合前已下发的基于源ip地址为非指定扫描源ip地址的报文的目的ip地址生成的丢包表项。
40.可选的,在处理报文的装置中,还包括二次聚合模块,所述二次聚合模块,用于在学习到所述第一网段中任一ip地址对应的mac地址后,对所述第一网段中的其余ip地址重新进行地址聚合,得到第二网段;
41.基于所述第二网段重新下发交换路由至交换芯片,以替换基于所述第一网段下发的交换路由。
42.通过上述处理报文的方法,cpu基于交换芯片上送的报文的目的ip地址生成临时arp表项而不是占用正式arp表项,节省了arp资源,同时,在发送arp请求报文学习目的ip地址对应的mac地址以后,可基于所述目的ip地址生成丢包表项并将所述丢包表项下发至交换芯片,在交换芯片接到的发往相同目的ip地址的新报文时,将其丢包不再上送至cpu,cpu不再需要对所述报文进行解析,减轻了cpu处理报文的压力。
43.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。此外,本技术中的任一实施例并不需要达到上述的全部效果。
附图说明
44.图1是本技术示出的一种处理报文的方法的流程图;
45.图2是本技术示出的处理报文的装置所在路由设备的一种硬件结构图;
46.图3是本技术示出的一种处理报文的装置的框图。
具体实施方式
47.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
48.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
49.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
50.首先,介绍路由设备的报文转发机制。
51.当路由设备接收到一个报文时,首先由路由设备中的交换芯片查询表项,具体步骤如下:
52.首先,在交换芯片接收到报文后,解析其目的ip地址,并查询所述报文是否命中交换路由,所述交换路由保存的是路由设备各端口的端口号与各端口连接的网段的对应关系,路由设备可以根据交换路由和所述报文的目的ip地址,确定最终将报文从哪个端口发送至目标ip地址。
53.也就是说,交换芯片查询交换路由是为了确定接收到的报文的出端口,若所述报文的目的ip地址不属于路由设备所连接的网段,则将所述报文丢包。
54.若交换芯片查询到了所述报文命中的交换路由,则代表所述报文能够通过交换芯片进行转发。
55.接着,在交换芯片查询到所述报文命中的交换路由后,继续查询正式arp表项,判断其中是否保存有与所述报文的目的ip地址对应的mac地址,若正式arp表项中有与所述报文的目的ip地址对应的mac地址,交换芯片可基于查询到的mac地址对所述报文重新进行二层封装,并通过查询到的出端口发送封装后的报文。
56.若正式arp表项中没有与所述报文的目的ip地址对应的mac地址,交换芯片将所述报文上送至cpu。
57.在现有技术中,cpu接收交换芯片上送的报文后缓存所述报文,生成对应的正式arp表项,并基于所述报文的目的ip地址发送arp请求报文来学习对应的mac地址,若成功学习到对应的mac地址,可对所述报文重新进行二层封装,并通过上述步骤中查询到的出端口发送封装后的报文;若cpu未成功学习到对应的mac地址,确认该报文为不可达ip报文,则删除缓存的报文和对应生成的正式arp表项。
58.若cpu从某个源ip地址接收到大量的不可达ip报文,可触发arp源抑制功能。
59.为了解决现有的arp源抑制技术太死板,导致路由设备对正常报文也无法转发的问题,本发明实施例提供了一种应用于路由设备的处理报文的方法,可减轻cpu负载压力,避免对正常报文的转发产生影响。请参见图1,图1是本技术示出的一种处理报文的方法的流程图,具体步骤如下:
60.步骤s102:接收交换芯片上送的报文,解析其目的ip地址。
61.交换芯片在接收到一个报文时,查询交换路由,当能够查询到对应的交换路由,且所述交换路由的下一跳不是黑洞时,交换芯片再查询正式arp表项,若不能查询到对应的正式arp表项,则将所述报文上送至cpu,当cpu接收交换芯片上送的报文后,解析所述报文的目的ip地址,同时缓存所述报文。
62.步骤s104:基于所述目的ip地址生成临时arp表项,并发送arp请求报文以获取所述目的ip地址对应的mac地址。
63.为了防范攻击者利用不可达ip报文进行攻击,恶意占用路由设备的arp资源,路由设备的cpu接收交换芯片上送的报文后,可不生成正式arp表项,而是生成临时arp表项,并发送arp请求报文以获取与所述目的ip地址对应的mac地址。
64.所述临时arp表项仅记录和维护报文的目的ip地址、所述报文对应的arp请求报文的探测间隔时间和探测次数,无需记录正式arp表项中的completed状态,通过建立临时arp
表项,cpu无需占用正式arp表项,节省了arp资源。
65.步骤s106:基于所述目的ip地址生成丢包表项,并将所述丢包表项下发至交换芯片,以供交换芯片在接到发往相同目的ip地址的新报文时,丢弃所述新报文。
66.在cpu基于交换芯片上送的报文目的ip地址生成临时arp表项,发送arp请求报文后,正在学习与所述目的ip地址对应的mac地址,针对该目的ip地址,无需再次进行arp学习,为节省cpu的处理资源,可以下发丢包表项至交换芯片。
67.所述丢包表项可以是交换路由,也可以是host表项,所述丢包表项的下一跳为黑洞。
68.当交换芯片再次接收到新的目的ip地址与上述目的ip地址相同的报文时,通过丢包表项对所述报文丢包,交换芯片便无需将新报文上送至cpu,有效的减轻了cpu的负载压力。
69.例如:cpu接收交换芯片上送的报文,解析出所述报文的目的ip地址是ip1,在基于所述目的ip地址ip1生成临时arp表项,发送arp请求报文后,cpu基于所述目的ip地址ip1生成交换路由并下发至交换芯片,所述交换路由的下一跳是黑洞,交换芯片接收一个新的报文后,解析新报文的目的ip地址并查询交换路由,若新报文的目的ip地址是ip1,则交换芯片根据交换路由将新报文丢包。
70.步骤s108:若接收到针对所述arp请求报文的arp响应报文,则基于所述arp响应报文生成正式arp表项,并删除生成的所述临时arp表项以及所述丢包表项。
71.cpu发送arp请求报文后,若在探测周期时间内收到针对所述arp请求报文的arp响应报文,则基于所述arp响应报文获取与目的ip地址对应的mac地址,并生成正式arp表项,将所述目的ip地址与对应的mac地址保存至正式arp表项中,同时删除生成的所述临时arp表项以及所述丢包表项。
72.在基于上述arp响应报文生成正式arp表项后,对缓存的报文重新进行二层封装,并通过交换芯片查询到的出端口发送封装后的报文。
73.通过上述处理报文的方法,cpu基于交换芯片上送的报文的目的ip地址生成临时arp表项而不是占用正式arp表项,节省了arp资源,同时,在发送arp请求报文学习目的ip地址对应的mac地址以后,可基于所述目的ip地址生成丢包表项并将所述丢包表项下发至交换芯片,在交换芯片接到的发往相同目的ip地址的新报文时,将其丢包不再上送至cpu,cpu不再需要对所述报文进行解析,节省了cpu的处理资源。
74.下面结合具体的实施例来描述本技术的实现过程。
75.在现有网络中,由于网络规模的越来越大,网络中ip资源的具体情况很难掌握,为了了解清楚网络资源的具体使用情况,ip扫描不可避免,更有甚者,为了摸清楚现有资源的实时使用情况,扫描的频率也会很高。这些扫描设备是可信任的,管理员可以在路由设备上预先设置这些扫描设备的ip地址,将其作为指定扫描源ip地址,来自所述指定扫描源ip地址的报文往往是安全的。反之,未设置的ip地址为非指定扫描源ip地址,来自所述非指定扫描源ip地址的报文可能是危险的。
76.上述是对指定扫描源ip地址和非指定扫描源ip地址的介绍,对于来自指定扫描源ip地址和非指定扫描源ip地址的报文,为其生成的arp请求报文的探测周期,丢包表项,以及对丢包表项和临时arp表项的老化机制可以是不同的。下面将在管理员设置指定扫描源
ip地址的基础上,从这三个方面分别进行介绍。
77.一、arp请求报文的探测周期
78.为来自非指定扫描源ip地址的报文生成的arp请求报文的探测周期可小于为来自指定扫描源ip地址的报文生成的arp请求报文的探测周期。探测周期内的探测次数、探测超时时间和探测间隔时间可以由用户自行设定,其中探测间隔时间还可以由退避算法算出。
79.在cpu发送arp请求报文后,会有很多种情况收不到对应的arp响应报文,其中一种是路由设备可能会接收到不可达ip报文,没有设备使用所述报文的目的ip地址,在路由设备基于所述ip报文的目的ip地址发送arp请求报文后,会无法收到arp响应;另一种是使用报文目的ip地址的设备可能会有下线或者出现故障的情况,导致设备无法正常接收arp请求报文或者无法正常发送arp响应报文。
80.由于认为来自指定扫描源ip地址的报文是安全的,所以为了避免使用报文目的ip地址设备故障或下线,导致cpu无法学习到所述设备的mac地址,可以对来自指定扫描源ip地址的报文设置较长的arp探测周期,等待设备恢复正常;由于认为来自非指定扫描源ip地址的报文可能是危险的,所以为了避免cpu接收的是不可达ip报文,导致arp资源长时间被占用,可以对来非自指定扫描源ip地址的报文设置较短的arp探测周期。
81.举例来说,管理员在设置指定扫描源ip地址后,可以针对基于来自指定扫描源ip地址和非指定扫描源ip地址的报文的目的ip地址发送的arp请求报文,配置探测超时时间,探测次数和探测间隔时间。
82.来自指定扫描源ip地址的报文的arp请求报文探测周期,其探测超时时间为3秒,探测次数可以设为3次,探测间隔时间为3秒,此时探测周期一共为15秒;
83.来自非指定扫描源ip地址的报文的arp请求报文探测周期,其探测超时时间为3秒,探测次数可以设为2次,探测间隔时间设为5秒,则探测周期一共为11秒。
84.或者,管理员可以只预先配置探测次数和探测超时时间,arp请求报文的探测间隔时间根据退避算法算出,例如第一次探测间隔时间为2秒,第二次探测间隔时间为4秒,第三次探测间隔时间为8秒,以此类推。
85.此时来自指定扫描源ip地址的报文的arp请求报文探测周期,其探测次数可以设为3次,探测超时时间设为3秒,探测周期一共为15秒;
86.来自非指定扫描源ip地址的报文的arp请求报文探测周期,其探测次数可以设为2次,探测超时时间设为3秒,探测周期一共为8秒。
87.二、丢包表项
88.前述步骤s206,基于所述目的ip地址生成丢包表项,并将所述丢包表项下发至交换芯片,以供交换芯片在接到发往相同目的ip地址的新报文时,丢弃所述新报文。
89.丢包表项可以是交换路由,也可以是host表项。
90.当交换路由作为丢包表项时,下一跳为黑洞,当交换芯片接收到一个新的报文后,查询交换路由,若新报文的目的ip地址与作为丢包表项的交换路由的目的ip地址相同,则交换芯片根据该交换路由将所述报文丢包。
91.host表项是一种快速查询表项,可保存有正式arp表项中已保存的ip地址,下一跳为正式arp表项。当交换芯片接收到一个新的报文并解析其目的ip地址后,先查询host表项而不是查询交换路由,若交换芯片查询到与所述新报文的目的ip地址对应的host表项,则
代表所述报文是可达的,此时host表项的下一跳为正式arp表项,交换芯片可根据正式arp表项查询所述报文的目的ip地址对应的mac地址,并基于查询到的mac地址对所述报文重新进行二层封装,根据正式arp表项转发所述报文;若未查询到,再查询交换路由。
92.利用所述host表项作为丢包表项时,其下一跳为黑洞,在交换芯片接收到一个新报文并解析所述新报文的目的ip地址后,首先查询host表项,若该新报文的目的ip地址命中下一跳为黑洞的host表项,可直接将所述新报文丢包;若未命中,可再查询交换路由。
93.cpu在基于交换芯片上送的报文的目的ip地址生成临时arp表项后,可以统计基于源ip地址为非指定扫描源ip地址的报文的目的ip地址生成的临时arp表项的数量,判断其数量是否达到第一阈值,当达到所述第一阈值时,可以认为此时不可达ip报文数量过多,所以为了避免路由设备受到过多不可达ip报文的攻击,cpu可以将所述临时arp表项的目的ip地址聚合成第一网段,例如,可基于最小目的ip地址和最大目的ip地址进行聚合。在聚合得到第一网段后,可基于所述第一网段生成交换路由并下发至交换芯片,后续交换芯片在接收到目的地址命中该第一网段的报文时,可丢弃接收到的报文。
94.在下发基于第一网段生成的交换路由后,还可以删除下发至交换芯片的基于所述目的ip地址生成的丢包表项,以节省表项资源。
95.在进行地址聚合时,可以先判断在正式arp表项中,是否已经保存了最小目的ip地址和最大目的ip地址之间某个ip地址对应的mac地址,即先判断是否已学习到最小目的ip地址和最大目的ip地址之间某个ip地址的mac地址。
96.若未学习到最小目的ip地址和最大目的ip地址之间任意ip地址的mac地址,则基于最小目的ip地址和最大目的ip地址进行地址聚合,得到第一网段。
97.若已学习到最小目的ip地址和最大目的ip地址之间某个ip地址的mac地址,则去除掉已学习到的ip地址,将最小目的ip地址和最大目的ip地址之间其余的ip地址进行聚合,得到第一网段。
98.上述第一网段中包括临时arp表项中来自非指定源ip地址的报文的目的ip地址,也包括一些尚未接收到的来自非指定源ip地址的报文的目的ip地址。基于聚合后的第一网段生成下一跳为黑洞的交换路由下发,可对来自非指定源ip地址的报文进行大范围过滤,降低cpu接收到不可达ip报文的概率,进而节省cpu的处理资源。并且,基于地址聚合后生成的网段生成交换路由并下发,还可大大节约交换路由资源。
99.若cpu接收到了上述第一网段中某个目的ip地址对应的arp响应报文,学习到对应的mac地址后,则对所述第一网段中的其余ip地址重新进程地址聚合,得到第二网段,并基于所述第二网段重新生成交换路由,下发至交换芯片,以替换基于所述第一网段下发的交换路由。
100.可选的,上述统计基于非指定扫描源ip地址的报文的目的ip地址生成的临时arp表项的数量的方式,可以是设置一个初始值为0的计数器,计数器的值可与所述基于非指定扫描源ip地址的报文的目的ip地址生成的临时arp表项的数量保持一致,当计数器的值达到第一阈值后,cpu将当所述临时arp表项的目的ip地址聚合。
101.举例来说,假设第一阈值为200,当cpu接收交换芯片上送的一个报文时,解析其源ip地址和目的ip地址,基于所述目的地址生成临时arp表项,若所述源ip地址为非指定扫描源ip地址,计数器的值加1,若此时计数器的值达到200了,此时cpu将所有解析出的源ip地
址为非指定扫描源ip地址的报文的目的ip地址聚合成第一网段,并基于所述第一网段生成交换路由下发至交换芯片,当交换芯片接收到新的报文时,解析其目的ip地址,若其目的ip地址是上述第一网段中的某一个ip地址,则将所述报文丢包。
102.具体的,在进行地址聚合时,若最小目的ip地址为192.168.1.1,最大目的ip地址为192.168.1.254,可先判断在正式arp表项中,是否已经保存了从192.168.1.1到192.168.1.254的范围内,某个ip地址对应的mac地址,例如,若目的ip地址192.168.1.127对应的mac地址已经在正式arp表项中对应保存,则不对此目的ip地址进行聚合。同时,即便cpu没有接收到目的ip地址为上述192.168.1.1到192.168.1.254的范围内的某个ip地址的报文,也将其聚合,例如,即便cpu没有接收到要发往目的ip地址为192.168.1.10和192.168.1.11的报文,也将所述目的ip地址192.168.1.10和192.168.1.11进行聚合,最终是将192.168.1.1到192.168.1.126和192.168.1.128到192.168.1.254两个网段中的所有ip地址聚合成第一网段,结果是192.168.1.1/25和192.168.1.128/25。在聚合第一网段后,cpu根据第一网段生成交换路由,并下发交换路由至交换芯片,此时可以将之前下发的基于第一网段中的ip地址生成的host表项删除。
103.在聚合第一网段后,若cpu接收到了所述第一网段中的某个ip地址发送的arp响应报文,则将所述ip地址从第一网段中去除,将第一网段中其余的ip地址重新聚合成第二网段,例如,第一网段是192.168.1.1/25和192.168.1.128/25,cpu接收到了上述网段192.168.1.128/25中ip地址为192.168.1.191发送的arp响应报文,则将192.168.1.191从网段192.168.1.128/25中去除,将网段中的其余ip地址192.168.1.128到192.168.1.190,以及192.168.1.192到192.168.1.254重新聚合,得到第二网段192.168.1.128/26和192.168.1.192/26,cpu根据聚合的第二网段生成交换路由下发至交换芯片,并删除之前基于第一网段中192.168.1.128/25生成的交换路由。
104.当交换芯片接收到新的报文时,解析其目的ip地址,若其目的ip地址是上述第二网段中的某一个ip地址,则将所述报文丢包。
105.在上述统计基于源ip地址为非指定扫描源ip地址的报文的目的ip地址生成的临时arp表项的数量后,还可以判断其数量是否达到第二阈值,所述第二阈值不小于所述第一阈值,第二阈值是cpu中能建立的基于源ip地址为非指定扫描源ip地址的报文的目的ip地址生成的临时arp表项的最大数量。
106.若达所述临时arp表项的数量到第二阈值,则cpu将后续交换芯片上送的源ip地址未非指定扫描源ip地址的报文丢包,将新接收的源ip地址为非指定扫描源ip地址的报文丢包。
107.通过设置第二阈值,对基于源ip地址为非指定扫描源ip地址的报文的目的ip地址生成的临时arp表项的数量做出限制,有效的避免过多的非指定扫描源ip地址发送的报文对cpu资源的占用,减少cpu的负载压力和对arp资源的浪费。
108.三、老化机制
109.为了避免路由设备长时间将发往某个目的ip地址的报文丢包,导致影响正常报文的转发,在本技术中,前述步骤s108对cpu生成的临时arp表项和下发的丢包表项做出处理,下面结合具体实施例:
110.若接收到针对所述arp请求报文的arp响应报文,则基于所述arp响应报文生成正
式arp表项,并删除生成的所述临时arp表项以及所述丢包表项。
111.若在arp探测周期结束时,仍未收到针对所述arp请求报文的arp响应报文,则判断所述丢包表项是否曾被命中。
112.在本例中,可通过丢包表项上的hit标识位判断丢包表项是否被命中。hit标识位的初始值设置为0,若交换芯片接收到与所述丢包表项对应的目的ip地址相同的报文,hit标识位的值变为1,在cpu查询到hit标识为1后,将hit标识置0。
113.当一个arp探测周期结束后,cpu未收到针对所述arp请求报文的arp响应报文,就查询所述丢包表项hit标识位的值是否为1,若查询到hit标识位的值为1,说明路由设备还接收到发往所述目的ip地址的报文,如果此时删除对应的丢包表项和老化对应的临时arp表项,路由设备可能会再次收到发往所述目的ip地址的报文,交换芯片重新查询表项,cpu还是会再一次的接收交换芯片上送的报文,并根据所述报文的目的ip地址生成临时arp表项发送arp请求报文,导致cpu重复工作,降低cpu的使用效率,所以为了避免上述问题,当cpu查询丢包表项中hit标识位为1时,可以不删除对应的丢包表项,也不老化对应的临时arp表项,而是重新发送arp请求报文至所述目的ip地址获取对应的mac地址,同时将hit标识位置0;
114.若查询到hit标识位的值为0,说明交换芯片没有接收到发送所述目的ip地址的报文,则删除对应的丢包表项,同时老化对应的临时arp表项。
115.举例来说,当cpu接收到报文并解析出其目的ip地址为ip1后,基于ip1生成丢包表项,丢包表项上有个hit标识位,其初始值为0,cpu基于ip1建立临时arp表项,发送arp请求报文后,若在arp探测周期内,cpu收到了针对所述arp请求报文的arp响应报文,则基于所述arp响应报文生成正式arp表项,删除对应的丢包表项,同时老化对应的临时arp表项;
116.若在arp探测周期内,cpu未收到针对所述arp请求报文的arp响应报文,则判断所述丢包表项上的hit标识位的值:若hit标识位的值为0,则删除所述丢包表项,同时老化临时arp表项;若hit标识为的值为1,则重新发送arp请求报文。
117.通过上述处理报文的方法,一方面,cpu基于交换芯片上送的报文的目的ip地址生成临时arp表项而不是占用正式arp表项,节省了arp资源。
118.另一方面,cpu在发送arp请求报文学习目的ip地址对应的mac地址以后,可基于所述目的ip地址生成丢包表项并将所述丢包表项下发至交换芯片,在交换芯片接到的发往相同目的ip地址的新报文时,将其丢包不再上送至cpu,cpu不再需要对所述报文进行解析,减轻了cpu处理报文的压力。
119.与前述一种处理报文的方法的实施例相对应,本技术还提供了一种处理报文的装置的实施例。
120.本技术一种处理报文的装置的实施例可以应用在路由设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在路由设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本技术一种处理报文的装置所在路由设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的路由设备通常根据该路由设备的实际功能,还可以包括其他硬件,对此不再赘述。
121.请参考图3,图3是本技术示出的一种处理报文的装置的框图,所述装置包括:
122.接收报文模块302,用于接收交换芯片上送的报文,解析其目的ip地址;
123.地址获取模块304,用于基于所述目的ip地址生成临时arp表项,并发送arp请求报文以获取所述目的ip地址对应的mac地址;
124.表项下发模块306,用于基于所述目的ip地址生成丢包表项,并将所述丢包表项下发至交换芯片,以供交换芯片在接到发往相同目的ip地址的新报文时,丢弃所述新报文;
125.表项删除模块308,用于若接收到针对所述arp请求报文的arp响应报文,则基于所述arp响应报文生成正式arp表项,并删除生成的所述临时arp表项以及所述丢包表项。
126.在本实施例中,当cpu利用地址获取模块304生成临时arp表项,并发送arp请求报文后,若在arp探测周期结束时,若仍未收到针对所述arp请求报文的arp响应报文,则执行判断模块310,判断模块310用于在arp探测周期结束时,若仍未收到针对所述arp请求报文的arp响应报文,则判断所述丢包表项是否曾被命中;
127.若所述丢包表项未曾被命中,则删除生成的所述临时arp表项以及所述丢包表项;
128.若所述丢包表项曾被命中,则再次发送所述arp请求报文以获取所述目的ip地址对应的mac地址。
129.可选的,在cpu利用地址获取模块304生成临时arp表项后,可以执行聚合模块312,用于在生成临时arp表项后,判断基于源ip地址为非指定扫描源ip地址的报文生成的临时arp表项的数量是否达到第一阈值;
130.若所述临时arp表项的数量达到所述第一阈值,则将源ip地址为非指定扫描源ip地址的报文的目的ip地址进行地址聚合,得到第一网段;
131.然后基于所述第一网段生成交换路由,所述交换路由的下一跳为黑洞,下发交换路由至交换芯片,以供交换芯片在接收到发往所述第一网段的新报文时,丢弃所述新报文;
132.删除进行地址聚合前已下发的基于源ip地址为非指定扫描源ip地址的报文的目的ip地址生成的丢包表项。
133.可选的,在利用聚合模块312获取到第一网段后,可以执行二次聚合模块314,所述二次聚合模块314,用于在学习到所述第一网段中任一ip地址对应的mac地址后,对所述第一网段中的其余ip地址重新进行地址聚合,得到第二网段;
134.基于所述第二网段重新下发交换路由至交换芯片,以替换基于所述第一网段下发的交换路由。
135.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
136.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
137.本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬
件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
138.本说明书中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如fpga(现场可编程门阵列)或asic(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
139.适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏操纵台、全球定位系统(gps)接收机、或例如通用串行总线(usb)闪存驱动器的便携式存储设备,仅举几例。
140.适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如eprom、eeprom和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及cd rom和dvd-rom盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
141.虽然本说明书包含许多具体实施细节,但是这些不应被解释为限制任何发明的范围或所要求保护的范围,而是主要用于描述特定发明的具体实施例的特征。本说明书内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
142.类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
143.由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实
现中,多任务和并行处理可能是有利的。
144.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献