一种流量控制策略处理方法和装置与流程

文档序号:12477675阅读:383来源:国知局
一种流量控制策略处理方法和装置与流程

本申请涉及无线通信技术领域,尤其涉及一种流量控制策略处理方法和装置。



背景技术:

在国际互联网工程任务组(The Internet Engineering Task Force,IETF)的请求注解协议(英文:request for comments,RFC)文档中,Flow Specification(以下简称FlowSpec)被定义为可应用于网际协议(InternetProtocol,IP)流量的由若干匹配规则(例如:源地址、目的地址、端口、源端口、目的端口、协议类型等)组成的n元组。通过FlowSpec部署的流量控制策略可以精准的匹配攻击流量,同时对攻击流量有多种选择动作:丢弃、限速、流量重定向等,是防御拒绝服务(Denial of service,DoS)和分布式拒绝服务(Distributed Denial of service,DDoS)攻击的有效方法。

借助边界网关协议(Border Gateway Protocol,BGP)的多协议扩展能力,FlowSpec流量控制策略可以分发到其他配置了BGP协议的设备上,并下发为转发平面的流量控制策略,限制发起DoS/DDoS攻击的攻击源的流量。BGP支持在自治系统(Autonomous System,AS)内和跨自治系统分发路由,可实现在最接近攻击源的设备上实现对攻击流量的过滤和控制,最大程度的减少攻击流量对网络转发性能的影响。

当某个设备收到其外部边界网关协议(External BGP,EBGP)邻居发送的FlowSpec流量控制策略且该FlowSpec流量控制策略对攻击流量采取流量重定向的方式时,例如将攻击流量重定向到特定的下一跳地址,此时需要对重定向到的下一跳地址进行合法性检查以确定该FlowSpec流量控制策略的有效性和合法性。未通过合法性检查的FlowSpec流量控制策略不会生效。所述合法性检查是由收到FlowSpec流量控制策略的设备内的BGP模块进行的,要求存在该下一跳地址的最佳匹配路由(即该下一跳地址可达),且该下一跳地址的最佳匹配路由是一条BGP路由,且该最佳匹配路由经过的最近自治系统和发送该FlowSpec流量控制策略的EBGP邻居所在的自治系统相同。

从合法性检查的规则来看,后续只要有协议类型为BGP的单播路由发生变化,就有可能导致FlowSpec流量控制策略的合法性检查结果发生变化。因此每次有BGP单播路由发生变化,就需要对所有控制策略为流量重定向的FlowSpec流量控制策略重新进行合法性检查。

由于FlowSpec流量控制策略的合法性检查需要遍历查询BGP的整个单播路由表,因此,当FlowSpec流量控制策略比较多,且BGP单播路由表包含的单播路由较多时,合法性检查会耗费大量的系统资源,如中央处理器(Central Processing Unit,CPU)资源和内存资源等,导致设备性能下降,影响正常业务的进行。

为减少对设备性能的影响,现有的方法一般是启用循环定时器,定期(如每60秒)检查是否有BGP单播路由发生变化,若有则根据最新的BGP单播路由表重新进行一遍合法性检查。这样,假设在循环定时器规定的一个周期内,BGP单播路由共发生了1000次变化,最终也只需进行一次合法性检查。

但是,每有BGP单播路由变化,上述启用循环定时器的方法都需要等待一定时长才能进行合法性检查,导致合法性检查收敛慢;且每有BGP单播路由发生变化,仍需要对所有控制策略为流量重定向的FlowSpec流量控制策略重新进行合法性检查,处理效率低下。



技术实现要素:

有鉴于此,本申请提供一种流量控制策略处理方法和装置,用以解决现有技术中启用循环定时器对FlowSpec流量控制策略进行合法性检查时收敛慢的问题,以及解决每有BGP单播路由变化需要对所有控制策略为流量重定向的FlowSpec流量控制策略重新进行合法性检查,导致处理效率低下的问题。

