CN102412924B - 路径最大传输单元的探测方法和装置 - Google Patents
路径最大传输单元的探测方法和装置 Download PDFInfo
- Publication number
- CN102412924B CN102412924B CN201010288920.XA CN201010288920A CN102412924B CN 102412924 B CN102412924 B CN 102412924B CN 201010288920 A CN201010288920 A CN 201010288920A CN 102412924 B CN102412924 B CN 102412924B
- Authority
- CN
- China
- Prior art keywords
- check code
- source node
- error message
- pmtu
- calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种路径最大传输单元的探测方法和装置,涉及通信领域。其中一种路径最大传输单元的探测方法,包括:源节点发送探测报文,所述探测报文包括校验码,所述校验码由所述源节点根据预定算法获得;当所述源节点接收到差错报文时,所述源节点根据所述差错报文的内容,采用所述预定算法进行计算,获取计算结果;所述源节点对所述校验码和所述计算结果进行比较;如果所述校验码与所述计算结果相同,所述源节点根据所述差错报文修改已记录的链路路径最大传输单元;如果所述校验码与所述计算结果不同,所述源节点丢弃所述差错报文。本发明的实施例可以保证PMTU机制的有效性和安全性,有效的防范PMTU攻击。
Description
技术领域
本发明涉及通信领域,特别是涉及一种路径最大传输单元的探测方法和装置。
背景技术
在IPv6(Internet Protocol Version 6,互联网协议第六版)网络中,PMTU(Path Maximum Transmission Unit,路径最大传输单元)发现机制(详见RFC1981,IPv6路径最大传输单元发现协议)可以用于提高网络使用效率。
PMTU机制能够正常工作的前提,是相信网络上的每个节点都能正确的处理PMTU机制。实际上,这也为网络攻击者留下了可乘之机。RFC1981中也列举了两种攻击,并分析了其危害性。比如,当收到虚假的ICMPv6(Internet Control Message Protocol Version 6,第六版互联网控制信息协议)报文,PMTU cache(缓存)记录的PMTU值会是最小值1280。这样上层协议在传输过程中,就没有完全利用网络的能力,降低了性能。这就是所谓的PMTU欺骗。当源端设备收到大量伪造的ICMPv6差错报文,会直接生成PMTU缓存,从而产生大量无效的PMTU缓存表项,最终造成PMTU缓存溢出,或者无法生成新的有效的PMTU表项,或者一些实际的有效的PMTU表项被覆盖掉。最终的结果,是PMTU机制彻底失效,这就是所谓的PMTU DoS攻击。
发明内容
本发明的目的是提出一种路径最大传输单元的探测方法和装置,有效防范PMTU攻击。
为实现上述目的,本发明提供了一种路径最大传输单元的探测方法,包括:源节点发送探测报文,所述探测报文包括校验码,所述校验码由所述源节点根据预定算法获得;当所述源节点接收到差错报文时,所述源节点根据所述差错报文的内容,采用所述预定算法进行计算,获取计算结果;所述源节点对所述校验码和所述计算结果进行比较;如果所述校验码与所述计算结果相同,所述源节点根据所述差错报文修改已记录的链路路径最大传输单元;如果所述校验码与所述计算结果不同,所述源节点丢弃所述差错报文。
在一个实施例中,所述校验码由所述源节点根据预定算法获得包括:所述源节点生成一个随机数;所述源节点计算所述随机数、源地址和目标地址的CRC(Cyclic Redundancy Check,循环冗余校验)校验和,将所述CRC校验和作为所述校验码。
在一个实施例中,所述探测报文和所述差错报文符合基于IPv6的互联网控制信息协议。
在一个实施例中,所述校验码由探测报文中的流标签字段承载。
为实现上述目的,本发明还提供了一种路径最大传输单元的探测装置,包括:探测报文发送模块,用于发送探测报文,所述探测报文包括校验码,所述校验码由所述源节点根据预定算法获得;计算结果获取模块,用于当所述源节点接收到差错报文时,根据所述差错报文的内容,采用所述预定算法进行计算,获取计算结果;比较模块,用于对所述校验码和所述计算结果进行比较;记录修改模块,用于当所述校验码与所述计算结果相同时,根据所述差错报文修改已记录的链路路径最大传输单元;丢弃模块,用于当所述校验码与所述计算结果不同时,丢弃所述差错报文。
在一个实施例中,探测报文发送模块包括:随机数生成单元,用于生成一个随机数;校验码生成单元,用于计算所述随机数、源地址和目标地址的CRC校验和,将所述CRC校验和作为所述校验码。
在一个实施例中,所述探测报文和所述差错报文符合基于IPv6的互联网控制信息协议。
在一个实施例中,所述校验码由探测报文中的流标签字段承载。
基于上述技术方案,本发明通过预定算法在源节点发出的探测报文中设置校验码。当收到差错报文时,可以根据差错报文中携带的原始报文信息,通过同样的算法判断差错报文是否是有效的探测反应。如果差错报文是伪造的,就可以直接丢弃。因此,本发明的实施例可以保证PMTU机制的有效性和安全性,有效的防范PMTU攻击。本发明的实施例实现快速、安全易用、成本低廉。
附图说明
此处所说明的附图用来提供对本发明的进一步解释,构成本发明的一部分。本发明的示意性实施例及其说明仅用于解释本发明,但并不构成对本发明的不当限定。在附图中:
图1为根据本发明实施例的应用场景的结构示意图。
图2为根据本发明实施例的PMTU探测方法的流程图。
图3为根据本发明实施例的IPv6报文头示意图。
图4为根据本发明实施例的ICMPv6差错报文示意图。
图5为根据本发明实施例的PMTU探测装置的结构示意图。
图6为根据本发明另一实施例的PMTU探测装置的结构示意图。
具体实施方式
下面参照附图对本发明进行更详细的描述,其中说明本发明的示例性实施例。在附图中,相同的标号表示相同或者相似的组件或者元素。
图1为根据本发明实施例的应用场景100的结构示意图。应用场景100包括源端设备102、目的端设备110、PMTU攻击实施设备120、路由器104、106和108。
在PMTU机制下,源端设备102可以通过发送探测报文,检查路径的PMTU。其中,初始探测报文的长度为源端链路MTU。一旦中途有路由器(如路由器104)的下一跳链路MTU小于探测报文(详见RFC2463,针对IPv6的因特网控制报文协议规范),就会向源端设备102回应ICMPv6差错报文,如ICMPv6Packet Too Big差错报文,并携带新的MTU值返回给源端设备102。源端设备102收到这个ICMPv6差错报文,会修改记录的链路PMTU,并按新的PMTU大小发送新的探测报文。在路由器104和108重复这个过程,直到报文到达最终的目的端设备110。源端设备102可以根据反馈信息记录最终的PMTU,生成PMTU缓存。PMTU缓存记录到达不同目的端的PMTU值,供以后上层协议发包时进行报文大小控制。
在PMTU机制的运行过程中,如果遇到PMTU攻击实施设备120的攻击,有可能造成PMTU机制的失败。比如,PMTU攻击实施设备120通过路由器106向路由器104发送虚假的IMCPv6差错报文,其中携带的原始报文信息是攻击者自己构造的,并不是真正截取到了PMTU的探测报文。
根据本发明的实施例,可以在探测报文中增加校验码,该校验码可以根据预定算法生成。当发送探测报文的源节点,如源端设备102或路由器104收到ICMPv6差错报文时,使用同样的算法得出计算结果,将此计算结果与校验码相比较。如果相同,说明报文是源节点自己当初发送的;如果不相同,则说明是攻击者伪造的,直接予以丢弃。
图2为根据本发明实施例的PMTU探测方法200的流程图。
在步骤202中,源节点发送探测报文,探测报文包括校验码,校验码由源节点根据预定算法获得。源节点可以是源端设备,也可以是源端设备对应的网关路由器。预定算法可以是利用随机数的CRC校验和算法,比如,源节点可以在启动时生成一个随机数,并记录下来;在发送探测报文时,计算随机数、源地址和目标地址的CRC校验和,将CRC校验和作为校验码。随机数的设置增加了PMTU攻击的难度,即增加了PMTU机制的安全性。
在一个实施例中,探测报文符合基于IPv6的互联网控制信息协议(ICMPv6)。如图3的IPv6报文头示意图,包括Version(版本)、Traffic Class(流量类别)、Flow Label(流标签)、Payload Length(负载长度)、Next Header(下一报头)、Hop Limit(跳数限制)、SourceAddress(源地址)、Destination Address(目标地址)字段。其中,Flow Label字段没有明确的使用规定,IETF(Internet EngineeringTask Force,互联网工程任务组)建议各种应用可以自行定义并使用该字段。根据本发明的实施例,校验码可以由探测报文中的Flow Label字段承载。
在步骤204中,当源节点接收到差错报文时,源节点根据差错报文的内容,采用预定算法进行计算,获取计算结果。在一个实施例中,差错报文符合ICMPv6,差错报文可以是如图4所示意的ICMPv6 PacketToo Big(数据包太大)差错报文,包括IP报头、Type(类型)、Code(代码)、Checksum(校验和)、MTU(最大传输单元)和MTU后面跟着的多字节的原始报文信息。源节点可以根据差错报文中携带的原始报文信息,采用与步骤202中相同的算法进行计算,得出计算结果。原始报文信息中包括原始探测报文中的源地址、目标地址以及Flow Label字段的校验码。源节点可以根据发送探测报文时生成并记录的随机数,以及原始报文信息中的源地址和目标地址计算其CRC校验和(即为计算结果)。
在步骤206中,源节点对校验码和计算结果进行比较。源节点对在步骤204中得到的计算结果与差错报文中携带的原始报文信息中的Flow Label字段校验码相比较。
在步骤208中,如果校验码与计算结果相同,源节点根据差错报文修改已记录的链路路径最大传输单元。如果校验码与计算结果相同,说明差错报文是对源节点自己发出的探测报文的回应,因此可以采信。
在步骤210中,如果校验码与计算结果不同,源节点丢弃差错报文。如果校验码与计算结果不同,说明差错报文很可能是攻击者伪造的,可以直接予以丢弃。
判断报文是否为自己当初发送的,也可以建立探测报文缓存,等收到差错报文后一个一个进行比较。但是这样做显然效率低下,而且会浪费大量的CPU计算能力,反而可能成为被攻击的目标。而根据本发明的实施例,只需在探测报文中加载校验码,从而当收到差错报文时,根据差错报文中携带的原始报文信息通过计算判断差错报文是否是有效的探测反应。如果差错报文是伪造的,就可以直接丢弃。因此,本发明的实施例可以保证PMTU机制的有效性和安全性,有效的防范PMTU欺骗和PMTU DoS攻击。本发明的实施例实现快速、安全易用、成本低廉。
图5为根据本发明实施例的PMTU探测装置500的结构示意图。PMTU探测装置500包括:探测报文发送模块502、计算结果获取模块504、比较模块506、记录修改模块508和丢弃模块510。
探测报文发送模块502,用于发送探测报文,探测报文包括校验码,校验码由源节点根据预定算法获得。
计算结果获取模块504,用于当源节点接收到差错报文时,根据差错报文的内容,采用预定算法进行计算,获取计算结果。
比较模块506,用于对校验码和计算结果进行比较。
记录修改模块508,用于当校验码与计算结果相同时,根据差错报文修改已记录的链路路径最大传输单元。
丢弃模块510,用于当校验码与计算结果不同时,丢弃差错报文。
图6为根据本发明另一实施例的PMTU探测装置的结构示意图。PMTU探测装置600包括:探测报文发送模块602、计算结果获取模块604、比较模块606、记录修改模块608和丢弃模块610。
探测报文发送模块602,用于发送探测报文,探测报文包括校验码,校验码由源节点根据预定算法获得。在一个实施例中,探测报文发送模块602包括随机数生成单元12和校验码生成单元14。其中,随机数生成单元12,用于生成一个随机数。校验码生成单元14,用于计算随机数、源地址和目标地址的CRC校验和,将CRC校验和作为校验码。
计算结果获取模块604,用于当源节点接收到差错报文时,根据差错报文的内容,采用预定算法进行计算,获取计算结果。
比较模块606,用于对校验码和计算结果进行比较。
记录修改模块608,用于当校验码与计算结果相同时,根据差错报文修改已记录的链路路径最大传输单元。
丢弃模块610,用于当校验码与计算结果不同时,丢弃差错报文。
在一个实施例中,探测报文和差错报文符合基于IPv6的互联网控制信息协议。其中,探测报文中的校验码由探测报文中的流标签字段承载。
本发明通过预定算法在源节点发出的探测报文中设置校验码。当收到差错报文时,可以根据差错报文中携带的原始报文信息,通过同样的算法判断差错报文是否是有效的探测反应。如果差错报文是伪造的,就可以直接丢弃。因此,本发明的实施例可以保证PMTU机制的有效性和安全性,有效的防范PMTU攻击。本发明的实施例实现快速、安全易用、成本低廉。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (6)
1.一种路径最大传输单元的探测方法,其特征在于,包括:
源节点发送探测报文,所述探测报文包括校验码,所述校验码由所述源节点根据预定算法获得;
当所述源节点接收到差错报文时,所述源节点根据所述差错报文的内容中携带的原始报文信息,采用所述预定算法进行计算,获取计算结果;
所述源节点对所述校验码和所述计算结果进行比较;
如果所述校验码与所述计算结果相同,所述源节点根据所述差错报文修改已记录的链路路径最大传输单元;
如果所述校验码与所述计算结果不同,所述源节点丢弃所述差错报文;
其中,所述探测报文和所述差错报文符合基于IPv6的互联网控制信息协议。
2.根据权利要求1所述的路径最大传输单元的探测方法,其特征在于,所述校验码由所述源节点根据预定算法获得包括:
所述源节点生成一个随机数;
所述源节点计算所述随机数、源地址和目标地址的CRC校验和,将所述CRC校验和作为所述校验码。
3.根据权利要求1所述的路径最大传输单元的探测方法,其特征在于,所述校验码由探测报文中的流标签字段承载。
4.一种路径最大传输单元的探测装置,其特征在于,包括:
探测报文发送模块,用于发送探测报文,所述探测报文包括校验码,所述校验码由源节点根据预定算法获得;
计算结果获取模块,用于当所述源节点接收到差错报文时,根据所述差错报文的内容中携带的原始报文信息,采用所述预定算法进行计算,获取计算结果;
比较模块,用于对所述校验码和所述计算结果进行比较;
记录修改模块,用于当所述校验码与所述计算结果相同时,根据所述差错报文修改已记录的链路路径最大传输单元;
丢弃模块,用于当所述校验码与所述计算结果不同时,丢弃所述差错报文;
其中,所述探测报文和所述差错报文符合基于IPv6的互联网控制信息协议。
5.根据权利要求4所述的路径最大传输单元的探测装置,其特征在于,探测报文发送模块包括:
随机数生成单元,用于生成一个随机数;
校验码生成单元,用于计算所述随机数、源地址和目标地址的CRC校验和,将所述CRC校验和作为所述校验码。
6.根据权利要求4所述的路径最大传输单元的探测装置,其特征在于,所述校验码由探测报文中的流标签字段承载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010288920.XA CN102412924B (zh) | 2010-09-21 | 2010-09-21 | 路径最大传输单元的探测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010288920.XA CN102412924B (zh) | 2010-09-21 | 2010-09-21 | 路径最大传输单元的探测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102412924A CN102412924A (zh) | 2012-04-11 |
CN102412924B true CN102412924B (zh) | 2015-05-27 |
Family
ID=45914797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010288920.XA Active CN102412924B (zh) | 2010-09-21 | 2010-09-21 | 路径最大传输单元的探测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102412924B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102821051B (zh) * | 2012-08-21 | 2015-11-18 | 神州数码网络(北京)有限公司 | 通用路由封装隧道中路径最大传输单元更改方法 |
WO2014205675A1 (zh) * | 2013-06-26 | 2014-12-31 | 华为技术有限公司 | 报文识别方法和防护设备 |
CN106789714B (zh) * | 2016-04-07 | 2021-04-09 | 新华三技术有限公司 | 一种报文处理方法及装置 |
CN113238789B (zh) * | 2021-05-27 | 2023-06-27 | 闻泰通讯股份有限公司 | 电子设备及其固件升级方法、装置和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1909503A (zh) * | 2005-08-05 | 2007-02-07 | 华为技术有限公司 | 一种探测路径最大传输单元的方法 |
CN1938982A (zh) * | 2004-04-07 | 2007-03-28 | 思科技术公司 | 通过认证因特网控制消息协议分组来防止网络攻击的方法和装置 |
CN101626373A (zh) * | 2008-07-11 | 2010-01-13 | 华为技术有限公司 | 超宽带系统的报文处理方法、装置和系统 |
-
2010
- 2010-09-21 CN CN201010288920.XA patent/CN102412924B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1938982A (zh) * | 2004-04-07 | 2007-03-28 | 思科技术公司 | 通过认证因特网控制消息协议分组来防止网络攻击的方法和装置 |
CN1909503A (zh) * | 2005-08-05 | 2007-02-07 | 华为技术有限公司 | 一种探测路径最大传输单元的方法 |
CN101626373A (zh) * | 2008-07-11 | 2010-01-13 | 华为技术有限公司 | 超宽带系统的报文处理方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102412924A (zh) | 2012-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6858749B2 (ja) | 負荷平衡システムにおいて接続を確立するデバイス及び方法 | |
JP2009525708A (ja) | プロトコルリンクレイヤ | |
CN101640645B (zh) | 报文传输方法和系统 | |
CN102412924B (zh) | 路径最大传输单元的探测方法和装置 | |
Rajashree et al. | Security with IP address assignment and spoofing for smart IOT devices | |
CN105635058B (zh) | 一种无协议栈模式下针对tcp的中间人处理方法 | |
Guamán et al. | Comparative performance analysis between MQTT and COAP protocols for IoT with Raspberry pi 3 in IEEE 802.11 environments | |
Gao et al. | Assessing performance of constrained application protocol (CoAP) in MANET using emulation | |
CN110213224B (zh) | 数据包异步转发方法和系统、数据处理系统及共识节点终端 | |
CN105634977A (zh) | 发现路径最大传输单元的方法和装置 | |
CN106454814A (zh) | 一种用于gtp隧道通信的系统与方法 | |
Mandalari et al. | Measuring ECN++: good news for++, bad news for ECN over mobile | |
JP2007082126A (ja) | Ip通信装置およびip通信システム | |
Alzahrani et al. | Securing the forwarding plane in information centric networks | |
CN110366170A (zh) | 一种基于软件定义安全的无线网络安全防御办法 | |
CN103688508B (zh) | 报文识别方法和防护设备 | |
Mogul et al. | Retrospective on" fragmentation considered harmful" | |
CN108521354B (zh) | 一种IPv6防火墙防护能力测试装置及测试方法 | |
CN102164135A (zh) | 前置可重构DDoS攻击防御装置及方法 | |
CN113872949A (zh) | 一种地址解析协议的应答方法及相关装置 | |
Zou et al. | Advanced routing worm and its security challenges | |
CN111431913B (zh) | 路由器通告防护机制存在性检测方法及装置 | |
CN108881044A (zh) | 一种报文处理方法和装置 | |
EP4184820B1 (en) | Ipv6 message transmission | |
CN114024716B (zh) | 一种基于mac地址动态欺骗实现定向微隔离的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |