11-uRPF
本章节下载: 11-uRPF (410.34 KB)
本帮助主要介绍以下内容:
· 特性简介
¡ uRPF检查方式
¡ uRPF技术优点
¡ uRPF处理流程
· 配置指南
uRPF(unicast Reverse Path Forwarding,单播反向路径转发)是一种单播逆向路由查找技术,用来防范基于源地址欺骗的攻击手段,例如基于源地址欺骗的DoS(Denial of Service,拒绝服务)攻击和DDoS(Distributed Denial of Service,分布式拒绝服务)攻击。
对于使用基于IP地址验证的应用来说,基于源地址欺骗的攻击手段可能导致未被授权用户以他人身份获得访问系统的权限。因此即使响应报文没有发送给攻击者或其它主机,此攻击方法也可能会造成对被攻击对象的破坏。
如图所示,攻击者在Device A上伪造并向Device B发送大量源地址为2.2.2.1的报文,Device B响应这些报文并向真正的“2.2.2.1”(Device C)回复报文。因此这种非法报文对Device B和Device C都造成了攻击。如果此时网络管理员错误地切断了Device C的连接,可能会导致网络业务中断甚至更严重的后果。
攻击者也可以同时伪造不同源地址的攻击报文或者同时攻击多个服务器,从而造成网络阻塞甚至网络瘫痪。
uRPF可以有效防范上述攻击。一般情况下,设备在收到报文后会根据报文的目的地址对报文进行转发或丢弃。而uRPF可以在转发表中查找报文源地址对应的接口是否与报文的入接口相匹配,如果不匹配则认为源地址是伪装的并丢弃该报文,从而有效地防范网络中基于源地址欺骗的恶意攻击行为的发生。
uRPF检查方式有严格型和松散型两种。
不仅检查报文的源地址是否在转发表中存在,而且检查报文的入接口与转发表是否匹配。
在一些特殊情况下(如非对称路由,即设备上行流量的入接口和下行流量的出接口不相同),严格型uRPF检查会错误地丢弃非攻击报文。
一般将严格型uRPF检查布置在ISP的用户端和ISP端之间。
仅检查报文的源地址是否在转发表中存在,而不再检查报文的入接口与转发表是否匹配。
松散型uRPF检查可以避免错误的拦截合法用户的报文,但是也容易忽略一些攻击报文。
一般将松散型uRPF检查布置在ISP-ISP端。另外,如果用户无法保证路由对称,可以使用松散型uRPF检查。
当设备上配置了缺省路由后,会导致uRPF根据转发表检查源地址时,所有源地址都能查到下一跳。针对这种情况,支持用户配置uRPF是否允许匹配缺省路由。如果允许匹配缺省路由,则当uRPF查询转发表得到的结果是缺省路由时,认为查到了匹配的表项;如果不允许匹配缺省路由,则当uRPF查询转发表得到的结果是缺省路由时,认为没有查到匹配的表项。
缺省情况下,如果uRPF查询转发表得到的结果是缺省路由,则按没有查到表项处理,丢弃报文。
运营商网络边缘位置一般不会有缺省路由指向客户侧设备,所以一般不需要配置“允许匹配缺省路由”。如果在客户侧边缘设备接口上面启用uRPF,这时往往会有缺省路由指向运营商,此时需要配置“允许匹配缺省路由”。
严格型uRPF检查中还可以进一步进行链路层检查,即用源地址查转发表得到的下一跳地址再查一次ARP表,确保报文的源MAC地址和查到的ARP表项中的MAC地址一样才允许报文通过。
链路层检查功能对于运营商用一个三层以太网接口接入大量PC机用户时部署非常合适。
松散型uRPF检查不支持链路层检查功能。
如果用户确认具有某些特征的报文是合法报文,则可以在ACL中指定这些报文,那么这些报文在逆向路由不存在的情况下,不做丢弃处理,按正常报文进行转发。
图-2 uRPF处理流程图
1. 检查地址合法性:
¡ 对于目的地址是组播地址的报文,直接放行。
¡ 对于源地址是全零地址的报文,如果目的地址是广播,则放行(源地址为0.0.0.0,目的地址为255.255.255.255的报文,可能是DHCP或者BOOTP报文,不做丢弃处理);如果目的地址不是广播,则进入步骤7。
¡ 对于不是上述情况的报文,则进入步骤2。
2. 检查报文的源地址在转发表中是否存在匹配的单播路由:如果在转发表中查找失败(源地址是非单播地址则会匹配到非单播路由),则进入步骤7,否则进入步骤3;
3. 如果转发表中匹配的是上送本机路由,即查到InLoop接口,则检查报文入接口是否是InLoop接口:如果是,则直接放行,否则进入步骤7;如果转发表中匹配的不是上送本机路由则继续步骤4;
4. 如果转发表中匹配的是缺省路由,则检查用户是否配置了允许匹配缺省路由:如果没有配置,则进入步骤7,否则进入步骤5;如果转发表中匹配的不是缺省路由,则进入步骤5;
5. 检查报文源地址与入接口是否匹配。反向查找报文出接口(反向查找是指查找以该报文源IP地址为目的IP地址的报文的出接口)或者缺省路由的出接口:如果其中至少有一个出接口和报文的入接口相匹配,则进入步骤6;如果不匹配,则查看是否是松散型检查,如果是,则报文检查通过,进入步骤7;否则说明是严格型检查,进入步骤6;
6. 检查用户是否配置了对链路层信息进行检查:如果没有配置,则认为报文通过检查,进行正常的转发。如果已经配置,则根据转发表中的下一跳查询ARP表,并比较IP报文源MAC地址与ARP表中的MAC地址是否一致。如果两者一致,则报文通过检查;如果查询失败或两者不一致,则进入步骤7;
7. ACL检查流程。如果报文符合ACL,则报文继续进行正常的转发(此类报文称为被抑制丢弃的报文);否则报文被丢弃。
图-3 IPv6 uRPF处理流程图
1. 检查地址合法性:对于目的地址是组播地址的报文直接放行。否则,进入步骤2;
2. 检查报文的源地址在IPv6转发表中是否存在匹配的单播路由:如果在IPv6转发表中查找失败(源地址是非单播地址则会匹配到非单播路由),则进入步骤6,否则进入步骤3;
3. 如果IPv6转发表中匹配的是上送本机路由,则检查报文入接口是否是InLoop接口:如果是,则直接放行,否则进入步骤6;如果IPv6转发表中匹配的不是上送本机路由则继续步骤4;如果源地址是Link-Local地址,倘若这个地址是入接口的地址,并且入接口不是InLoop接口则进入步骤6,否则直接放行;
4. 检查报文源地址与入接口是否匹配:反向查找报文出接口(反向查找是指查找以该报文源IPv6地址为目的IPv6地址的报文的出接口)或者缺省路由的出接口,如果其中至少有一个出接口和报文的入接口相匹配,则进入步骤5;如果不匹配,则查看是否是松散型检查,如果是,则进入步骤5,否则说明是严格型检查,进入步骤6;
5. 如果IPv6转发表中匹配的是缺省路由,则检查用户是否配置了允许匹配缺省路由,如果没有配置,则进入步骤6,否则处理结束报文正常转发;如果IPv6转发表中匹配的不是缺省路由,则处理结束报文正常转发;
6. IPv6 ACL检查流程。如果报文符合IPv6 ACL,则报文继续进行正常的转发(此类报文称为被抑制丢弃的报文);否则报文被丢弃。
图-4 uRPF典型组网应用
通常在ISP上配置uRPF,在ISP与用户端,配置严格型uRPF检查,在ISP与ISP端,配置松散型uRPF检查。
如果有特殊用户,或者具有一定特征,需要特殊处理的报文,可以配置ACL规则。
1. 在“IPv4 uRPF”页面单击<新建>。
2. 新建IPv4 uRPF。
表-1 IPv4 uRPF配置
参数 |
说明 |
接口 |
在指定接口上应用IPv4 uRPF。 |
检查方式 |
· 严格方式:不仅检查报文的源地址是否在转发表中存在,而且检查报文的入接口与转发表是否匹配。 · 松散方式:仅检查报文的源地址是否在转发表中存在,而不再检查报文的入接口与转发表是否匹配。 |
例外规则 |
访问控制列表,用来抑制报文丢弃。 可选择已创建的IPv4 ACL,也可以新创建IPv4 ACL。此处新建的IPv4 ACL,可在“对象 > ACL > IPv4”页面查看。 |
允许匹配缺省路由 |
允许源地址查转发表时匹配缺省路由表项。 |
开启链路层检查功能 |
允许对链路信息进行检查。 |
3. 单击<确定>,新建的IPv4 uRPF会在“IPv4 uRPF”页面显示。
1. 在“IPv6 uRPF”页面单击<新建>。
2. 新建IPv6 uRPF。
表-2 IPv6 uRPF配置
参数 |
说明 |
接口 |
在指定接口上应用IPv6 uRPF。 |
检查方式 |
· 严格方式:不仅检查报文的源地址是否在IPv6转发表中存在,而且检查报文的入接口与转发表是否匹配。 · 松散方式:仅检查报文的源地址是否在IPv6转发表中存在,而不再检查报文的入接口与转发表是否匹配。 |
例外规则 |
访问控制列表,用来抑制报文丢弃。 可选择已创建的IPv6 ACL,也可以新创建IPv6 ACL。此处新建的IPv6 ACL,可在“对象 > ACL > IPv6”页面查看。 |
允许匹配缺省路由 |
允许源地址查转发表时匹配缺省路由表项。 |
3. 单击<确定>,新建的IPv6 uRPF会在“IPv6 uRPF”页面显示。
配置松散型uRPF检查时不建议勾选“允许匹配缺省路由”,否则可能导致防攻击能力失效。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!