具体地,本申请是通过如下技术方案实现的:

本申请第一方面,提供了一种流量控制策略处理方法,所述方法应用于运行BGP的网络设备,所述方法包括:

所述网络设备的BGP模块接收所述网络设备的EBGP邻居发送的FlowSpec流量控制策略;

所述BGP模块在确定所述FlowSpec流量控制策略用于将指定数据流重定向到指定的下一跳地址时,将所述下一跳地址发送给所述网络设备的迭代模块;

所述BGP模块接收所述迭代模块发送的迭代结果变化通知,所述迭代结果变化通知由所述迭代模块在所述下一跳地址的可达性发生变化或在所述下一跳地址的最佳匹配路由发生变化时发送;

所述BGP模块根据所述迭代结果变化通知对所述下一跳地址重新进行合法性检查,依据合法性检查结果处理所述FlowSpec流量控制策略。

本申请第二方面,提供了一种流量控制策略处理方法,所述方法应用于运行BGP的网络设备,所述方法包括:

所述网络设备的迭代模块接收所述网络设备的BGP模块发送的下一跳地址;

在任一条路由变化时,所述迭代模块判断所述下一跳地址的可达性以及所述下一跳地址的最佳匹配路由是否发生变化;

在所述下一跳地址的可达性或所述下一跳地址的最佳匹配路由发生变化时,所述迭代模块向所述BGP模块发送迭代结果变化通知,以使所述BGP模块对所述下一跳地址重新进行合法性检查。

本申请第三方面,提供了一种流量控制策略处理装置,应用于运行BGP的网络设备,具有实现上述方法中BGP模块的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块或单元。

一种可能的实现方式中,所述装置包括:

第一接收单元,用于接收所述网络设备的EBGP邻居发送的FlowSpec流量控制策略;

发送单元,用于在确定所述FlowSpec流量控制策略用于将指定数据流重定向到指定的下一跳地址时,将所述下一跳地址发送给所述网络设备的迭代模块;

第二接收单元,用于接收所述迭代模块发送的迭代结果变化通知,所述迭代结果变化通知由所述迭代模块在所述下一跳地址的可达性发生变化或在所述下一跳地址的最佳匹配路由发生变化时发送;

处理单元,用于根据所述迭代结果变化通知对所述下一跳地址重新进行合法性检查,依据合法性检查结果处理所述FlowSpec流量控制策略。

另一种可能的实现方式中,所述装置包括处理器、网络接口和用于存储所述处理器可执行指令的存储器,所述存储器、所述网络接口和所述处理器之间通过总线系统相互连接;所述处理器用于执行以下操作:

通过所述网络接口接收所述网络设备的EBGP邻居发送的FlowSpec流量控制策略;在确定所述FlowSpec流量控制策略用于将指定数据流重定向到指定的下一跳地址时,将所述下一跳地址发送给所述网络设备的迭代模块;以及接收所述迭代模块发送的迭代结果变化通知,所述迭代结果变化通知由所述迭代模块在所述下一跳地址的可达性发生变化或在所述下一跳地址的最佳匹配路由发生变化时发送;根据所述迭代结果变化通知对所述下一跳地址重新进行合法性检查,依据合法性检查结果处理所述FlowSpec流量控制策略。

本申请第四方面,提供了一种流量控制策略处理装置,应用于运行BGP的网络设备,具有实现上述方法中迭代模块的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块或单元。

一种可能的实现方式中,所述装置包括:

接收单元,用于接收所述网络设备的BGP模块发送的下一跳地址;

判断单元,用于在任一条路由变化时,判断所述下一跳地址的可达性以及所述下一跳地址的最佳匹配路由是否发生变化;

发送单元,用于在所述判断单元确定所述下一跳地址的可达性或所述下一跳地址的最佳匹配路由发生变化时,向所述BGP模块发送迭代结果变化通知,以使所述BGP模块对所述下一跳地址重新进行合法性检查。

