首页> 中国专利> 一种实现单播反向路径转发URPF检查的方法及装置

一种实现单播反向路径转发URPF检查的方法及装置

摘要

本发明公开了一种实现单播反向路径转发URPF检查的方法及装置,该方法包括:获取报文的源IP地址及入端口;根据所述源IP地址在路由转发表中查找到匹配路由后进行URPF检查时,在所述路由转发表中查询IP地址对应的索引标识及索引,如所述源IP地址对应的索引标识为ECMP组索引标识,则根据查询到的ECMP组索引到配置的ECMP组索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配,本发明提供的方法及装置,特别针对报文来源端口为“ECMP组”和/或“链路聚合组端口”的情况,能有效地防范网络中通过修改源地址而进行的恶意攻击行为的发生,拓展了传统URPF检查的适用场景。

著录项

  • 公开/公告号CN103220255A

    专利类型发明专利

  • 公开/公告日2013-07-24

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN201210015065.4

  • 发明设计人 龚祥旭;

    申请日2012-01-18

  • 分类号H04L29/06(20060101);H04L12/741(20130101);

  • 代理机构11262 北京安信方达知识产权代理有限公司;

  • 代理人李健;龙洪

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2024-02-19 19:50:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-11-26

    专利权的转移 IPC(主分类):H04L29/06 登记生效日:20191106 变更前: 变更后: 申请日:20120118

    专利申请权、专利权的转移

  • 2017-07-21

    授权

    授权

  • 2017-06-30

    专利申请权的转移 IPC(主分类):H04L29/06 登记生效日:20170612 变更前: 变更后: 申请日:20120118

    专利申请权、专利权的转移

  • 2014-12-10

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20120118

    实质审查的生效

  • 2013-07-24

    公开

    公开

说明书

技术领域

本发明涉及计算机网络通讯领域,具体涉及一种实现单播反向路径转发URPF检查的方法及装置。

背景技术

单播反向路径转发(Unicast Reverse Path Forwarding,简称URPF),是网络设备检查数据包源地址合法性的一种方法。传统URPF检查的处理方法,通过获取报文的源IP地址和入端口,以源IP地址为目的地址在路由转发表中查找该源IP地址对应的出端口是否与报文入端口匹配,如果没有匹配表项将丢弃该数据包,否则认为该报文是一个正常报文,通过这种方式,URPF就能有效地防范网络中通过修改源地址而进行的恶意攻击行为的发生。

但是,传统的这种URPF检查只是针对普通报文来源端口(通常为报文的源物理端口)的,不能提供报文来源端口为链路聚合组端口时的URPF检查,或者,报文来源端口为ECMP组时的URPF检查,其适用的范围小,不能满足越来越复杂的应用场景需求。

链路聚合就是把多条链路聚合成一条链路进行管理,通过内部的控制,将数据分配在被聚合的多条链路上,实现负载分担,用于提高带宽,增强连接可靠性。

ECMP(Equal-Cost Multipath Routing)等价多路径,存在多条不同链路到达同一目的地址的网络环境中,如果使用传统的路由技术,发往该目的地址的数据包只能利用其中的一条链路,其它链路处于备份状态或无效状态;而等价多路径路由协议可以在该网络环境下同时使用多条链路,通过特定的算法,将负载分担到多条链路上,从而增加了传输带宽,提高了传输可靠性。

当报文来源为链路聚合组时,因为端口是聚合端口,则链路聚合组内的多个物理端口都是有效端口。当报文来源为ECMP组时,由于来源路径是等价的,则ECMP组内的多个物理端口都是有效端口。在这两种场景下,如果按照原有的URPF检查方法,需要将多个物理端口依次进行检查,处理上很复杂,检查效率低,影响网络性能。

综上所述,现有技术中没有对“链路聚合组端口”以及“ECMP组”采用URPF检查的处理方式,所以,不能有效地防范网络中通过修改源地址而进行的恶意攻击行为的发生。

发明内容

本发明需要解决的技术问题是提供一种实现单播反向路径转发URPF检查的方法及装置,有效地防范网络中通过修改源地址而进行的恶意攻击行为的发生。

为了解决上述技术问题,本发明提供了一种实现单播反向路径转发URPF检查的方法,包括:

获取报文的源IP地址及入端口;

