一种报文转发方法及装置的制造方法
【专利摘要】本发明提供一种报文转发方法及装置,该方法包括:判断接收的报文是否携带流量清洗标记,所述流量清洗标记用于表示当前报文为已经过检测的正常报文;当所述报文中携带流量清洗标记时,转发所述报文。本发明可提高正常报文的转发效率。
【专利说明】
一种报文转发方法及装置
技术领域
[0001]本发明涉及网络通信技术领域,尤其涉及一种报文转发方法及装置。【背景技术】
[0002]随着互联网应用的不断发展,网络攻击造成的后果越来越严重。其中,DoS(Denial of service,拒绝服务)/DDos(Distributed Denial of Service,分布式拒绝服务)攻击 (统称拒绝服务攻击)由于其隐蔽性及易于实施而成为惯用攻击手段。
[0003]目前,针对拒绝服务攻击比较流行的做法是在最接近攻击源的设备上下发转发平面的流量控制策略,例如,Fl〇wSpeC(Fl〇W Specificat1n,流说明)流量控制策略,该流量控制策略可精准的匹配攻击流量,并对攻击流量进行过滤和控制,从而减少攻击流量对网络转发性能的影响。
[0004]FlowSpec流量控制策略可通过路由协议携带,例如,BGP (Border Gateway Protocol,边界网关协议),从而在运行BGP协议的网络设备下发FlowSpec流量控制策略,并对每一个经过的流量(包括正常流量)进行FlowSpec检测,以识别攻击流量,这在一定程度上影响正常流量的传输效率。
【发明内容】
[0005]本发明的目的在于提供一种报文转发方法及装置,用以降低运营商网络中各网络设备对正常流量的检测次数。
[0006]为实现上述发明目的,本发明提供了技术方案:
[0007]本发明提供一种报文转发方法,应用于运营商网络中的网络设备,所述方法包括:
[0008]判断接收的报文是否携带流量清洗标记,所述流量清洗标记用于表示当前报文为已经过检测的正常报文;
[0009]当所述报文中携带流量清洗标记时,转发所述报文。
[0010]本发明还提供一种报文转发装置,应用于运营商网络中的网络设备,所述装置包括:
[0011]标记判断单元,用于判断接收的报文是否携带流量清洗标记,所述流量清洗标记用于表示当前报文为已经过检测的正常报文;
[0012]报文转发单元,用于当所述报文中携带流量清洗标记时,转发所述报文。
[0013]由以上描述可以看出,本发明实施例提出一种报文转发方法,该方法在确认接收的报文中携带流量清洗标记时,对报文直接转发,不进行检测,从而提高正常报文的转发效率。【附图说明】
[0014]图1是本发明实施例示出的防攻击网络示意图;
[0015]图2是本发明实施例示出的报文转发方法流程图;
[0016]图3是本发明实施例示出的IP报文头格式;
[0017]图4A是本发明实施例示出的网络设备的结构示意图;
[0018]图4B是图4A所示网络设备的报文转发装置的结构示意图。【具体实施方式】
[0019]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0020]在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。 在本发明和所附权利要求书中所使用的单数形式的“一种”、“”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0021]应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当…… 时”或“响应于确定”。
[0022]在具体阐述本发明实施例之前,首先简单介绍一下本发明实施例中会涉及到的相关技术。[〇〇23] DoS/DDoS攻击为一种集中流量攻击技术,攻击者通过控制成千上万的攻击设备对同一个目标(用户地址或者服务器)同时发起流量攻击,导致该目的地址的上游接入设备或受攻击服务器被异常流量拥塞,用户无法正常使用。该攻击方式容易实施、隐蔽性强、简单有效,因此,成为黑客惯用攻击手段,对网络安全构成严重威胁,给企业和用户带来了巨大的经济损失和影响。[〇〇24]目前,针对DoS/DDoS攻击最有效的防御方式是在最接近攻击源的设备上下发转发平面的流量控制策略,对匹配流量控制策略的攻击流量进行过滤和控制,从而在攻击源附近对攻击流量进行限制,降低对用户网络的威胁。
[0025]在IETF(Internet Engineering Task Force,国际互联网工程任务组)的RFC文档中,FlowSpec被定义为可应用于IP(Internet Protocol,网际协议)流量的由若干匹配规则组成的n元组,例如,源地址、目的地址、端口、源端口、目的端口、协议类型、ICMPdnternet Control Message Protocol,国际控制报文协议)类型、分片情况、TCP (Transmiss1n Control Protocol,传输控制协议)标记、DSCP(Differentiated Services Code Point,差分服务代码点)值等。因此,可利用FlowSpec技术部署流量控制策略(简称FlowSpec流量控制策略),以达到精准匹配攻击流量,并对攻击流量执行多种选择动作,例如,全部丢弃、限速、流量重定向或者修改IP报文的DSCP值等,从而减轻DoS/DDoS攻击的影响。
[0026] BGP (Border Gateway Protocol,边界网关协议)是用来在 AS (Autonomous System,自治系统)之间传递选路信息的路径向量协议,是域间路由协议,着眼于控制路由的传播和选择最好的路由。利用BGP协议报文的NLRI (Network Layer Reachabi 1 ityInformat1n,网络层可达信息)字段可封装其它协议信息,并传递给其他配置了 BGP协议的设备,因此,很多协议借助BGP的这种协议扩展能力来传递自己需要的各种路由信息。
[0027]FlowSpec技术同样可借助BGP的协议扩展能力,将FlowSpec流量控制策略分发到其他配置BGP协议的设备上,并下发到设备的转发平面。设备根据FlowSpec流量控制策略对经过的流量(包括正常流量)进行FlowSpec检测,对匹配FlowSpec流量控制策略的攻击流量进行过滤和控制,从而在攻击源附近对攻击流量进行限制,降低对用户网络的威胁。但是, 该FlowSpec检测方式会影响正常流量的传输效率。
[0028]本发明实施例提出一种报文转发方法,该方法在确认接收的报文中携带流量清洗标记时,对报文直接转发,不再进行FlowSpec检测,从而提高正常报文的转发效率。
[0029]参见图1,为本发明实施例示出的一种防攻击网络示意图。该防攻击网络包括用户网络10、用户网络20以及运营商网络30。其中,用户网络10包括主机11和网络设备12;用户网络20包括王机21和网络设备22;运宫商网络30包括网络设备31?网络设备33。
[0030]首先,各网络设备通过BGP协议建立邻居关系。当网络设备(例如,网络设备12)检测到攻击时,生成一条FlowSpec表项(即FlowSpec流量控制策略),并触发BGP协议生成BGP FlowSpec路由,该BGP FlowSpec路由携带FlowSpec表项信息,通过BGP邻居将该BGP FlowSpec路由通告给其它网络设备。[〇〇31] 运营商网络中的网络设备(例如,网络设备31)接收到该BGP FlowSpec路由后,将该BGP FlowSpec路由下发到转发平面,生成FlowSpec表项,后续根据该FlowSpec表项匹配接收的报文进行FlowSpec检测,从而确定接收的报文是否为攻击报文,进而采取相应措施 (例如,过滤或限流)。
[0032]参见图2,为本发明报文转发方法的一个实施例流程图,该实施例对报文转发过程进行描述。
[0033]在以下描述中,将未作限定的网络设备默认为运营商网络的网络设备。[0〇34]步骤201,判断接收的报文是否携带流量清洗标记。[〇〇35]本发明实施例中的流量清洗标记用于表示当前报文已进行过FlowSpec检测,且检测结果为正常报文。[〇〇36]步骤202,当所述报文中携带流量清洗标记时,转发所述报文。
[0037]当网络设备接收到携带流量清洗标记的报文时,说明当前报文是已经被其它网络设备检测过的正常报文,因此,不再对该报文执行FlowSpec检测,直接进行转发,从而减少对正常报文的检测次数,提高正常报文的转发效率。
[0038]当根据步骤201的判断结果,确认报文中未携带流量清洗标记时,对接收的报文执行FlowSpec检测,即根据网络设备中已下发的FlowSpec表项(如前所述FlowSpec表项通过 BGP协议携带并分发,该FlowSpec表项记录了攻击报文的报文特征,即攻击报文的n元组信息)判断当前报文是否为攻击报文。
[0039]当接收的报文的报文特征与FlowSpec表项中记录的攻击报文的报文特征相同时, 确定接收的报文为攻击报文;否则,不为攻击报文。当接收的报文不为攻击报文时,网络设备为该报文添加流量清洗标记后转发,以提示后续接收到该报文的网络设备该报文为经过检测的正常报文,无需再执行FlowSpec检测。
[0040]在一种较优的实施方式中,网络设备可在现有IP报文的报文头中携带流量清洗标记,以表示当前报文为经过检测的正常报文。具体地,可在图3所示IP报文头的标志字段 (3Bit)携带,该标志字段包括3位(Bit),其中,第一位未被使用;第二位为DF(Don’t Fragment,禁止分片)位,只有当DF位为0时才允许分片;第三位为MF(More Fragment,多分片)位,当MF位为1时表示后面还有分片报文,为0时表示最后一个分片。本发明实施例利用标志字段中未被使用的第一位作为清洗标记位,携带流量清洗标记。例如,当检测当前报文为正常报文时,设置清洗标记位为1。当其他网络设备接收到该报文时,通过识别该清洗标记位确认当前报文为正常报文,进而不再执行FlowSpec检测,直接转发。[〇〇411当网络设备通过FlowSpec检测确认报文为攻击报文时,丢弃该报文,从而实现对攻击报文的拦截,屏蔽了对用户网络的影响。
[0042]此外,为了防止攻击者获知本发明的防御策略,而在攻击报文中携带流量清洗标记,进而规避FlowSpec检测,本发明实施例对接收的报文首先进行网络来源的检测,即判断接收的报文是否来自运营商网络内部,对于来自运营商网络内部的报文执行前述步骤201 和步骤202的处理;对于不是来自运营商网络内部的报文,例如,来自用户网络的报文,则清除报文中的流量清洗标记,再执行步骤201和步骤202的处理,即对从用户网络进入运营商网络的报文强制执行FlowSpec检测。
[0043]现仍以图1为例,详细介绍报文转发过程。
[0044]假设,主机21向主机11发送IP报文,该IP报文经过网络设备22转发后进入运营商网络30。
[0045]网络设备33接收网络设备22转发的IP报文,根据接收该IP报文的接口,确定与该接口连接的设备(运营商网络30外部的设备或运营商网络30内部的设备),进而确定该IP报文是来自运营商网络30内部的报文,还是来自运营商网络30外部网络的报文。当确认该IP 报文来自运营商网络30外部时,强制清除IP报文中的流量清洗标记(如前所述,可设置IP报文中标志字段的第一位为0)。[〇〇46]网络设备33对接收的IP报文执行FlowSpec检测,当检测该IP报文为攻击报文(本实施例默认网络设备33中已存在该IP报文对应的FlowSpec表项)时,将该IP报文丢弃,不再向网络设备32转发;当检测该IP报文为正常报文时,在该IP报文中添加流量清洗标记(设置 IP报文中标志字段的第一位为1),并转发给网络设备32。[〇〇47]网络设备32确认接收的IP报文来自运营商网络30内部,并确认该IP报文携带流量清洗标记,则不再执行FlowSpec检测,直接转发给网络设备31。[〇〇48]同理,网络设备31在确认接收的IP报文来自运营商网络30内部,且该IP报文携带流量清洗标记时,不执行FlowSpec检测,直接转发给网络设备12。[〇〇49]网络设备12将IP报文转发给主机11。[〇〇5〇]由本实施例可以看出,在运营商网络中,正常报文只执行了一个FlowSpec检测,大大提高了正常报文的转发效率。
[0051]与前述报文转发方法的实施例相对应,本发明还提供了报文转发装置的实施例。 [〇〇52]本发明报文转发装置400的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器运行存储器中对应的计算机程序指令形成的。从硬件层面而言,如图4A所示,为本发明报文转发装置所在设备的一种硬件结构图,除了图4A所示的处理器以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0053]请参考图4B,为本发明一个实施例中的报文转发装置400的结构示意图。该报文转发装置400包括标记判断单元401和报文转发单元402,其中:
[0054]标记判断单元401,用于判断接收的报文是否携带流量清洗标记,所述流量清洗标记用于表示当前报文为已经过检测的正常报文;[〇〇55]报文转发单元402,用于当所述报文中携带流量清洗标记时,转发所述报文。[〇〇56] 进一步地,所述装置400还包括:
[0057]报文判断单元,用于当所述报文中未携带流量清洗标记时,判断所述报文是否为攻击报文;
[0058]标记添加单元,用于当所述报文不为攻击报文时,为所述报文添加流量清洗标记;
[0059]所述报文转发单元402,还用于转发所述添加流量清洗标记的报文。
[0060]进一步地,所述装置400还包括:[〇〇61]报文接收单元,用于在所述报文判断单元判断所述报文是否为攻击报文之前,接收边界网关协议BGP报文,所述BGP报文携带流说明FlowSpec表项,所述FlowSpec表项中记录了攻击报文的报文特征;[0〇62]所述报文判断单元,具体用于当所述接收的报文的报文特征与所述FlowSpec表项中记录的攻击报文的报文特征相同时,确定所述接收的报文为攻击报文;否则,确定所述接收的报文不为攻击报文。[〇〇63] 进一步地,所述装置400还包括:
[0064]标记清除单元,用于在所述标记判断单元401判断接收的报文中是否携带流量清洗标记之前,判断所述报文是否来自于运营商网络内部;当所述报文不是来自于运营商网络内部时,清除所述报文中的流量清洗标记。
[0065]进一步地,[〇〇66]所述流量清洗标记携带在报文头中标志字段的第一位Bit。
[0067]上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0068]对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0069]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1.一种报文转发方法,应用于运营商网络中的网络设备,其特征在于,所述方法包括: 判断接收的报文是否携带流量清洗标记,所述流量清洗标记用于表示当前报文为已经过检测的正常报文;当所述报文中携带流量清洗标记时,转发所述报文。2.如权利要求1所述的方法,其特征在于,所述方法还包括:当所述报文中未携带流量清洗标记时,判断所述报文是否为攻击报文;当所述报文不为攻击报文时,为所述报文添加流量清洗标记;转发所述添加流量清洗标记的报文。3.如权利要求2所述的方法,其特征在于,所述判断所述报文是否为攻击报文之前,还 包括:接收边界网关协议BGP报文,所述BGP报文携带流说明FlowSpec表项,所述FlowSpec表 项中记录了攻击报文的报文特征;所述判断所述报文是否为攻击报文,包括:当所述接收的报文的报文特征与所述FlowSpec表项中记录的攻击报文的报文特征相 同时,确定所述接收的报文为攻击报文;否则,确定所述接收的报文不为攻击报文。4.如权利要求1所述的方法,其特征在于,所述判断接收的报文中是否携带流量清洗标 记之前,还包括:判断所述报文是否来自于运营商网络内部;当所述报文不是来自于运营商网络内部时,清除所述报文中的流量清洗标记。5.如权利要求1至4任一所述的方法,其特征在于:所述流量清洗标记携带在报文头中标志字段的第一位Bit。6.—种报文转发装置,应用于运营商网络中的网络设备,其特征在于,所述装置包括: 标记判断单元,用于判断接收的报文是否携带流量清洗标记,所述流量清洗标记用于表示当前报文为已经过检测的正常报文;报文转发单元,用于当所述报文中携带流量清洗标记时,转发所述报文。7.如权利要求6所述的装置,其特征在于,所述装置还包括:报文判断单元,用于当所述报文中未携带流量清洗标记时,判断所述报文是否为攻击 报文;标记添加单元,用于当所述报文不为攻击报文时,为所述报文添加流量清洗标记;所述报文转发单元,还用于转发所述添加流量清洗标记的报文。8.如权利要求7所述的装置,其特征在于,所述装置还包括:报文接收单元,用于在所述报文判断单元判断所述报文是否为攻击报文之前,接收边 界网关协议BGP报文,所述BGP报文携带流说明FlowSpec表项,所述FlowSpec表项中记录了 攻击报文的报文特征;所述报文判断单元,具体用于当所述接收的报文的报文特征与所述FlowSpec表项中记 录的攻击报文的报文特征相同时,确定所述接收的报文为攻击报文;否则,确定所述接收的 报文不为攻击报文。9.如权利要求6所述的装置,其特征在于,所述装置还包括:标记清除单元,用于在所述标记判断单元判断接收的报文中是否携带流量清洗标记之前,判断所述报文是否来自于运营商网络内部;当所述报文不是来自于运营商网络内部时, 清除所述报文中的流量清洗标记。10.如权利要求6至9任一所述的装置,其特征在于:所述流量清洗标记携带在报文头中标志字段的第一位Bit。
【文档编号】H04L12/801GK106059939SQ201610339071
【公开日】2016年10月26日
【申请日】2016年5月19日
【发明人】余清炎
【申请人】杭州华三通信技术有限公司