另一种可能的实现方式中,所述装置包括处理器和用于存储所述处理器可执行指令的存储器,所述存储器和所述处理器之间通过总线系统相互连接;所述处理器用于执行以下操作:

接收所述网络设备的BGP模块发送的下一跳地址;在任一条路由变化时,判断所述下一跳地址的可达性以及所述下一跳地址的最佳匹配路由是否发生变化;在所述下一跳地址的可达性或所述下一跳地址的最佳匹配路由发生变化时,向所述BGP模块发送迭代结果变化通知,以使所述BGP模块对所述下一跳地址重新进行合法性检查。

通过本申请的以上技术方案,基于路由迭代功能实现了对FlowSpec流量控制策略的重定向下一跳地址的快速检查,减少了路由变化时大量不必要的FlowSpec流量控制策略的遍历操作,为网络设备减轻了不必要的系统资源占用。并且当路由变化时本申请提供的方法可以实时发现受路由变化影响的FlowSpec流量控制策略,及时进行合法性检查,为网络设备提供了更高的性能。

附图说明

图1是现有技术中EBGP、IBGP和IGP的关系示意图;

图2是本申请实施例提供的一种流量控制策略处理方法的流程图;

图3是本申请实施例提供的一种说明AS路径属性信息的示意图;

图4是本申请实施例提供的一实施例的示意图;

图5是本申请实施例提供的一种流量控制策略处理装置的结构示意图;

图6是本申请实施例提供的另一种流量控制策略处理装置的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

以下,对本申请中的部分用语进行解释说明。

“BGP”:是一种用于自治系统之间的动态路由协议。自治系统是拥有同一选路策略,在同一技术管理部门下运行的一组路由器。当BGP运行于同一自治系统内部时,被称为IBGP,当BGP运行于不同自治系统之间时,称为EBGP。例如,图1中,假设R1、R2和R3均是BGP路由器,R4是非BGP路由器,由于R1与R2归属于同一个自治系统,因此R1和R2之间运行IBGP,R2是R1的IBGP邻居;由于R1与R3归属于不同的自治系统,因此R1和R3之间运行EBGP,R3是R1的EBGP邻居;而R1与R4之间则运行内部网关协议(Interior Gateway Protocol,IGP),R4是R1的IGP邻居。

“最佳匹配路由”,指按照最长匹配原则与某个地址相匹配的路由。具体的,地址X的最佳匹配路由Y满足以下条件:1)路由Y匹配地址X,即地址X包含在路由Y的网段内;2)路由Y是所有匹配地址X的路由中子网掩码最长的。例如,若查询192.168.20.19发现两个匹配地址192.168.20.16/28和192.168.0.0/16,由于前者的子网掩码(/28)比后者的子网掩码(/16)长,因此192.168.20.16/28是192.168.20.19的最佳匹配路由。

下面结合说明书附图和各实施例对本申请技术方案进行说明。

目前在BGP路由频繁变化的情况下,需要遍历所有控制策略为流量重定向的FlowSpec流量控制策略对重定向地址重新进行合法性检查,这会耗费大量的系统资源。本申请提供的方法通过借用网络设备内部已有的路由迭代功能,在路由变化时,可以只针对受路由变化影响的FlowSpec流量控制策略进行合法性检查,避免了对大量不必要的FlowSpec流量控制策略的遍历操作,为网络设备减轻了不必要的系统资源占用。并且当路由变化时本申请提供的方法可以实时发现受路由变化影响的FlowSpec流量控制策略,并及时进行合法性检查,解决了循环定时器造成的合法性检查收敛慢的问题。

本申请提供的流量控制策略处理方法,可适用于运行了BGP的网络设备,该网络设备可以是路由器、交换机、光传送网(optical transport network,OTN)设备、分组传送网(packet transport network,PTN)设备、波分复用(wavelength division multiplexing,WDM)设备或服务器。

网络设备执行本申请提供的流量控制策略处理方法时,主要涉及以下三个内部模块的交互。