根据所述源IP地址在路由转发表中查找到匹配路由后进行URPF检查时,在所述路由转发表中查询IP地址对应的索引标识及索引,如所述源IP地址对应的索引标识为等价多路径ECMP组索引标识,则根据查询到的ECMP组索引到配置的ECMP组索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配。

进一步地,所述IP地址对应的索引标识包括:下一跳索引标识和ECMP组索引标识;所述方法还包括:

如具有某一IP地址的节点与本节点之间通过ECMP连接,则在所述路由转发表中配置所述IP地址对应的ECMP组索引,并将所述IP地址对应的索引标识置为ECMP组索引标识;

否则,在所述路由转发表中配置所述IP地址对应的下一跳索引,并将所述IP地址对应的索引标识置为下一跳索引标识。

进一步地,所述配置的ECMP组索引与端口的映射信息中,一个ECMP组索引对应多个等价路由出端口;

判断查询到的所述出端口是否与所述入端口匹配,包括:在ECMP组索引与端口的映射信息中查找到所述源IP地址对应的多个等价路由出端口中,只要有一个等价路由出端口与所述入端口匹配,则通过URPF检查。

进一步地,所述获取报文的入端口包括:如接收到所述报文的物理端口为链路聚合组物理端口,则将所述链路聚合组物理端口对应的链路聚合组逻辑端口作为所述报文的入端口。

进一步地,所述方法还包括:

如具有某一IP地址的节点与本节点之间通过链路聚合组连接,则在路由转发表中配置所述IP地址对应的下一跳索引,并在下一跳索引与端口的映射信息中,将该链路聚合组的逻辑端口作为该下一跳索引对应的出端口;

根据所述源IP地址在路由转发表中查找到匹配路由后进行URPF检查时,在所述路由转发表中查询IP地址对应的索引标识及索引,如所述源IP地址对应的索引标识为下一跳索引标识,则根据查询到的下一跳索引到配置的下一跳索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配。

为了解决上述技术问题,本发明还提供了一种实现单播反向路径转发URPF检查的装置,包括:

端口处理模块,用于获取报文的源IP地址及入端口;

路由处理模块,用于根据所述源IP地址在路由转发表中查找到匹配路由后进行URPF检查时,在所述路由转发表中查询IP地址对应的索引标识及索引,并将查询结果发送至端口查询模块;

端口查询模块,用于接收所述查询结果,如果所述查询结果为所述源IP地址对应的索引标识为等价多路径ECMP组索引标识,则根据查询到的ECMP组索引到配置的ECMP组索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配。

进一步地,所述IP地址对应的索引标识包括:下一跳索引标识和ECMP组索引标识;

所述路由处理模块,还用于如具有某一IP地址的节点与本节点之间通过ECMP连接,则在所述路由转发表中配置所述IP地址对应的ECMP组索引,并将所述IP地址对应的索引标识置为ECMP组索引标识;否则,在所述路由转发表中配置所述IP地址对应的下一跳索引,并将所述IP地址对应的索引标识置为下一跳索引标识。

进一步地,所述端口查询模块中配置的ECMP组索引与端口的映射信息中,一个ECMP组索引对应多个等价路由出端口;

所述端口查询模块,用于判断查询到的所述出端口是否与所述入端口匹配,包括:

所述端口查询模块在ECMP组索引与端口的映射信息中查找到所述源IP地址对应的多个等价路由出端口中,只要有一个等价路由出端口与所述入端口匹配,则通过URPF检查。

进一步地,所述端口处理模块,用于获取报文的入端口,包括:

所述端口处理模块如接收到所述报文的物理端口为链路聚合组物理端口,则将所述链路聚合组物理端口对应的链路聚合组逻辑端口作为所述报文的入端口。

所述端口查询模块,还用于如具有某一IP地址的节点与本节点之间通过链路聚合组连接,则在配置的下一跳索引与端口的映射信息中,将该链路聚合组的逻辑端口作为该下一跳索引对应的出端口;

进一步地,所述端口查询模块,还用于如果接收到的所述查询结果为所述源IP地址对应的索引标识为下一跳索引标识,则根据查询到的下一跳索引到配置的下一跳索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配。

与现有技术相比,本发明提供的实现单播反向路径转发URPF检查的方法及装置,特别针对报文来源端口为“ECMP组”和/或“链路聚合组端口”的情况,能有效地防范网络中通过修改源地址而进行的恶意攻击行为的发生,拓展了传统URPF检查的适用场景。

