CN106411791A - Icmp分片报文重组方法及转发方法、控制器及交换机 - Google Patents
Icmp分片报文重组方法及转发方法、控制器及交换机 Download PDFInfo
- Publication number
- CN106411791A CN106411791A CN201610802934.6A CN201610802934A CN106411791A CN 106411791 A CN106411791 A CN 106411791A CN 201610802934 A CN201610802934 A CN 201610802934A CN 106411791 A CN106411791 A CN 106411791A
- Authority
- CN
- China
- Prior art keywords
- icmp
- message
- packet
- fragment message
- controller
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种ICMP分片报文重组方法及转发方法、控制器及交换机,其中,在该ICMP分片报文重组方法中包括:S110控制器接收交换机上报的ICMP分片报文;S120控制器基于接收到的ICMP分片报文生成分片重组动态表;S130控制器基于生成的分片重组动态表对接收到的ICMP分片报文进行重组生成ICMP报文;S140控制器基于生成的ICMP报文对转发路径上的最大传输单元进行重新分配;S150控制器将流表下发至交换机实现后续ICMP报文的转发。有效避免了交换机直接将攻击ICMP分片报文丢弃之后同时将合法ICMP分片报文一并丢弃的问题,对用户数据进行了有效的保护。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种ICMP分片报文重组方法、一种ICMP分片报文转发方法、一种控制器以及一种交换机。
背景技术
ICMP(Internet Control Message Protocol)是Internet控制报文协议,其是TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。具体,该控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
一般来说,网络中传输的ICMP报文都不大,对于不同的***,能够传输的ICMP报文的大小也不一样,以测试网络的运行状态,检测网络转发路径的稳定性。
在网络运行过程中,若ICMP报文过大,超出了网络的MTU(Maximum TransmissionUnit,最大传输单元),会分成几个ICMP分片来进行发送。但是,在网络正常运行中,一般不会出现ICMP分片报文,大部分情况下是由于网络攻击导致的。若网络中存在大流量的ICMP分片报文,不但会占用宝贵的带宽资源,而且会导致***性能严重下降,甚至无法正常工作。
传统的交换机能够识别并且过滤ICMP分片报文,在使能ICMP分片报文过滤功能之后,正常转发和上送CPU(Central Processing Unit,中央处理器)的ICMP分片报文都会被直接丢弃,算法示意图如图1所示,其中,图示中的S1、S2、S3以及S4分别为交换机,具体,当交换机S4识别出客户端传输的为ICMP分片报文,则随即将其丢弃。但是,若这些ICMP分片报文不是攻击报文,无疑用户将会丢失数据。
发明内容
针对上述问题,本发明提供了一种ICMP分片报文重组方法、一种ICMP分片报文转发方法、一种控制器以及一种交换机,有效解决了现有技术中将合法ICMP分片报文丢弃的问题。
本发明提供的技术方案如下:
一种基于SDN的ICMP分片报文重组方法,该SDN中包括一控制器及多个交换机,该ICMP分片报文重组方法中包括:
S110控制器接收交换机上报的ICMP分片报文;
S120控制器基于接收到的ICMP分片报文生成分片重组动态表;
S130控制器基于生成的分片重组动态表对接收到的ICMP分片报文进行重组生成ICMP报文;
S140控制器基于生成的ICMP报文对转发路径上的MTU值进行重新分配;
S150控制器将流表下发至交换机实现后续ICMP报文的转发。
在本技术方案中,控制器将将接收到的报文进行重组之后进行转发,以此避免网络中存在大量的ICMP分片报文,占用宝贵的宽带资源;同时避免了交换机直接将攻击ICMP分片报文丢弃之后同时将合法ICMP分片报文一并丢弃的问题,对用户数据进行了有效的保护。
进一步优选地,在步骤S120中具体包括:
S121提取ICMP分片报文的源IP(Internet Protocol,网络之间互连的协议)地址和目的IP地址;
S122基于提取的源IP地址和目的IP地址生成分片重组动态表。
进一步优选地,在步骤S120中,所述分片重组动态表中包括:ICMP分片报文的源IP地址、目的IP地址以及报文处理类型;所述报文处理类型包括:报文重组类型和报文丢弃类型。
在本技术方案中,在分片重组动态表中配置好处理器接收到ICMP分片报文之后的报文处理类型,这样,处理器接收到ICMP分片报文之后即可能够判断出如何处理该ICMP分片报文,提高处理器的效率。
进一步优选地,在步骤S130中具体包括:
根据ICMP分片报文的转发路径判断其报文处理类型;
若判断该ICMP分片报文属于报文重组类型,则控制器对接收到的ICMP分片报文进行重组生成ICMP报文后转入步骤S140;
若判断该ICMP分片报文属于报文丢弃类型,则控制器向上报该ICMP分片报文的交换机下发流表,丢弃后续ICMP分片报文。
在本技术方案中,根据ICMP分片报文所属的报文处理类型对其进行处理,以此将攻击ICMP分片报文(不合法ICMP分片报文)进行丢弃,并将合法ICMP分片报文进行重组,之后重新计算整个网络的MTU值并重新分配各转发路径的MTU值,实现对重组得到的ICMP报文的转发。有效解决了交换机将合法ICMP分片报文丢弃的问题,同时提高到了整个网络的转发效率。
进一步优选地,在步骤S150之后还包括:
S160控制器向报文发送者反馈ICMP差错报文,并生效分配后个转发路径的MTU值。
本发明还提供了一种基于SDN的ICMP分片报文转发方法,所述SDN中包括一控制器及多个交换机,所述ICMP分片报文转发方法中包括:
S210交换机接收控制器下发的流表;
S220交换机接收数据报文,并将其与流表进行匹配;
S230交换机基于数据报文的匹配结果,进一步判断该数据报文是否为ICMP分片报文;
S240若判断出该数据报文为ICMP分片报文,则进一步判断该ICMP分片报文的报文处理类型;
S250交换机基于ICMP分片报文所属的报文处理类型对ICMP分片报文进行重组生成ICMP报文;
S260交换机根据流表中最新分配的MTU值对重组后的ICMP报文进行转发。
在本技术方案中,在交换机中根据控制器下发的流表对接收到的数据报文进行判断,若该数据报文为ICMP报文,则直接根据最新分配的MTU值进行转发。若其为ICMP分片报文则进行重组后进行转发,以此避免网络中存在大量的ICMP分片报文,占用宝贵的宽带资源;同时避免了交换机直接将攻击ICMP分片报文丢弃之后同时将合法ICMP分片报文一并丢弃的问题,对用户数据进行了有效的保护。
进一步优选地,在步骤S210中接收的流表中的匹配字段包括:源IP地址、目的IP地址、报文重组类型以及报文丢弃类型;
在步骤S240中:
若判断ICMP分片报文属于报文丢弃类型,则丢弃该ICMP分片报文;
若判断ICMP分片报文属于报文重组类型,则缓存ICMP分片报文并进行重组处理之后转入步骤S250。
在本技术方案中,交换机根据ICMP分片报文所属的报文处理类型对其进行处理,以此将攻击ICMP分片报文进行丢弃,并将合法ICMP分片报文进行重组,之后根据最新分配的MTU值实现对重组得到的ICMP报文的转发。有效解决了交换机将合法ICMP分片报文丢弃的问题,同时提高到了整个网络的转发效率。
本发明还提供了一种应用于SDN的控制器,该控制器与至少一个交换机连接,包括:
动态表项生成模块,基于接收到的ICMP分片报文生成分片重组动态表;
第一报文重组模块,基于动态表项生成模块生成的分片重组动态表对接收到的ICMP分片报文进行重组生成ICMP报文;
MTU值分配模块,基于第一报文重组模块生成的ICMP报文对转发路径上的MTU值进行重新分配;
流表下发模块,将流表下发至交换机实现后续ICMP报文的转发。
在本技术方案中,控制器将将接收到的报文进行重组之后进行转发,以此避免网络中存在大量的ICMP分片报文,占用宝贵的宽带资源;同时避免了交换机直接将攻击ICMP分片报文丢弃之后同时将合法ICMP分片报文一并丢弃的问题,对用户数据进行了有效的保护。
进一步优选地,所述动态表项生成模块中包括:
地址提取单元,用于提取ICMP分片报文的源IP地址和目的IP地址;
表项生成单元,用于基于地址提取单元提取的源IP地址和目的IP地址生成分片重组动态表。
进一步优选地,所述分片重组动态表中包括:ICMP分片报文的源IP地址、目的IP地址以及报文处理类型;所述报文处理类型包括:报文重组类型和报文丢弃类型。
在本技术方案中,在分片重组动态表中配置好处理器接收到ICMP分片报文之后的报文处理类型,这样,处理器接收到ICMP分片报文之后即可能够判断出如何处理该ICMP分片报文,提高处理器的效率。
进一步优选地,所述控制器中还包括第一判断模块,用于根据ICMP分片报文的转发路径判断其报文处理类型;
若所述第一判断模块判断ICMP分片报文属于报文重组类型,则第一报文重组模块对接收到的ICMP分片报文进行重组生成ICMP报文;
若所述第一判断模块判断ICMP分片报文属于报文丢弃类型,则流表下发模块向上报该ICMP分片报文的交换机下发流表,丢弃后续ICMP分片报文;
和/或,所述控制器中还包括差错报文反馈模块;
第一报文重组模块对接收到的ICMP分片报文进行重组生成ICMP报文之后,差错报文反馈模块向报文发送者反馈ICMP差错报文。
在本技术方案中,根据ICMP分片报文所属的报文处理类型对其进行处理,以此将攻击ICMP分片报文(不合法ICMP分片报文)进行丢弃,并将合法ICMP分片报文进行重组,之后重新计算整个网络的MTU值并重新分配各路径的MTU值,实现对重组得到的ICMP报文的转发。有效解决了交换机将合法ICMP分片报文丢弃的问题,同时提高到了整个网络的转发效率。
本发明还提供了一种应用于SDN的交换机,该交换机中包括:
流表匹配模块,用于将接收到数据报文与上述控制器下发的流表进行匹配;
第二判断模块,基于流表匹配模块的匹配结果,进一步数据报文是否为ICMP分片报文及判断ICMP分片报文的报文处理类型;
第二报文重组模块,基于第二判断模块判断的报文处理类型对ICMP分片报文进行重组生成ICMP报文;
报文转发模块,根据流表中最新分配的MTU值对第二报文重组模块重组后的ICMP报文进行转发。
在本技术方案中,在交换机中根据控制器下发的流表对接收到的ICMP分片报文进行重组后进行转发,以此避免网络中存在大量的ICMP分片报文,占用宝贵的宽带资源;同时避免了交换机直接将攻击ICMP分片报文丢弃之后同时将合法ICMP分片报文一并丢弃的问题,对用户数据进行了有效的保护。
进一步优选地,控制器下发的流表中的匹配字段包括:源IP地址、目的IP地址、报文丢弃类型以及报文重组类型;
若第二判断模块判断ICMP分片报文属于报文丢弃类型,则丢弃该ICMP分片报文;
若第二判断模块判断ICMP分片报文属于报文重组类型,则缓存ICMP分片报文之后第二报文重组模块对其进行重组,之后报文转发模块基于最新分配的MTU值对重组后的ICMP报文进行转发。
在本技术方案中,交换机根据ICMP分片报文所属的报文处理类型对其进行处理,以此将攻击ICMP分片报文进行丢弃,并将合法ICMP分片报文进行重组,之后根据最新分配的MTU值实现对重组得到的ICMP报文的转发。有效解决了交换机将合法ICMP分片报文丢弃的问题,同时提高到了整个网络的转发效率。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对上述特性、技术特征、优点及其实现方式予以进一步说明。
图1为现有技术中交换机对ICMP分片报文进行处理的硬件结构示意图;
图2为本发明中ICMP分片报文重组方法一种实施方式流程示意图;
图3为本发明中Experimenter报文的报文格式示意图;
图4为本发明中ICMP分片报文重组方法另一种实施方式流程示意图;
图5为本发明中ICMP分片报文转发方法流程示意图;
图6为本发明中控制器一种实施方式结构示意图;
图7为本发明中控制器另一种实施方式结构示意图;
图8为本发明中控制器另一种实施方式结构示意图;
图9为本发明中交换机结构示意图;
图10为本发明中ICMP分片报文转发一种具体实施方式***结构示意图。
附图标号说明:
100-控制器,110-动态表项生成模块,120-第一报文重组模块,130-MTU值分配模块,140-流表下发模块,150-第一判断模块,160-差错报文反馈模块,200-交换机,210-流表匹配模块,220-第二判断模块,230-第二报文重组模块,240-报文转发模块。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
如图2所示为本发明提供的基于SDN的ICMP分片报文重组方法一种实施方式流程示意图,其中,该SDN中包括一控制器及多个交换机。从图中可以看出,在该ICMP分片报文重组方法中包括:S110控制器接收交换机上报的ICMP分片报文;S120控制器基于接收到的ICMP分片报文生成分片重组动态表;S130控制器基于生成的分片重组动态表对接收到的ICMP分片报文进行重组生成ICMP报文;S140控制器基于生成的ICMP报文对转发路径上的MTU值进行重新分配;S150控制器将流表下发至交换机实现后续ICMP报文的转发。
具体来说,控制器在接收到交换机上报的ICMP分片报文之后,随即提取该ICMP分片报文的源IP地址和目的IP地址;并基于提取到的源IP地址和目的IP地址生成分片重组动态表。然后控制器根据生成的分片重组动态表重组ICMP分片报文,并重新计算网络的MTU值;之后,控制器根据ICMP分片报文的目的IP地址计算报文转发路径,并根据报文转发路径对转发路径上的MTU值进行重新分配。最后控制器将流表下发至转发路径上的交换机,并生效各报文转发路径分配后的MTU值,以此,转发路径上的交换机根据流表实现后续ICMP报文的转发。
更具体来说,如表1所示,在上述分片重组动态表中配置项包括:ICMP分片报文的源IP地址、目的IP地址以及报文处理类型;其中,源IP地址表明数据流(包括ICMP分片报文)的源IP地址;目的IP地址表面数据流的目的IP地址;报文处理类型包括:报文重组类型和报文丢弃类型,具体,报文重组类型为重组并重新计算整个网络的MTU值,报文丢弃类型为直接丢弃ICMP分片报文。另外,在该分片重组动态表中,报文处理类型默认为报文重组类型。
表1:分片重组动态表
基于此,在步骤S130中具体包括:根据ICMP分片报文的转发路径判断其报文处理类型。若判断该ICMP分片报文属于报文重组类型,则控制器对接收到的ICMP分片报文进行重组生成ICMP报文后转入步骤S140;若判断该ICMP分片报文属于报文丢弃类型,则控制器向上报该ICMP分片报文的交换机下发流表,丢弃后续同一转发路径的ICMP分片报文。
要说明的是,控制器中要实现上述目的,如表2所示,该控制器应支持基于SDN的ICMP分片报文重组配置任务序列,具体包括:基于数据流的ICMP分片重组动态表及基于SDN的ICMP分片报文重组算法功能打开或关闭。基于此,若整个网络中出现较多的ICMP分片报文,并需要对其进行进一步处理,则基于该ICMP分片报文重组配置任务序列打开基于SDN的ICMP分片报文重组算法功能;若不需要对网络中的ICMP分片报文进行处理,则关闭相应的功能。
表2:ICMP分片报文重组配置任务序列
另外,在本实施方式中,我们对交换机到控制器的私有扩展Experimenter报文做出说明,具体格式如图3所示。从图中可以看出,在该Experimenter报文中,包括:Version(版本号)、Type(数据类型)、Length(数据长度)、Transaction ID(事务ID号)、Experimenter值(图示中Experimenter)、Experimenter类型(图示中Experimenter Type)、端口号(如图示中的Port 1、……、Port n)以及各端口号对应的MTU值,具体在该Experimenter报文中,上报的端口号支持128个,即n=128。更进一步来说,交换机向控制器上报ICMP分片报文的过程中,该Experimenter值为255(表示需要向ONF(Open NetworkingFoundation,开放网络基金会)组织申请),Experimenter类型为1(表示数据方向为从交换机到控制器),且该私有Experimenter报文由交换机上报给控制器。
对上述实施方式进行改进得到本实施方式,如图4所示,在该ICMP分片报文重组方法中包括:S110控制器接收交换机上报的ICMP分片报文;S120控制器基于接收到的ICMP分片报文生成分片重组动态表;S130控制器基于生成的分片重组动态表对接收到的ICMP分片报文进行重组生成ICMP报文;S140控制器基于生成的ICMP报文对转发路径上的MTU值进行重新分配;S150控制器将流表下发至交换机实现后续ICMP报文的转发;S160控制器向报文发送者反馈ICMP差错报文,并生效分配后的MTU值。
具体来说,控制器在接收到交换机上报的ICMP分片报文之后,随即提取该ICMP分片报文的源IP地址和目的IP地址;并基于提取到的源IP地址和目的IP地址生成分片重组动态表。随后,计算ICMP分片报文的转发路径,并基于此判断该ICMP分片报文的报文处理类型。具体,若判断该ICMP分片报文属于报文丢弃类型,则控制器向上报该ICMP分片报文的交换机下发流表,丢弃后续同一转发路径的ICMP分片报文。若判断该ICMP分片报文属于报文重组类型,则控制器对接收到的ICMP分片报文进行重组生成ICMP报文后重新计算网络的MTU值,并根据报文转发路径对转发路径上的MTU值进行重新分配。最后,控制器将流表下发至转发路径上的交换机并向报文发送者反馈ICMP差错报文,同时生效各报文转发路径分配后的MTU值,以此,转发路径上的交换机根据流表实现后续ICMP报文的转发。
如图5所示为本发明中提供的基于SDN的ICMP分片报文转发方法的流程示意图,具体,在该ICMP分片报文转发方法中包括:S210交换机接收控制器下发的流表;S220交换机接收数据报文,并将其与流表进行匹配;S230交换机基于数据报文的匹配结果,进一步判断该数据报文是否为ICMP分片报文;S240若判断出该数据报文为ICMP分片报文,则进一步判断该ICMP分片报文的报文处理类型;S250交换机基于ICMP分片报文所属的报文处理类型对ICMP分片报文进行重组生成ICMP报文;S260交换机根据流表中最新分配的MTU值对重组后的ICMP报文进行转发。
具体,在步骤S220中,交换机中根据数据报文中IP头中的MF字段或IP头中的OFFSET字段来判断该数据报文是ICMP报文还是ICMP分片报文,具体,若IP头中的MF字段不为0或者IP头OFFSET字段不为0,则表示该数据报文为ICMP分片报文。更具体来说,若判断出该数据报文为ICMP报文,则直接根据流表中最新分配的MTU值对接收到的ICMP报文进行转发。若判断出该数据报文为ICMP分片报文,则进一步判断该ICMP分片报文的报文处理类型,进入步骤S250。
具体来说,如表3所示,上述流表中的匹配字段(表中Match字段)包括:源IP地址、目的IP地址、报文重组类型以及报文丢弃类型,其中,对于匹配字段为“源IP地址,目的IP地址,报文丢弃类型”来说,动作字段为“丢弃报文”,具体描述为“报文直接被丢弃”;对于匹配字段为“源IP地址,目的IP地址,报文重组类型”来说,动作字段为“重组报文,转发报文”,具体描述为“缓存分片报文,进行重组处理;根据最新分配的MTU值,转发报文”。
基于此,在本实施方式中,在步骤S240中:若判断ICMP分片报文属于报文丢弃类型,则丢弃该ICMP分片报文;若判断ICMP分片报文属于报文重组类型,则缓存ICMP分片报文并进行重组处理之后转入步骤S240。另外,从以上描述可知,由该流表实际上是控制器中下发的,故除了交换机中支持流表的扩充,控制器中同样支持流表的扩充,以控制器基于接收到的ICMP分片报文生成表3所示的扩充流表并下发至转发路径上的交换机中。
表3:流表
如图6所示为本发明提供的控制器一种实施方式结构示意图,具体该控制器应用于上述ICMP分片报文重组方法,且该控制器100与至少一个交换机200连接。从图中可以看出,在该控制器100中包括:动态表项生成模块110、第一报文重组模块120、MTU值分配模块130以及流表下发模块140,其中,第一报文重组模块120与动态表项生成模块110连接,MTU值分配模块130与第一报文重组模块120连接,流表下发模块140与MTU值分配模块130连接。进一步来说,在该动态表项生成模块中包括:相互连接的地址提取单元和表项生成单元,其中,地址提取单元用于提取ICMP分片报文的源IP地址和目的IP地址;表项生成单元基于地址提取单元提取的源IP地址和目的IP地址生成分片重组动态表。
在工作过程中,动态表项生成模块110在接收到交换机上报的ICMP分片报文之后,随即地址提取单元提取该ICMP分片报文的源IP地址和目的IP地址;之后表项生成单元基于提取到的源IP地址和目的IP地址生成分片重组动态表。随后,第一报文重组模块120根据生成的分片重组动态表重组ICMP分片报文,并重新计算网络的MTU值;之后,MTU值分配模块130根据ICMP分片报文的目的IP地址计算报文转发路径,并根据报文转发路径对转发路径上的MTU值进行重新分配。最后,流表下发模块140将流表下发至转发路径上的交换机,并生效各报文转发路径分配后的MTU值,以此,转发路径上的交换机根据流表实现后续ICMP报文的转发。
更具体来说,如表1所示,在上述分片重组动态表中配置项包括:ICMP分片报文的源IP地址、目的IP地址以及报文处理类型;其中,源IP地址表明数据流(包括ICMP分片报文)的源IP地址;目的IP地址表面数据流的目的IP地址;报文处理类型包括:报文重组类型和报文丢弃类型,具体,报文重组类型为重组并重新计算整个网络的MTU值,报文丢弃类型为直接丢弃ICMP分片报文。另外,在该分片重组动态表中,报文处理类型默认为报文重组类型。
基于此,对上述实施方式进行改进得到本实施方式,如图7所示,在本实施方式中,控制器100中除了包括动态表项生成模块110、第一报文重组模块120、MTU值分配模块130以及流表下发模块140之外,还包括第一判断模块150,用于根据ICMP分片报文的转发路径判断其报文处理类型。
具体,在工作过程中,若第一判断模块150根据ICMP分片报文的转发路径判断其报文处理类型。若判断出该ICMP分片报文属于报文重组类型,则第一报文重组模块120对接收到的ICMP分片报文进行重组生成ICMP报文;若第一判断模块150判断ICMP分片报文属于报文丢弃类型,则流表下发模块140向上报该ICMP分片报文的交换机200下发流表,丢弃后续同一转发路径的ICMP分片报文;
对上述实施方式进行改进得到本实施方式,如图8所示,在本实施方式中,控制器100中除了包括动态表项生成模块110、第一报文重组模块120、MTU值分配模块130、流表下发模块140以及第一判断模块150之外,还包括差错报文反馈模块160。在工作过程中,第一报文重组模块120对接收到的ICMP分片报文进行重组生成ICMP报文之后,差错报文反馈模块160向报文发送者反馈ICMP差错报文。
在工作过程中,动态表项生成模块110在接收到交换机上报的ICMP分片报文之后,随即地址提取单元提取该ICMP分片报文的源IP地址和目的IP地址;之后表项生成单元基于提取到的源IP地址和目的IP地址生成分片重组动态表。接着,第一判断模块150根据ICMP分片报文的转发路径判断其报文处理类型。若第一判断模块150判断ICMP分片报文属于报文丢弃类型,则流表下发模块140向上报该ICMP分片报文的交换机200下发流表,丢弃后续同一转发路径的ICMP分片报文;若判断出该ICMP分片报文属于报文重组类型,则第一报文重组模块120对接收到的ICMP分片报文进行重组生成ICMP报文,并重新计算网络的MTU值;之后,MTU值分配模块130根据ICMP分片报文的目的IP地址计算报文转发路径,并根据报文转发路径对转发路径上的MTU值进行重新分配。最后,流表下发模块140将流表下发至转发路径上的交换机,并使用差错报文反馈模块160向报文发送者反馈ICMP差错报文,同时生效各报文转发路径分配后的MTU值,以此,转发路径上的交换机根据流表实现后续ICMP报文的转发。
如图9所示为本发明提供的交换机200,应用于上述ICMP分片报文的转发方法,具体该交换机200中包括:流表匹配模块210、第二判断模块220、第二报文重组模块230以及报文转发模块240,其中,第二判断模块220与流表匹配模块210连接,第二报文重组模块230与第二判断模块220连接,报文转发模块240与第二报文重组模块230连接。
在工作过程中,首先,流表匹配模块210将接收到ICMP分片报文与控制器100下发的流表进行匹配;之后,第二判断模块220基于流表匹配模块210的匹配结果,进一步数据报文是否为ICMP分片报文,若判断出该数据报文为ICMP报文,则报文转发模块240直接根据流表中最新分配的MTU值对接收到的ICMP报文进行转发。若判断出为ICMP分片报文(数据报文中IP头中的MF字段不为0或者IP头OFFSET字段不为0),则进一步判断ICMP分片报文的报文处理类型;接着,第二报文重组模块230基于第二判断模块220判断的报文处理类型对ICMP分片报文进行重组生成ICMP报文;最后,报文转发模块240根据流表中最新分配的MTU值对第二报文重组模块230重组后的ICMP报文进行转发。
具体来说,如表3所示,上述流表中的匹配字段(表中Match字段)包括:源IP地址、目的IP地址、报文重组类型以及报文丢弃类型,其中,对于匹配字段为“源IP地址,目的IP地址,报文丢弃类型”来说,动作字段为“丢弃报文”,具体描述为“报文直接被丢弃”;对于匹配字段为“源IP地址,目的IP地址,报文重组类型”来说,动作字段为“重组报文,转发报文”,具体描述为“缓存分片报文,进行重组处理;根据最新分配的MTU值,转发报文”。
以此,若第二判断模块220判断ICMP分片报文属于报文丢弃类型,则直接丢弃该ICMP分片报文;若第二判断模块220判断ICMP分片报文属于报文重组类型,则缓存ICMP分片报文之后第二报文重组模块230对其进行重组,之后报文转发模块240基于最新分配的MTU值对重组后的ICMP报文进行转发。另外,从以上描述可知,由该流表实际上是控制器中下发的,故除了交换机中支持流表的扩充,控制器中同样支持流表的扩充,以控制器基于接收到的ICMP分片报文生成表3所示的扩充流表并下发至转发路径上的交换机中。
作为一个完整的实施例中,如图10所示(图示中箭头方向表示信号流动方向),在该实施例中,包括交换机100(如图示中的S0、S1、S2以及S3),控制器200、客户端以及服务器。
在该实施例中,假定客户端中发送了大小为500字节的ICMP分片报文(图示中步骤①);控制器在接收到该ICMP分片报文之后,判定其为报文重组类型之后对ICMP分片报文进重组后得到大小为1000字节的ICMP报文,则控制器开始计算整个转发路径的MTU值,并基于重组后ICMP报文的大小对转发路径上的MTU值重新分配(图示中步骤②),将转发路径的MTU值更新为1000字节,并下发流表至各交换机中,之后向客户端中反馈ICMP差错报文(图示中步骤③)。
之后,若客户端中直接产生大小为1000字节的ICMP报文(非分片)(图示中步骤④),则SDN直接将该ICMP报文进行转发至服务器。若交换机S0中接收到大小为500字节的ICMP分片报文,基于控制器下发的流表对接收到的ICMP分片报文进行匹配,同样对其报文处理类型进行判断,若判断出为报文重组类型,则对其进行重组得到大小为1000字节的ICMP报文进行相应路径上的转发。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种基于软件定义网络的ICMP分片报文重组方法,其特征在于,所述软件定义网络中包括一控制器及多个交换机,所述ICMP分片报文重组方法中包括:
S110控制器接收交换机上报的ICMP分片报文;
S120控制器基于接收到的ICMP分片报文生成分片重组动态表;
S130控制器基于生成的分片重组动态表对接收到的ICMP分片报文进行重组生成ICMP报文;
S140控制器基于生成的ICMP报文对转发路径上的最大传输单元进行重新分配;
S150控制器将流表下发至交换机实现后续ICMP报文的转发。
2.如权利要求1所述的ICMP分片报文重组方法,其特征在于,在步骤S120中具体包括:
S121提取ICMP分片报文的源IP地址和目的IP地址;
S122基于提取的源IP地址和目的IP地址生成分片重组动态表。
3.如权利要求1或2所述的ICMP分片报文重组方法,其特征在于,在步骤S120中,所述分片重组动态表中包括:ICMP分片报文的源IP地址、目的IP地址以及报文处理类型;所述报文处理类型包括:报文重组类型和报文丢弃类型。
4.如权利要求3所述的ICMP分片报文重组方法,其特征在于,在步骤S130中具体包括:
根据ICMP分片报文的转发路径判断其报文处理类型;
若判断该ICMP分片报文属于报文重组类型,则控制器对接收到的ICMP分片报文进行重组生成ICMP报文后转入步骤S140;
若判断该ICMP分片报文属于报文丢弃类型,则控制器向上报该ICMP分片报文的交换机下发流表,丢弃后续ICMP分片报文。
5.如权利要求1或2或4所述的ICMP分片报文重组方法,其特征在于,在步骤S150之后还包括:
S160控制器向报文发送者反馈ICMP差错报文,并生效分配后的最大传输单元。
6.一种基于软件定义网络的ICMP分片报文转发方法,其特征在于,所述软件定义网络中包括一控制器及多个交换机,所述ICMP分片报文转发方法中包括:
S210交换机接收控制器下发的流表;
S220交换机接收数据报文,并将其与流表进行匹配;
S230交换机基于数据报文的匹配结果,进一步判断该数据报文是否为ICMP分片报文;
S240若判断出该数据报文为ICMP分片报文,则进一步判断该ICMP分片报文的报文处理类型;
S250交换机基于ICMP分片报文所属的报文处理类型对ICMP分片报文进行重组生成ICMP报文;
S260交换机根据流表中最新分配的最大传输单元对重组后的ICMP报文进行转发。
7.如权利要求6所述的ICMP分片报文转发方法,其特征在于,在步骤S210中接收的流表中的匹配字段包括:源IP地址、目的IP地址、报文重组类型以及报文丢弃类型;
在步骤S240中:
若判断ICMP分片报文属于报文丢弃类型,则丢弃该ICMP分片报文;
若判断ICMP分片报文属于报文重组类型,则缓存ICMP分片报文并进行重组处理之后转入步骤S250。
8.一种应用于软件定义网络的控制器,其特征在于,所述控制器与至少一个交换机连接,所述控制器中包括:
动态表项生成模块,基于接收到的ICMP分片报文生成分片重组动态表;
第一报文重组模块,基于动态表项生成模块生成的分片重组动态表对接收到的ICMP分片报文进行重组生成ICMP报文;
最大传输单元分配模块,基于第一报文重组模块生成的ICMP报文对转发路径上的最大传输单元进行重新分配;
流表下发模块,将流表下发至交换机实现后续ICMP报文的转发。
9.如权利要求8所述的控制器,其特征在于,
所述动态表项生成模块中包括:
地址提取单元,用于提取ICMP分片报文的源IP地址和目的IP地址;
表项生成单元,用于基于地址提取单元提取的源IP地址和目的IP地址生成分片重组动态表。
10.如权利要求8或9所述的控制器,其特征在于,
所述分片重组动态表中包括:ICMP分片报文的源IP地址、目的IP地址以及报文处理类型;所述报文处理类型包括:报文重组类型和报文丢弃类型。
11.如权利要求10所述的控制器,其特征在于,所述控制器中还包括第一判断模块,用于根据ICMP分片报文的转发路径判断其报文处理类型;
若所述第一判断模块判断ICMP分片报文属于报文重组类型,则第一报文重组模块对接收到的ICMP分片报文进行重组生成ICMP报文;
若所述第一判断模块判断ICMP分片报文属于报文丢弃类型,则流表下发模块向上报该ICMP分片报文的交换机下发流表,丢弃后续ICMP分片报文;
和/或,所述控制器中还包括差错报文反馈模块;
第一报文重组模块对接收到的ICMP分片报文进行重组生成ICMP报文之后,差错报文反馈模块向报文发送者反馈ICMP差错报文。
12.一种应用于软件定义网络的交换机,其特征在于,所述交换机中包括:
流表匹配模块,用于将接收到数据报文与权利要求8-11任意一项所述控制器下发的流表进行匹配;
第二判断模块,基于流表匹配模块的匹配结果,进一步数据报文是否为ICMP分片报文及判断ICMP分片报文的报文处理类型;
第二报文重组模块,基于第二判断模块判断的报文处理类型对ICMP分片报文进行重组生成ICMP报文;
报文转发模块,根据流表中最新分配的最大传输单元对第二报文重组模块重组后的ICMP报文进行转发。
13.如权利要求12所述的交换机,其特征在于,控制器下发的流表中的匹配字段包括:源IP地址、目的IP地址、报文丢弃类型以及报文重组类型;
若第二判断模块判断ICMP分片报文属于报文丢弃类型,则丢弃该ICMP分片报文;
若第二判断模块判断ICMP分片报文属于报文重组类型,则缓存ICMP分片报文之后第二报文重组模块对其进行重组,之后报文转发模块基于最新分配的最大传输单元对重组后的ICMP报文进行转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610802934.6A CN106411791A (zh) | 2016-09-05 | 2016-09-05 | Icmp分片报文重组方法及转发方法、控制器及交换机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610802934.6A CN106411791A (zh) | 2016-09-05 | 2016-09-05 | Icmp分片报文重组方法及转发方法、控制器及交换机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106411791A true CN106411791A (zh) | 2017-02-15 |
Family
ID=57999542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610802934.6A Pending CN106411791A (zh) | 2016-09-05 | 2016-09-05 | Icmp分片报文重组方法及转发方法、控制器及交换机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106411791A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110213204A (zh) * | 2018-03-13 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 攻击防护方法及装置、设备及可读存储介质 |
CN118101348A (zh) * | 2024-04-26 | 2024-05-28 | 南京理工大学 | 一种面向不良网站流量分片行为的检测与处理方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217540A (zh) * | 2008-01-04 | 2008-07-09 | 杭州华三通信技术有限公司 | 报文隧道分片的自适应调整方法、装置和*** |
CN101640635A (zh) * | 2009-07-31 | 2010-02-03 | 北京师范大学 | 一种6over4隧道中避免报文重组的方法及*** |
CN101645851A (zh) * | 2009-09-03 | 2010-02-10 | 中兴通讯股份有限公司 | 一种ip分片报文的重组方法和装置 |
US7995522B2 (en) * | 2007-07-13 | 2011-08-09 | Hitachi, Ltd. | Base station and packet transfer equipment |
CN102404186A (zh) * | 2010-09-09 | 2012-04-04 | 杭州华三通信技术有限公司 | 一种报文分片重组的方法及装置 |
CN103491096A (zh) * | 2013-09-29 | 2014-01-01 | 中国科学院信息工程研究所 | 一种IPv6分片报文抗攻击重组方法及装置 |
CN103532672A (zh) * | 2013-10-22 | 2014-01-22 | 芮雄丽 | 一种sdn网络中分片报文乱序的处理方法及应用 |
-
2016
- 2016-09-05 CN CN201610802934.6A patent/CN106411791A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7995522B2 (en) * | 2007-07-13 | 2011-08-09 | Hitachi, Ltd. | Base station and packet transfer equipment |
CN101217540A (zh) * | 2008-01-04 | 2008-07-09 | 杭州华三通信技术有限公司 | 报文隧道分片的自适应调整方法、装置和*** |
CN101640635A (zh) * | 2009-07-31 | 2010-02-03 | 北京师范大学 | 一种6over4隧道中避免报文重组的方法及*** |
CN101645851A (zh) * | 2009-09-03 | 2010-02-10 | 中兴通讯股份有限公司 | 一种ip分片报文的重组方法和装置 |
CN102404186A (zh) * | 2010-09-09 | 2012-04-04 | 杭州华三通信技术有限公司 | 一种报文分片重组的方法及装置 |
CN103491096A (zh) * | 2013-09-29 | 2014-01-01 | 中国科学院信息工程研究所 | 一种IPv6分片报文抗攻击重组方法及装置 |
CN103532672A (zh) * | 2013-10-22 | 2014-01-22 | 芮雄丽 | 一种sdn网络中分片报文乱序的处理方法及应用 |
Non-Patent Citations (1)
Title |
---|
NETWORK WORKING GROUP: "INTERNET CONTROL MESSAGE PROTOCAL", 《NETWORK WORKING GROUP》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110213204A (zh) * | 2018-03-13 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 攻击防护方法及装置、设备及可读存储介质 |
CN110213204B (zh) * | 2018-03-13 | 2022-09-23 | 腾讯科技(深圳)有限公司 | 攻击防护方法及装置、设备及可读存储介质 |
CN118101348A (zh) * | 2024-04-26 | 2024-05-28 | 南京理工大学 | 一种面向不良网站流量分片行为的检测与处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7725938B2 (en) | Inline intrusion detection | |
WO2018133454A1 (zh) | 远程服务访问路径控制方法和相关设备 | |
KR20180041953A (ko) | 인공지능을 이용하여 DDoS 공격을 탐지하는 소프트웨어 정의 네트워크 및 이에 포함되는 컨트롤러 | |
US10931711B2 (en) | System of defending against HTTP DDoS attack based on SDN and method thereof | |
CN110191065B (zh) | 基于软件定义网络的高性能负载均衡***与方法 | |
Chen et al. | Comprehensive understanding of TCP Incast problem | |
Khanna et al. | Adaptive selective verification: An efficient adaptive countermeasure to thwart dos attacks | |
WO2008034000A1 (en) | Systems and methods of improving performance of transport protocols in a multi-path environment | |
CN104486243A (zh) | 数据传输方法、设备及*** | |
US20230010837A1 (en) | Fault diagnosis method and apparatus thereof | |
EP4387184A1 (en) | Method, apparatus and system for determining network optimization policy | |
CN106411791A (zh) | Icmp分片报文重组方法及转发方法、控制器及交换机 | |
M. Abdelmoniem et al. | Reducing latency in multi-tenant data centers via cautious congestion watch | |
CN113438182B (zh) | 一种基于信用的流量控制***和流量控制方法 | |
CN102427452B (zh) | 同步报文发送方法、装置和网络设备 | |
CN113612698A (zh) | 一种数据包发送方法及装置 | |
US11055166B2 (en) | Covertly storing a payload of data within a network | |
US20230047971A1 (en) | Packet transmission method and communication device | |
KR100733830B1 (ko) | 광대역 네트워크에서의 분산 서비스 거부 공격 탐지 및대응 방법 | |
US8098688B1 (en) | Methods and apparatus for optimizing network management traffic using dynamic SNMP packet resizing | |
WO2010081321A1 (zh) | 实现上送速率动态联动的方法、装置和*** | |
CN113162911B (zh) | 基于sdn网络控制器的多协议兼容的数据交互方法及装置 | |
CN101064671A (zh) | 一种基于p2p技术的网络视频信号的处理方法 | |
WO2015070427A1 (zh) | 维护关联ma设置方法、装置及*** | |
CN111327590A (zh) | 一种攻击处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170215 |
|
WD01 | Invention patent application deemed withdrawn after publication |