BGP模块,用于发送和接收BGP消息,如接收来自EBGP邻居或IBGP邻居的BGP单播路由。在本申请中还可以用于接收网络设备的EBGP邻居发送的FlowSpec流量控制策略,以及将通过合法性检查的FlowSpec流量控制策略发送给该网络设备的EBGP邻居和IBGP邻居。

迭代模块,也可称为路由迭代模块,用于执行路由迭代功能。在BGP中,由于协议本身的特殊性,它产生的路由的下一跳地址可能不是当前路由器直接相连的邻居。这种情况下,为了能够将报文正确转发出去,必须先找到一个直接可达的地址,通过这个地址到达路由表中指示的下一跳。在上述过程中,迭代模块可以实现多级迭代,第一级迭代即是找到按照最长匹配原则与该下一跳地址相匹配的路由,假设查找到的路由为路由A,那么第二级迭代即是找到按照最长匹配原则与路由A的下一跳地址相匹配的路由B,以此类推可以进行多次迭代,直至找到一条直连接口地址。通过路由的下一跳地址找到直连接口地址的过程就是路由迭代(recursion)。本申请中,正是借用了迭代模块的第一级迭代结果,来实现对FlowSpec流量控制策略的重定向下一跳地址的合法性检查。

流量处理模块,用于根据BGP模块的指示对FlowSpec流量控制策略作生效或失效处理,并根据生效的FlowSpec流量控制策略匹配攻击流量以及对攻击流量执行以下至少一个动作:丢弃、限速或流量重定向。

网络设备收到的FlowSpec流量控制策略可以来自该网络设备的EBGP邻居,也可以来自该网络设备的IBGP邻居。下面通过图2,以如何处理来自EBGP邻居的FlowSpec流量控制策略为例,对本申请提供的方法进行描述。

当然,处理来自IBGP邻居的FlowSpec流量控制策略也可以采用图2所示的方法,二者的主要区别在于,在对来自IBGP邻居的FlowSpec流量控制策略进行合法性检查时,无需检查该FlowSpec流量控制策略包含的重定向下一跳地址的最佳匹配路由所经过的最近自治系统,是否和发送该FlowSpec流量控制策略的IBGP邻居所在的自治系统相同。

参见图2,图2为本申请提供的方法流程图。如图2所示,该流程可包括以下步骤:

步骤201:网络设备的BGP模块接收所述网络设备的EBGP邻居发送的FlowSpec流量控制策略。

步骤202:所述BGP模块在确定所述FlowSpec流量控制策略用于将指定数据流重定向到指定的下一跳地址时,将所述下一跳地址发送给所述网络设备的迭代模块。

其中,所述BGP模块可以将所述下一跳地址以及所述FlowSpec流量控制策略的索引一同发送给所述迭代模块。所述索引用于标识所述下一跳地址与所述FlowSpec流量控制策略之间的关联关系。例如,所述索引可以是用于指示FlowSpec流量控制策略的存储位置的指针,也可以是预先为FlowSpec流量控制策略分配的唯一标识。

所述迭代模块在接收到所述BGP模块发送的下一跳地址后,可以在已有的迭代结果记录中查询与所述下一跳地址相匹配的匹配迭代结果,所述匹配迭代结果用于指示所述下一跳地址是否可达以及所述下一跳地址可达时所述下一跳地址的最佳匹配路由。

若查询到所述匹配迭代结果,则表明所述下一跳地址在之前已被迭代模块所关注,所述迭代模块可以直接将查询到的匹配迭代结果发送给所述BGP模块,以使所述BGP模块基于所述迭代结果对所述下一跳地址进行合法性检查,合法性检查的过程可以参考下述步骤205的描述。

若未查询到所述匹配迭代结果,则表明所述下一跳地址在之前未被迭代模块所关注,所述迭代模块可以调用路由迭代流程,获取与所述下一跳地址对应的迭代结果,并将获取到的迭代结果发送给所述BGP模块,以及将获取到的迭代结果添加到所述已有的迭代结果记录中。其中,所述路由迭代流程可以通过查找本网络设备的全局路由表实现,全局路由表包含各种协议的路由,比如可以包括BGP路由和IGP路由。