附图说明

图1是实施例中实现单播反向路径转发URPF检查的方法流程图;

图2是实施例中实现单播反向路径转发URPF检查的装置结构图;

图3是一个应用示例中实现单播反向路径转发URPF检查的具体流程图;

图4是一个应用示例中根据URPF模式查询所述ECMP组索引端口映射表中源IP地址对应的接口与所述入端口是否相符的具体流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

实施例:

如图2所示,本实施例提供了一种实现单播反向路径转发URPF检查的方法,包括以下步骤:

S101:获取报文的源IP地址及入端口;

在本步骤中,还会获取报文URPF检查的URPF模式;以便后续根据该URPF模式查询。

URPF模式包括:严格URPF、松散URPF、允许缺省路由;其中:

严格URPF指:用源IP地址进行路由查找,判断返回路径的出端口是否与该数据包达到的入端口是一致的。

松散URPF指:检查路由转发表中是否存在此路由条目,而不检查路由出端口是否和报文来源端口一致。

允许缺省路由指:用源IP地址查找路由转发表的时候不包括缺省路由。

S102:根据所述源IP地址在路由转发表中查找到匹配路由后进行URPF检查时,在所述路由转发表中查询IP地址对应的索引标识及索引,如所述源IP地址对应的索引标识为等价多路径ECMP组索引标识,则执行步骤S103;

其中,所述IP地址对应的索引标识包括:下一跳索引标识和ECMP组索引标识;

在具体实施时,如具有某一IP地址的节点与本节点之间通过ECMP连接,则在所述路由转发表中配置所述IP地址对应的ECMP组索引,并将所述IP地址对应的索引标识置为ECMP组索引标识;

否则,在所述路由转发表中配置所述IP地址对应的下一跳索引,并将所述IP地址对应的索引标识置为下一跳索引标识。

根据索引标识就可以知道要到哪一个索引与端口的映射信息(ECMP组索引与端口的映射信息或下一跳索引与端口的映射信息)中查找源IP地址对应的出端口。

S103:根据查询到的ECMP组索引到配置的ECMP组索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配。

其中,在配置的ECMP组索引与端口的映射信息中,一个ECMP组索引对应多个等价路由出端口;

判断查询到的所述出端口是否与所述入端口匹配,包括:在ECMP组索引与端口的映射信息中查找到所述源IP地址对应的多个等价路由出端口中,只要有一个等价路由出端口与所述入端口匹配,则通过URPF检查。

另外,在一个应用示例中,报文的物理端口为链路聚合组物理端口,在链路聚合组中,一个链路聚合组内可以有多个物理端口,通过预先建立物理端口号和链路聚合组逻辑端口号的映射关系,就可以根据物理端口号查表找到链路聚合组逻辑端口号。例如,配置如下表项1,物理端口1、2、3属于链路聚合组A,物理端口4、5、6属于链路聚合组B。通过输入物理端口号,就可以得到此物理端口属于的链路聚合逻辑端口号,所以,在这种情况下,将所述链路聚合组物理端口对应的链路聚合组逻辑端口作为所述报文的入端口,如具有某一IP地址的节点与本节点之间通过链路聚合组连接,则在路由转发表中配置所述IP地址对应的下一跳索引,并在下一跳索引与端口的映射信息中,将该链路聚合组的逻辑端口作为该下一跳索引对应的出端口。

表项输入表项输出物理端口1逻辑端口A物理端口2逻辑端口A物理端口3逻辑端口A物理端口4逻辑端口B物理端口5逻辑端口B物理端口6逻辑端口B

表1:链路聚合组物理端口号和链路聚合组逻辑端口号的映射关系表

作为一种实现方式,在步骤S103中在所述路由转发表中查询IP地址对应的索引标识及索引时,如所述源IP地址对应的索引标识为下一跳索引标识,则根据查询到的下一跳索引到配置的下一跳索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配。

在上述步骤中,作为URPF检查的两种实现方式:可以先判断出URPF模式,然后按照URPF模式在所述路由转发表中查询IP地址对应的索引标识及索引,根据查询到的索引到相应的索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配,如果匹配,则通过检查;否则丢弃报文;

或者,也可以先在所述路由转发表中查询IP地址对应的索引标识及索引,根据查询到的索引到相应的索引与端口的映射信息中根据URPF模式查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配。

