一种FlowSpec路由生效方法、装置及网络设备与流程

文档序号:15594241发布日期:2018-10-02 19:19阅读:384来源:国知局
本发明涉及网络通信
技术领域
,尤其涉及一种flowspec路由生效方法、装置及网络设备。
背景技术
:flowspec(flowspecification,流规则)是目前比较流行的一种防攻击和流量控制技术。控制器通过向网络设备下发flowspec路由,指导网络设备对流量进行过滤和转发。当用户要求按时段过滤流量时,控制器需要按时段下发和撤销flowspec路由。随着这种要求按时段过滤的流量的增多,控制器下发和撤销flowspec路由的频率越来越高,导致网络资源消耗较大,且网络设备的处理压力较大。技术实现要素:本发明为了解决flowspec路由下发对网络设备处理性能的影响,提出一种flowspec路由生效方法、装置及网络设备,用以降低网络设备的处理压力。为实现上述公开目的,本发明提供了如下技术方案:第一方面,本发明提供一种flowspec路由生效方法,应用于网络设备上,所述方法包括:获取控制器下发的携带community(团体)属性的flowspec路由;向所述网络设备的转发芯片下发所述flowspec路由对应的acl(accesscontrollist,访问控制列表)表项;若所述flowspec路由的community属性命中预设的community属性与生效时间段的对应关系,且所述flowspec路由对应的acl表项的表项标识未命中已记录的community属性与表项标识的对应关系,则记录所述flowspec路由的community属性与所述flowspec路由对应的acl表项的表项标识的对应关系;若当前时间命中community属性与生效时间段的对应关系,则确定与当前时间对应的目标community属性;根据community属性与表项标识的对应关系,设置表项标识为所述目标community属性对应的表项标识的acl表项生效,设置表项标识为除所述目标community属性以外的其它community属性对应的表项标识的acl表项失效。第二方面,本发明还提供一种flowspec路由生效装置,应用于网络设备上,所述装置包括:获取单元,用于获取控制器下发的携带community属性的flowspec路由;下发单元,用于向所述网络设备的转发芯片下发所述flowspec路由对应的acl表项;记录单元,用于若所述flowspec路由的community属性命中预设的community属性与生效时间段的对应关系,且所述flowspec路由对应的acl表项的表项标识未命中已记录的community属性与表项标识的对应关系,则记录所述flowspec路由的community属性与所述flowspec路由对应的acl表项的表项标识的对应关系;确定单元,用于若当前时间命中community属性与生效时间段的对应关系,则确定与当前时间对应的目标community属性;设置单元,用于根据community属性与表项标识的对应关系,设置表项标识为所述目标community属性对应的表项标识的acl表项生效,设置表项标识为除所述目标community属性以外的其它community属性对应的表项标识的acl表项失效。第三方面,本发明还提供一种网络设备,所述网络设备包括处理器cpu和转发芯片,所述cpu,用于获取控制器下发的携带community属性的flowspec路由;向所述转发芯片下发所述flowspec路由对应的acl表项;若所述flowspec路由的community属性命中预设的community属性与生效时间段的对应关系,且所述flowspec路由对应的acl表项的表项标识未命中已记录的community属性与表项标识的对应关系,则记录所述flowspec路由的community属性与所述flowspec路由对应的acl表项的表项标识的对应关系;若当前时间命中community属性与生效时间段的对应关系,则确定与当前时间对应的目标community属性;根据community属性与表项标识的对应关系,通知所述转发芯片设置表项标识为所述目标community属性对应的表项标识的acl表项生效,设置表项标识为除所述目标community属性以外的其它community属性对应的表项标识的acl表项失效;所述转发芯片,用于接收所述cpu的通知,设置相应acl表项生效或失效。第四方面,本发明还提供一种网络设备,所述网络设备包括处理器cpu和转发芯片,所述cpu,用于获取控制器下发的携带community属性的flowspec路由;向所述转发芯片下发所述flowspec路由对应的携带所述community属性的acl表项;所述转发芯片,用于若所述community属性命中预设的community属性与生效时间段的对应关系,且所述acl表项的表项标识未命中已记录的community属性与表项标识的对应关系,则记录所述community属性与所述acl表项的表项标识的对应关系;若当前时间命中community属性与生效时间段的对应关系,则确定与当前时间对应的目标community属性;根据community属性与表项标识的对应关系,设置表项标识为所述目标community属性对应的表项标识的acl表项生效,设置表项标识为除所述目标community属性以外的其它community属性对应的表项标识的acl表项失效。由以上描述可以看出,本发明中,网络设备通过预设community属性与生效时间段的对应关系,以及维护community属性与已下发到转发芯片中的acl表项(flowspec路由对应的acl表项)的表项标识的对应关系,在网络设备的当前时间命中community属性与生效时间段的对应关系时,获取与当前时间对应的目标community属性,并根据维护的community属性与表项标识的对应关系,设置表项标识为目标community属性对应的表项标识的acl表项生效,设置表项标识为除目标community属性以外的其它community属性对应的表项标识的acl表项失效,从而达到按时段生效flowspec路由的目的。本发明中控制器只需要向网络设备下发一次flowspec路由,网络设备即可自行根据flowspec路由的community属性对应的生效时间段,生效flowspec路由对应的acl表项,因此,可节约网络资源,降低网络设备的处理压力。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例示出的一种flowspec路由生效方法流程图;图2是本发明实施例示出的一种flowspec路由生效装置的结构示意图;图3是本发明实施例示出的一种网络设备的硬件结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本发明提出一种flowspec路由生效方法,参见图1,为本发明实施例示出的一种flowspec路由生效方法的流程图,该实施例从网络设备侧对flowspec路由生效过程进行描述。步骤101,获取控制器下发的携带community属性的flowspec路由。flowspec路由基于bgp(bordergatewayprotocol,边界网关协议)报文传输,例如,bgp的update(更新)报文,网络设备从bgp报文中获取控制器下发的flowspec路由以及该flowspec路由的community属性。步骤102,向所述网络设备的转发芯片下发所述flowspec路由对应的acl表项。查询转发芯片中是否存在flowspec路由对应的acl表项,若不存在flowspec路由对应的acl表项,则向转发芯片下发该flowspec路由对应的acl表项,此时,该下发的acl表项未生效,即处于失效状态。步骤103,若所述flowspec路由的community属性命中预设的community属性与生效时间段的对应关系,且所述flowspec路由对应的acl表项的表项标识未命中已记录的community属性与表项标识的对应关系,则记录所述flowspec路由的community属性与所述flowspec路由对应的acl表项的表项标识的对应关系。网络设备中预设community属性与生效时间段的对应关系,参见表1,为community属性与生效时间段的对应关系示例。community属性生效时间段100:1001:00-2:00200:2008:00-9:00300:3005:00-6:00400:4003:00-4:00表1若通过步骤101获取的flowspec路由的community属性命中预设的community属性与生效时间段的对应关系,说明该flowspec路由需要按照时间段控制;此时,需要进一步判断是否已存在该flowspec路由对应的acl表项的表项标识与community属性的对应关系,具体为,若flowspec路由对应的acl表项的表项标识未命中已记录的community属性与表项标识的对应关系,即当前不存在该flowspec路由对应的acl表项的表项标识与community属性的对应关系,则记录该flowspec路由的community属性与该flowspec路由对应的acl表项的表项标识的对应关系。举例说明,若通过步骤101获取的flowspec路由的community属性为100:100,命中表1中第一条对应关系,说明当前获取的flowspec路由需要基于时间段控制,若该flowspec路由对应的acl表项的表项标识(记为acl1000)未命中当前已记录的community属性与表项标识的对应关系,则记录community属性(100:100)与表项标识(acl1000)的对应关系,如表2中第三条对应关系所示。表2由以上描述可以看出,通过community属性与生效时间段的对应关系(例如,表1中的第一条对应关系),以及community属性与表项标识的对应关系(例如,表2中第三条对应关系),可间接得到acl表项与生效时间段的对应关系(表项标识为acl1000的acl表项的生效时间段为1:00-2:00)。需要补充说明的是,若前述步骤102确定转发芯片中存在flowspec路由对应的acl表项,说明该flowspec路由对应的acl表项已下发到转发芯片中;若本步骤又确定该acl表项的表项标识命中community属性与表项标识的对应关系,说明该acl表项曾基于时间段控制;由于flowspec路由的community属性有可能发生变化,因此,本发明根据当前flowspec路由的community属性,更新已记录的该flowspec路由的acl表项的表项标识对应的community属性。若通过步骤101获取的flowspec路由未携带community属性或携带的community属性未命中预设的community属性与生效时间段的对应关系,说明该flowspec路由不需要按照时间段控制,则在通过步骤102向转发芯片下发该flowspec路由对应的acl表项后,立即设置该flowspec路由对应的acl表项生效。步骤104,若当前时间命中community属性与生效时间段的对应关系,则确定与当前时间对应的目标community属性。举例说明,若当前时间为1:00,命中表1中的第一条对应关系,则获取第一条对应关系中的community属性(100:100)作为目标community属性。步骤105,根据community属性与表项标识的对应关系,设置表项标识为所述目标community属性对应的表项标识的acl表项生效,设置表项标识为除所述目标community属性以外的其它community属性对应的表项标识的acl表项失效。通过步骤104获取到目标community属性后,查询当前已记录的community属性与表项标识的对应关系,找到目标community属性对应的表项标识,设置表项标识为目标community属性对应的表项标识的acl表项生效,例如,目标community属性为100:100,查询表2可知,目标community属性(100:100)对应的表项标识为acl1000,因此,设置已下发到转发芯片中的表项标识为acl1000的acl表项在1:00开始生效;此外,设置表项标识为除目标community属性以外的其它community属性对应的表项标识的acl表项失效,即当前时间未落入对应时间段的community属性对应的表项标识的acl表项失效,例如,当前时间1:00未落入表1中第二条对应关系的生效时间段(8:00-9:00)内,因此,设置该第二条对应关系中的community属性(200:200)对应的acl表项(查询表2可知,community属性200:200对应表项标识为acl2000的acl表项)失效,从而实现基于时间段控制flowspec路由生效。具体地,本发明提供以下两种可选的实施方式:在一种可选的实施方式中,步骤101具体为,网络设备的cpu(处理器)获取控制器下发的携带community属性的flowspec路由;步骤102具体为,cpu向转发芯片下发flowspec路由对应的acl表项;步骤103具体为,若flowspec路由的community属性命中预设的community属性与生效时间段的对应关系,且flowspec路由对应的acl表项的表项标识未命中已记录的community属性与表项标识的对应关系,则cpu记录flowspec路由的community属性与flowspec路由对应的acl表项的表项标识的对应关系;步骤104具体为,若当前时间命中community属性与生效时间段的对应关系,则cpu获取与当前时间对应的目标community属性;步骤105具体为,cpu根据community属性与表项标识的对应关系,通知转发芯片设置表项标识为目标community属性对应的表项标识的acl表项生效,设置表项标识为除目标community属性以外的其它community属性对应的表项标识的acl表项失效。即本实施方式由cpu基于生效时间段确定哪些acl表项生效、哪些acl表项失效,然后通知转发芯片设置相应的acl表项生效或失效。在另一种可选的实施方式中,步骤101具体为,cpu获取控制器下发的携带community属性的flowspec路由;步骤102具体为,cpu向转发芯片下发flowspec路由对应的携带community属性的acl表项,即转发芯片可以获取到flowspec路由的community属性;步骤103具体为,若flowspec路由的community属性命中转发芯片中预设的community属性与生效时间段的对应关系,且flowspec路由对应的acl表项未命中转发芯片中已记录的community属性与表项标识的对应关系,则转发芯片记录flowspec路由的community属性与下发的flowspec路由对应的acl表项的表项标识的对应关系;步骤104具体为,若当前时间命中转发芯片中的community属性与生效时间段的对应关系,则转发芯片获取与当前时间对应的目标community属性;步骤105具体为,转发芯片根据community属性与表项标识的对应关系,设置表项标识为目标community属性对应的表项标识的acl表项生效,设置表项标识为除目标community属性以外的其它community属性对应的表项标识的acl表项失效。即本实施方式中,由cpu向转发芯片下发携带community属性的acl表项,转发芯片根据本地记录的community属性与生效时间段的对应关系以及community属性与表项标识的对应关系,确定在当前时间哪些acl表项生效、哪些acl表项失效。从以上描述可以看出,本发明中控制器只需向网络设备下发一次flowspec路由,网络设备即可自行根据预设的生效时间段,控制flowspec路由对应的acl表项生效或失效,控制器不再需要反复下发和撤销flowspec路由,减少了控制器与网络设备之间的网络资源消耗,降低了网络设备的处理压力。需要补充说明的是,本发明中,控制器可为具有相同时间段控制要求的flowspec路由配置相同的community属性,以减少网络设备中预设的community属性与生效时间段的对应关系的数量,减少对网络设备资源的占用。现以具体实施例,详细介绍flowspec路由生效过程。实施例一:在网络设备中预设community属性与生效时间段的对应关系,如表1所示。控制器向网络设备发送携带flowspec路由(记为fs1)和对应community属性(100:100)的bgpupdate报文,网络设备的cpu查询转发芯片中是否存在fs1对应的acl表项,若不存在该acl表项,则将fs1对应的acl表项下发到转发芯片中,此时,该acl表项未生效。cpu基于fs1的community属性(100:100)查询表1,命中表1中的第一条对应关系,说明fs1需要基于时间段生效;再基于fs1对应的acl的acl标识(记为acl4000)查询表2,acl4000未命中表2中的community属性与表项标识的对应关系,说明fs1对应的acl表项是首次基于时间段控制,则将community属性(100:100)与acl4000的对应关系添加到表2中,得到如表3所示对应关系。community属性acl表项的表项标识200:200acl2000300:300acl3000100:100acl1000、acl4000表3假设,当前时间为1:00,cpu基于当前时间查询表1,命中表1中的第一条对应关系,则获取第一条对应关系中的community属性(100:100);cpu根据该community属性(100:100)查询表3,获取与community属性(100:100)对应的表项标识(acl1000和acl4000),则cpu通知转发芯片设置表项标识为acl1000和acl4000的acl表项生效;并通知转发芯片设置表项标识为acl2000和acl3000的acl表项失效,即在1:00-2:00时段内,表项标识为acl1000和acl4000的acl表项生效,表项标识为acl2000和acl3000的acl表项失效。若cpu再次接收到携带fs1的bgpupdate报文,但此次携带的community属性为400:400,cpu基于community属性(400:400)查询表1,命中表1中的第四条对应关系,说明fs1需要基于时间段生效;且查询转发芯片中存在fs1对应的acl表项,则基于该acl表项的表项标识(acl4000)查询表3,acl4000命中表3中的community属性与表项标识的对应关系,说明fs1对应的acl表项曾基于时间段控制过,则根据当前fs1的community属性(400:400)更新表3中acl4000对应的community属性,更新后如表4所示。community属性acl表项的表项标识200:200acl2000300:300acl3000100:100acl1000400:400acl4000表4参见表1,community属性(400:400)对应的生效时间段为3:00-4:00,则fs1对应的表项标识为acl4000的acl表项在3:00-4:00时间段生效。若cpu接收到未携带community属性的flowspec路由(记为fs2),则说明fs2不需要基于时间段生效,因此,在向转发芯片下发fs2对应的acl表项后,cpu直接通知转发芯片设置fs2对应的acl表项生效。若cpu接收到携带community属性(500:500)的flowspec路由(记为fs3),基于community属性(500:500)查询表1,未命中表1中记录的community属性与生效时间段对应关系,同样,说明fs3不需要基于时间段生效,因此,在向转发芯片下发fs3对应的acl表项后,cpu直接通知转发芯片设置fs3对应的acl表项生效。实施例二:在网络设备的转发芯片中预设community属性与生效时间段的对应关系,如表1所示。控制器向网络设备发送携带fs1和对应community属性(100:100)的bgpupdate报文,网络设备的cpu查询转发芯片中是否存在fs1对应的acl表项,若不存在该acl表项,则将fs1对应的携带community属性(100:100)的acl表项下发到转发芯片中,此时,该acl表项未生效。转发芯片基于community属性(100:100)查询表1,命中表1中的第一条对应关系,说明fs1对应的acl表项需要基于时间段生效;再基于fs1对应的acl的acl标识(acl4000)查询转发芯片中记录的表2,acl4000未命中表2中的community属性与表项标识的对应关系,说明fs1对应的acl表项是首次基于时间段控制,则将community属性(100:100)与acl4000的对应关系添加到表2中,得到如表3所示对应关系。假设,当前时间为1:00,转发芯片基于当前时间查询表1,命中表1中的第一条对应关系,则获取第一条对应关系中的community属性(100:100);转发芯片根据该community属性(100:100)查询表3,获取与community属性(100:100)对应的表项标识(acl1000和acl4000),并设置表项标识为acl1000和acl4000的acl表项生效;设置表项标识为acl2000和acl3000的acl表项失效,即在1:00-2:00时段内,表项标识为acl1000和acl4000的acl表项生效,表项标识为acl2000和acl3000的acl表项失效。若cpu再次接收到携带fs1的bgpupdate报文,但此次携带的community属性为400:400,向转发芯片下发fs1对应的携带community属性(400:400)的acl表项,转发芯片基于community属性(400:400)查询表1,命中表1中的第四条对应关系,说明fs1对应的acl表项需要基于时间段生效;且转发芯片中存在fs1对应的acl表项,基于该acl表项的表项标识(acl4000)查询表3,acl4000命中表3中的community属性与表项标识的对应关系,说明fs1对应的acl表项曾基于时间段控制过,则根据当前community属性(400:400)更新表3中acl4000对应的community属性,更新后如表4所示。参见表1,community属性(400:400)对应的生效时间段为3:00-4:00,则fs1对应的表项标识为acl4000的acl表项在3:00-4:00时间段生效。若cpu接收到未携带community属性的flowspec路由(fs2),则向转发芯片下发fs2对应的未携带community属性的acl表项,转发芯片接收到未携带community属性的acl表项后,直接设置fs2对应的acl表项生效。若cpu接收到携带community属性(500:500)的flowspec路由(fs3),向转发芯片下发fs3对应的携带community属性(500:500)的acl表项,转发芯片基于community属性(500:500)查询表1,未命中表1中记录的community属性与生效时间段对应关系,说明fs3不需要基于时间段生效,因此,直接设置fs3对应的acl表项生效。参见图2,本发明还提供一种flowspec路由生效装置,该装置包括:获取单元201、下发单元202、记录单元203、确定单元204以及设置单元205,其中:获取单元201,用于获取控制器下发的携带community属性的flowspec路由;下发单元202,用于向所述网络设备的转发芯片下发所述flowspec路由对应的acl表项;记录单元203,用于若所述flowspec路由的community属性命中预设的community属性与生效时间段的对应关系,且所述flowspec路由对应的acl表项的表项标识未命中已记录的community属性与表项标识的对应关系,则记录所述flowspec路由的community属性与所述flowspec路由对应的acl表项的表项标识的对应关系;确定单元204,用于若当前时间命中community属性与生效时间段的对应关系,则确定与当前时间对应的目标community属性;设置单元205,用于根据community属性与表项标识的对应关系,设置表项标识为所述目标community属性对应的表项标识的acl表项生效,设置表项标识为除所述目标community属性以外的其它community属性对应的表项标识的acl表项失效。可选的,所述下发单元202,具体用于若所述转发芯片中不存在所述flowspec路由对应的acl表项,则向所述转发芯片下发所述flowspec路由对应的acl表项;所述记录单元203,还用于若所述转发芯片中存在所述flowspec路由对应的acl表项,且该acl表项命中community属性与表项标识的对应关系,则根据所述flowspec路由的community属性更新已记录的该acl表项的表项标识对应的community属性。可选的,所述设置单元205,还用于若所述flowspec路由未携带community属性或携带的community属性未命中community属性与生效时间段的对应关系,设置所述flowspec路由对应的acl表项生效。参见图3,本发明还提供的一种网络设备,所述网络设备包括处理器cpu31和转发芯片32。可选的,所述cpu31,用于获取控制器下发的携带community属性的flowspec路由;向所述转发芯片下发所述flowspec路由对应的acl表项;若所述flowspec路由的community属性命中预设的community属性与生效时间段的对应关系,且所述flowspec路由对应的acl表项的表项标识未命中已记录的community属性与表项标识的对应关系,则记录所述flowspec路由的community属性与所述flowspec路由对应的acl表项的表项标识的对应关系;若当前时间命中community属性与生效时间段的对应关系,则确定与当前时间对应的目标community属性;根据community属性与表项标识的对应关系,通知所述转发芯片32设置表项标识为所述目标community属性对应的表项标识的acl表项生效,设置表项标识为除所述目标community属性以外的其它community属性对应的表项标识的acl表项失效;所述转发芯片32,用于接收所述cpu31的通知,设置相应acl表项生效或失效。可选的,所述cpu31,用于获取控制器下发的携带community属性的flowspec路由;向所述转发芯片下发所述flowspec路由对应的携带所述community属性的acl表项;所述转发芯片32,用于若所述community属性命中预设的community属性与生效时间段的对应关系,且所述acl表项的表项标识未命中已记录的community属性与表项标识的对应关系,则记录所述community属性与所述acl表项的表项标识的对应关系;若当前时间命中community属性与生效时间段的对应关系,则确定与当前时间对应的目标community属性;根据community属性与表项标识的对应关系,设置表项标识为所述目标community属性对应的表项标识的acl表项生效,设置表项标识为除所述目标community属性以外的其它community属性对应的表项标识的acl表项失效。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1