步骤203:在任一条路由变化时,所述迭代模块判断所述下一跳地址的可达性以及所述下一跳地址的最佳匹配路由是否发生变化。

所述路由变化具体表现为:路由更新、路由删除或路由新增三种情况。例如,当BGP模块接收到EBGP邻居或IBGP邻居发送的新的BGP单播路由并确定该新的BGP单播路由有效(即该新的BGP单播路由的下一跳地址可达)时,或是已存储的BGP单播路由的下一跳地址的可达性发生变化时,都可视为路由发生了变化。

具体的,在任一条路由变化时,所述下一跳地址可能有以下六种情况:

第一,所述下一跳地址由可达变为不可达;

第二,所述下一跳地址由不可达变为可达,且所述下一跳地址的最佳匹配路由发生变化;

第三,所述下一跳地址由不可达变为可达,且所述下一跳地址的最佳匹配路由未发生变化;

第四,所述下一跳地址一直保持可达,且所述下一跳地址的最佳匹配路由发生变化;

第五,所述下一跳地址一直保持可达,且所述下一跳地址的最佳匹配路由未发生变化;

第六,所述下一跳地址一直保持不可达。

步骤204:在所述下一跳地址的可达性或所述下一跳地址的最佳匹配路由发生变化时,所述迭代模块向所述BGP模块发送迭代结果变化通知。

具体的,在上述前四种情况下,所述迭代模块均会向BGP模块发送迭代结果变化通知,并在迭代结果变化通知中携带有与所述下一跳地址对应的FlowSpec流量控制策略的索引,以便于所述BGP模块对与该索引对应的FlowSpec流量控制策略作出相应的生效或失效判断。

具体的,在第一种情况下,即任一条路由变化导致所述下一跳地址由可达变为不可达时,所述迭代模块会将所述下一跳地址不可达的信息携带在迭代结果变化通知中发送给所述BGP模块。

在第二种和第三种情况下,即任一条路由变化导致所述下一跳地址由不可达变为可达时,所述迭代模块会获取所述下一跳地址在任一条路由变化后的最佳匹配路由,并将该获取的最佳匹配路由以及所述下一跳地址可达的信息携带在迭代结果变化通知中发送给所述BGP模块。

在第四种情况下,即任一条路由变化未影响所述下一跳地址的可达性但导致所述下一跳地址的最佳匹配路由发生变化时,所述迭代模块会获取所述下一跳地址在任一条路由变化后的最佳匹配路由,并将该获取的最佳匹配路由以及所述下一跳地址可达的信息携带在迭代结果变化通知中发送给所述BGP模块。

步骤205:所述BGP模块接收到所述迭代模块发送的迭代结果变化通知后,根据所述迭代结果变化通知对所述下一跳地址重新进行合法性检查,依据合法性检查结果处理所述FlowSpec流量控制策略。

其中,合法性检查的实现过程如下:

a、当根据所述迭代结果变化通知确定所述下一跳地址不可达时,所述BGP模块可以确定所述下一跳地址未通过合法性检查,无需再进行其它项目的合法性检查。

b、如果路由变化后所述下一跳地址可达,则所述BGP模块从所述迭代结果变化通知中获取所述下一跳地址在路由变化后的最佳匹配路由,并继续判断该最佳匹配路由的协议类型是否为BGP。若不是,则可以确定所述下一跳地址未通过合法性检查,无需再进行其它项目的合法性检查。

其中,BGP模块可以从该最佳匹配路由的路由信息中获知该最佳匹配路由的协议类型。

c、如果路由变化后所述下一跳地址可达,且所述下一跳地址的最佳匹配路由的协议类型为BGP,则所述BGP模块继续判断该最佳匹配路由经过的最近自治系统是否和发送所述FlowSpec流量控制策略的EBGP邻居所在的自治系统相同,若不是,则所述BGP模块可以确定所述下一跳地址未通过合法性检查。