如图2所示,本实施例提供了一种实现单播反向路径转发URPF检查的装置,包括:

端口处理模块,用于获取报文的源IP地址及入端口;

其中,所述端口处理模块,还用于获取报文URPF检查的URPF模式;以便后续根据该URPF模式查询。

其次,如所述端口处理模块接收到所述报文的物理端口为链路聚合组物理端口,则所述端口处理模块,还用于将所述链路聚合组物理端口对应的链路聚合组逻辑端口作为所述报文的入端口。

路由处理模块,用于根据所述源IP地址在路由转发表中查找到匹配路由后进行URPF检查时,在所述路由转发表中查询IP地址对应的索引标识及索引,并将查询结果发送至端口查询模块;

其中,所述IP地址对应的索引标识包括:下一跳索引标识和ECMP组索引标识;

所述路由处理模块,还用于如具有某一IP地址的节点与本节点之间通过ECMP连接,则在所述路由转发表中配置所述IP地址对应的ECMP组索引,并将所述IP地址对应的索引标识置为ECMP组索引标识;否则,在所述路由转发表中配置所述IP地址对应的下一跳索引,并将所述IP地址对应的索引标识置为下一跳索引标识。

端口查询模块,用于接收所述查询结果,如果所述查询结果为所述源IP地址对应的索引标识为等价多路径ECMP组索引标识,则根据查询到的ECMP组索引到配置的ECMP组索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配。

其中,所述端口查询模块中配置的ECMP组索引与端口的映射信息中,一个ECMP组索引对应多个等价路由出端口;

所述端口查询模块,用于判断查询到的所述出端口是否与所述入端口匹配,包括:

所述端口查询模块在ECMP组索引与端口的映射信息中查找到所述源IP地址对应的多个等价路由出端口中,只要有一个等价路由出端口与所述入端口匹配,则通过URPF检查。

另外,在本实施中,报文的入端口还可能是链路聚合组逻辑端口;如具有某一IP地址的节点与本节点之间通过链路聚合组连接,所述端口查询模块,还用于在配置的下一跳索引与端口的映射信息中,将该链路聚合组的逻辑端口作为该下一跳索引对应的出端口;

所述端口查询模块,还用于接收所述判断结果,如果接收到的所述查询结果为所述源IP地址对应的索引标识为下一跳索引标识,则根据查询到的下一跳索引到配置的下一跳索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配。

在本实施例中,所述端口处理模块获取所述报文URPF检查的URPF模式包括:严格URPF、松散URPF、允许缺省路由。

所述路由处理模块,还用于按照URPF模式在所述路由转发表中查询IP地址对应的索引标识及索引,所述端口查询模块,还用于根据查询到的索引到相应的索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配,如果匹配,则通过检查;否则丢弃报文;或者,

所述路由处理模块,还用于在所述路由转发表中查询IP地址对应的索引标识及索引,所述端口查询模块,还用于根据查询到的索引到相应的索引与端口的映射信息中根据URPF模式查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配。

在一个应用示例中,如图3所示,描述了本实施例中实现单播反向路径转发URPF检查的具体流程,包括以下步骤:

S201:设备接收到报文后,端口处理模块获取该报文的源IP地址及入端口;

其中,如接收到所述报文的物理端口为链路聚合组物理端口,则将所述链路聚合组物理端口对应的链路聚合组逻辑端口作为所述报文的入端口。

同时得到URPF开启关闭标识;若URPF开启,还需要得到URPF模式,将该入端口和URPF模式发送至路由处理模块处理。

S202:检查该报文源IP地址的合法性;

对于广播地址,直接予以丢弃,即,检查该报文源IP地址是否为广播地址255.255.255.255,若是,则丢弃报文;

对于源IP地址为0.0.0.0,目的地址为255.255.255.255的报文,该报文可能是DHCP或者BOOTP报文,这种报文是合法的,可以认为URPF检测通过,报文正常转发。

对于源IP地址不为全零的报文,这个源IP肯定是合法的,需要进行URPF检测,执行步骤S203。

S203:在该报文的合法性检查通过后,提取报文中的源IP地址,送路由处理模块处理;

S204:路由处理模块判断所述源IP地址在路由转发表中是否有匹配路由,若有,执行步骤S205;若无,则丢弃报文,同时进行丢弃报文计数;

