URPF是什么?
URPF:Unicast Reverse Path Forwarding单播反向路径转发,主要功能是用于防止基于源地址欺骗的网络攻击行为。通俗讲就是防止伪造的IP包攻击我们的网络,在网络入口去核实IP包的源,如果源不对,则丢包。只有通过URFP检测的IP包才允许进入。
URPF怎么检测IP包的源?
- 是否有到源IP的路由(没有路由话,这类报文的来源就不明了,不允许通过)
- IP包是否是从路由表的下一跳对应的接口接收到的(若存在路由冗余的情况,则就不一定了)
URPF分严格模式(strict)和松散模式(loose):
- 严格模式:上述两个条件均满足的报文才能放行
- 松散模式:检测条件1,若满足则放行该IP包,对条件2无要求。
需要关注的点:
- 是对IP包进行检测,配置是在路由入口处-三层接口或者SVI接口进行配置或全局开启。
- 对于存在路由冗余的情况,若启用严格模式,会有一部分来回路径不一致的IP包丢弃。故而此类URPF应设置为松散模式。
![0f8dcb0debc3e469038e8bf89086a744.png](https://img-blog.csdnimg.cn/img_convert/0f8dcb0debc3e469038e8bf89086a744.png)
伪造源地址攻击
运营商网络配置URPF 以H3C设备为例:
#POP 全局ip urpf loose 、 接口 ip urpf strict 也即配置了严格的按照严格的来,其他都松散模块。
ip urpf loose
#
interface Vlan-interface10
ip address 3.3.3.1 255.255.255.0
ip urpf strict
#
典型故障:
拓扑:
![5d6080cf0dc6c3a19d3e710ae1d73d18.png](https://img-blog.csdnimg.cn/img_convert/5d6080cf0dc6c3a19d3e710ae1d73d18.png)
排查发现三层POP上收不到核心的DHCP request报文,机顶盒网关设置了urpf严格模式。
故障现象:单个网段机顶盒自动获取不到IP,POP上查看DHCP中继报文情况,只收到机顶盒发来的DHCP dicover,收不到核心来的DHCP offer。
处理思路:
- 查看DHCP服务器该业务段配置是正常的。
- 核心上针对三层SW互联接口做流统,查看是否收到了目的IP是中继的DHCP OFFER报文。
- 一级级查报文在哪里丢了。
#H3C做流统的配置脚本
acl number 3998
rule 0 permit ip source 30.250.15.210 0 destination 21.136.168.129 0
rule 1 permit ip source 30.250.15.211 0 destination 21.136.168.129 0
#
traffic classifier liutong operator and
if-match acl 3998
#
traffic behavior liutong
accounting packet
#
qos policy liutong
classifier liutong behavior liutong
#
interface GigabitEthernet1/0/45
port link-mode bridge
description TO XGDF1-C13-H3CS5120-01-GE1/0/45
port link-type trunk
undo port trunk permit vlan 1
port trunk permit vlan 10 to 100,3998
qos apply policy liutong inbound
port link-aggregation group 10
处理结果:POP设备上被人全局开启了ip urpf strict,修改为loose后故障修复。(其实一开始就应该考虑是否有人操作过设备啥,因为故障的出现不少情况是有人动过配置引起的)
那么问题来了:
- 全局开启ip urpf strict为何会引起这类故障?
最后,大家对网络相关技术感兴趣的可以加关注,我会不定期发表相关内容。