其中,BGP模块可以从该最佳匹配路由的AS路径(AS_PATH)属性中获知该最佳匹配路由经过的最近自治系统。

AS路径属性按一定次序记录了某条路由从本地到目的地址所要经过的所有AS号。当BGP将一条路由通告到其他AS时,便会把本地AS号添加在AS路径列表的最前面。收到此路由的BGP路由器根据AS路径属性就可以知道去目的地址所要经过的AS。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。

例如,图3中,R5接收到的一条路由的AS路径属性信息为(30,20,10),表明该路由从AS 10发出,依次经过了AS 20和AS 30,最终到达位于AS 50的R5。R5接收到的另一条路由的AS路径属性信息为(40,10),表明该路由从AS 10发出,经过AS 40,最终到达R5。对于AS路径属性信息为(30,20,10)的路由而言,该路由经过的最近的自治系统为AS 30,对于AS路径属性信息为(40,10)的路由而言,该路由经过的最近的自治系统为AS 40。

d、如果路由变化后所述下一跳地址可达,且所述下一跳地址的最佳匹配路由的协议类型为BGP,且该最佳匹配路由经过的最近自治系统和发送所述FlowSpec流量控制策略的EBGP邻居所在的自治系统相同,则所述BGP模块可以确定所述下一跳地址通过合法性检查。

可选的,上述合法性检查过程中BGP模块也可以调整合法性检查的各项目的顺序,例如,BGP模块可以先判断下一跳地址的可达性,然后再判断该下一跳地址的最佳匹配路由的AS路径属性,最后判断该最佳匹配路由的协议类型。

之后,在依据合法性检查结果处理FlowSpec流量控制策略时,若所述下一跳地址未通过合法性检查,则所述BGP模块确定所述迭代结果变化通知中携带的索引所对应的FlowSpec流量控制策略失效。若所述下一跳地址通过合法性检查,则所述BGP模块确定该索引对应的FlowSpec流量控制策略生效。

当FlowSpec流量控制策略由失效变生效时,所述BGP模块指示所述网络设备中的流量处理模块按照所述FlowSpec流量控制策略处理进入所述网络设备的流量,以及将所述FlowSpec流量控制策略发送给所述网络设备的IBGP邻居和除发送所述FlowSpec流量控制策略的EBGP邻居之外的其它EBGP邻居。

当FlowSpec流量控制策略由生效变失效时,所述BGP模块指示所述流量处理模块删除所述FlowSpec流量控制策略,以及通知所述网络设备的IBGP邻居和EBGP邻居删除所述FlowSpec流量控制策略。

综上所述,本申请提供的技术方案借用已有的路由迭代功能实现了对FlowSpec流量控制策略的重定向下一跳地址的快速检查,减少了路由变化时大量不必要的FlowSpec流量控制策略的遍历操作,为网络设备减轻了不必要的系统资源占用。并且当路由变化时本申请提供的方法可以实时发现受路由变化影响的FlowSpec流量控制策略,及时进行合法性检查,为网络设备提供了更高的性能。

为了更清楚地说明本申请的技术方案,下面通过一个实施例对上述技术方案做进一步的说明,需要说明的是,此实施例仅仅是本申请的一种实现方式,不构成对本申请的限定。

参见图4,R1归属于AS 10,R2归属于AS 20,R3归属于AS 30,R1和R2是EBGP邻居,R2和R3是EBGP邻居。

1、R3向R2的BGP模块发送了重定向下一跳地址为173.1.1.8的FlowSpec流量控制策略。

2、R2对该FlowSpec流量控制策略携带的下一跳地址173.1.1.8的合法性进行检查。R2的BGP模块将173.1.1.8发送给R2的迭代模块,假设迭代模块未找到与173.1.1.8相匹配的路由,则BGP模块认为173.1.1.8未通过合法性检查,该FlowSpec流量控制策略不会在R2上生效。