S205:路由处理模块判断报文的目的IP地址是否为本点,若是,则报文丢弃,同时进行丢弃报文计数;若否,执行步骤S206。

如果报文的目的IP地址是本点,则认为报文是发给本点的;如果报文的源IP地址是本点,则这个源IP地址是非法的,因为报文不可能是本点发给本点。

S206:路由处理模块在路由转发表中查询IP地址对应的索引标识及索引;如果源IP地址对应的索引标识为等价多路径ECMP组索引标识,则执行步骤S207;否则,执行步骤S209;

其中,IP地址对应的索引标识包括:下一跳索引标识和ECMP组索引标识。

S207:端口查询模块根据URPF模式利用查询到的ECMP组索引到配置的ECMP组索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配,如果匹配,执行步骤S208;否则丢弃报文;

ECMP组索引与端口的映射信息中,一个ECMP组索引对应多个等价路由端口,在ECMP组索引与端口的映射信息中查找到所述源IP地址对应的多个等价路由出端口中,只要有一个等价路由出端口与所述入端口匹配,则认为URPF检测通过。

在本步骤中,如图4所示,端口查询模块根据URPF模式利用ECMP组索引在ECMP组索引与端口的映射信息中查找到所述源IP地址对应的出端口与入端口是否匹配,包括以下步骤:

S301:端口查询模块判断URPF模式,如果为严格URPF,则执行步骤S302;如果为松散URPF,则执行步骤S305;

S302:判断匹配路由是否为缺省路由,若是,执行步骤S303;否则,执行步骤S304。

S303:判断是否配置了允许缺省路由,如果没有配置,则报文丢弃,同时进行丢弃报文计数;如果配置了,则执行步骤S304;

S304:根据查询到的ECMP组索引到配置的ECMP组索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配。

S305:判断匹配路由是否为缺省路由,若是,执行步骤S306;若否,执行步骤S307。

S306:判断是否配置了允许缺省路由,如果没有配置,则报文丢弃,同时进行丢弃报文计数;如果配置了,则执行步骤S307。

S307:通过URPF检查。

至此,完成了根据URPF模式利用ECMP组索引在ECMP组索引与端口的映射信息中查找到所述源IP地址对应的出端口与所述入端口是否相符的流程。

S208:通过检查,报文正常路由转发。

S209:端口查询模块根据URPF模式利用查询到的下一跳索引到配置的下一跳索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配,如果匹配,执行步骤S210;否则丢弃报文。

在本步骤中,根据URPF模式到下一跳索引与端口的映射信息中查询所述源IP地址对应的出端口与所述入端口是否相符的步骤与上述根据URPF模式到ECMP组索引与端口的映射信息中查询所述源IP地址对应的出端口与所述入端口是否相符的步骤是相同的,只是在步骤S304中,需根据查询到的下一跳索引到配置的下一跳索引与端口的映射信息中查询所述源IP地址对应的出端口与所述入端口是否相符。

S210:通过检查,报文正常路由转发。

至此,本实施例中的URPF检查的流程结束。

在上述实施例中,步骤S206中路由处理模块先在路由转发表中查询IP地址对应的索引标识及索引为ECMP组索引标识及索引还是下一跳索引标识及索引,然后在后面的步骤S207~S208以及步骤S209~S210中,根据URPF模式再到相应的索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配。

在另一个应用示例中,还可以在步骤S205之后先判断URPF模式,如果为严格URPF,则判断匹配路由是否为缺省路由,是否配置了允许缺省路由,如果是,在路由转发表中查询IP地址对应的索引标识及索引为ECMP组索引标识及索引还是下一跳索引标识及索引,在相应的索引与端口的映射信息中查询所述源IP地址对应的出端口,并判断查询到的所述出端口是否与所述入端口匹配;如果为松散URPF,则无需在路由转发表中查询IP地址对应的索引标识及索引,直接执行步骤S305~S307。

从上述实施例可以看出,相对于现有技术,上述实施例中提供的实现单播反向路径转发URPF检查的方法及装置,特别针对报文来源端口为“ECMP组”和/或“链路聚合组端口”的情况,能有效地防范网络中通过修改源地址而进行的恶意攻击行为的发生,拓展了传统URPF检查的适用场景。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

以上所述仅为本发明的优选实施例而已,并非用于限定本发明的保护范围。根据本发明的发明内容,还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号