3、R3向R2的BGP模块发送了一条173.1.1.0/24的BGP路由(AS路径属性为30,下一跳地址为23.1.1.3)。

4、R2的BGP模块将该路由变化通知给迭代模块之后,迭代模块调用路由迭代流程发现173.1.1.8迭代到173.1.1.0/24(这条路由的下一跳地址23.1.1.3会迭代到本地直连接口地址23.1.1.0/24上)这条BGP路由上,于是迭代模块将173.1.1.8的可达消息、迭代到的路由173.1.1.0/24发送给BGP模块。

5、R2的BGP模块确定路由173.1.1.0/24是BGP路由,且173.1.1.0/24这条路由经过的最近的自治系统的标号为30,与R3的自治系统相同,因此确定173.1.1.8符合合法性检查。

6、R2通过本地直连接口地址23.1.1.0/24把重定向下一跳地址为173.1.1.8的FlowSpec流量控制策略转发给R1,同时向R1转发路由173.1.1.0/24(AS路径属性为(20,30),下一跳地址为12.1.1.2)。

7、R1对该FlowSpec流量控制策略携带的下一跳地址173.1.1.8的合法性进行检查。R1的迭代模块发现173.1.1.8迭代到173.1.1.0/24(这条路由的下一跳地址12.1.1.2会迭代到本地直连接口地址12.1.1.0/24上)这条BGP路由上,于是迭代模块将173.1.1.8的可达消息、迭代到的路由173.1.1.0/24发送给BGP模块。

8、R1的BGP模块确定路由173.1.1.0/24是BGP路由,且173.1.1.0/24这条路由经过的最近的自治系统的标号为20,与R2的自治系统相同,因此确定173.1.1.8符合合法性检查。

可选的,如果R1接收的173.1.1.0/24这条路由不是由R2直接发送给R1,而是由R2先发送给位于AS 40中的R4,再由R4转发给R1,那么上述第8步中,R1的BGP模块会确定出173.1.1.0/24这条路由经过的最近的自治系统的标号为40,与发送该FlowSpec流量控制策略的R2的自治系统不相同,从而确定173.1.1.8不符合合法性检查。

以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

基于本发明前述实施例提供的流量控制策略处理方法,本发明又一实施例提供一种流量控制策略处理装置500,该装置500应用于运行BGP的网络设备50中,所述网络设备50的硬件环境通常至少包括有CPU、内存以及非易失性存储器,当然还可能包括各种转发芯片、I/O接口等硬件。以软件实现为例,本实施例通过该网络设备50的CPU将非易失性存储器中对应的机器可读指令读取到内存中运行,以使该装置500完成前述方法实施例中BGP模块所完成的步骤,请参考图5所示,该装置500包括:

第一接收单元501,用于接收所述网络设备的EBGP邻居发送的FlowSpec流量控制策略。

发送单元502,用于在确定所述FlowSpec流量控制策略用于将指定数据流重定向到指定的下一跳地址时,将所述下一跳地址发送给所述网络设备的迭代模块。

第二接收单元503,用于接收所述迭代模块发送的迭代结果变化通知,所述迭代结果变化通知由所述迭代模块在所述下一跳地址的可达性发生变化或在所述下一跳地址的最佳匹配路由发生变化时发送。

处理单元504,用于根据所述迭代结果变化通知对所述下一跳地址重新进行合法性检查,依据合法性检查结果处理所述FlowSpec流量控制策略。

可选的,在根据所述迭代结果变化通知对所述下一跳地址重新进行合法性检查时,所述处理单元504具体用于:

当根据所述迭代结果变化通知确定所述下一跳地址不可达时,确定所述下一跳地址未通过合法性检查;

当根据所述迭代结果变化通知确定所述下一跳地址可达时,

从所述迭代结果变化通知中获取所述下一跳地址的最佳匹配路由,在获取的最佳匹配路由经过的最近自治系统和所述EBGP邻居所在的自治系统相同且该获取的最佳匹配路由的协议类型为BGP时,确定所述下一跳地址通过合法性检查,否则,确定所述下一跳地址未通过合法性检查。

可选的,在依据合法性检查结果处理所述FlowSpec流量控制策略时,所述处理单元504具体用于:

若所述下一跳地址未通过合法性检查,则确定所述FlowSpec流量控制策略失效;

若所述下一跳地址通过合法性检查,则确定所述FlowSpec流量控制策略生效。

相应的,所述发送单元502还用于:

当所述FlowSpec流量控制策略由失效变生效时,指示所述网络设备中的流量处理模块按照所述FlowSpec流量控制策略处理进入所述网络设备的流量,以及将所述FlowSpec流量控制策略发送给所述网络设备的内部边界网关协议IBGP邻居和除所述EBGP邻居之外的其它EBGP邻居;

当所述FlowSpec流量控制策略由生效变失效时,指示所述流量处理模块删除所述FlowSpec流量控制策略,以及通知所述网络设备的IBGP邻居和EBGP邻居删除所述FlowSpec流量控制策略。

基于本发明前述实施例提供的流量控制策略处理方法,本发明又一实施例提供一种流量控制策略处理装置600,该装置600与上述装置500位于同一个运行BGP的网络设备50中,所述网络设备50的硬件环境通常至少包括有CPU、内存以及非易失性存储器,当然还可能包括各种转发芯片、I/O接口等硬件。以软件实现为例,本实施例通过该网络设备50的CPU将非易失性存储器中对应的机器可读指令读取到内存中运行,以使该装置600完成前述方法实施例中迭代模块所完成的步骤,请参考图6所示,该装置600包括:

接收单元601,用于接收所述网络设备的BGP模块发送的下一跳地址。

判断单元602,用于在任一条路由变化时,判断所述下一跳地址的可达性以及所述下一跳地址的最佳匹配路由是否发生变化。

发送单元603,用于在所述判断单元602确定所述下一跳地址的可达性或所述下一跳地址的最佳匹配路由发生变化时,向所述BGP模块发送迭代结果变化通知,以使所述BGP模块对所述下一跳地址重新进行合法性检查。

可选的,所述发送单元603具体用于:

若任一条路由变化导致所述下一跳地址由可达变不可达,则将所述下一跳地址不可达的信息携带在迭代结果变化通知中发送给所述BGP模块;

若任一条路由变化导致所述下一跳地址由不可达变可达,则获取所述下一跳地址在任一条路由变化后的最佳匹配路由,并将该获取的最佳匹配路由以及所述下一跳地址可达的信息携带在迭代结果变化通知中发送给所述BGP模块;

若任一条路由变化未影响所述下一跳地址的可达性但导致所述下一跳地址的最佳匹配路由发生变化,则获取所述下一跳地址在任一条路由变化后的最佳匹配路由,并将该获取的最佳匹配路由以及所述下一跳地址可达的信息携带在迭代结果变化通知中发送给所述BGP模块。

可选的,所述装置600还包括查询单元;所述查询单元具体用于:

在所述接收单元601接收到所述BGP模块发送的下一跳地址之后,在已有的迭代结果记录中查询匹配迭代结果;所述匹配迭代结果用于指示所述下一跳地址是否可达以及所述下一跳地址可达时所述下一跳地址的最佳匹配路由;

若查询到所述匹配迭代结果,则指示所述发送单元603将查询到的匹配迭代结果发送给所述BGP模块,以使所述BGP模块基于所述迭代结果对所述下一跳地址进行合法性检查;

若未查询到所述匹配迭代结果,则调用路由迭代流程获取与所述下一跳地址对应的迭代结果,将获取到的迭代结果添加到所述已有的迭代结果记录中,并指示所述发送单元603将获取到的迭代结果发送给所述BGP模块。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1