18-uRPF配置
本章节下载: 18-uRPF配置 (301.48 KB)
uRPF(unicast Reverse Path Forwarding,单播反向路径转发)是一种单播逆向路由查找技术,用来防范基于源地址欺骗的攻击手段,例如基于源地址欺骗的DoS(Denial of Service,拒绝服务)攻击和DDoS(Distributed Denial of Service,分布式拒绝服务)攻击。
对于使用基于IPv4地址验证的应用来说,基于源地址欺骗的攻击手段可能导致未被授权用户以他人,甚至是管理员的身份获得访问系统的权限。因此即使响应报文没有发送给攻击者或其它主机,此攻击方法也可能会造成对被攻击对象的破坏。
如图1-1所示,攻击者在Router A上伪造并向Router B发送大量源地址为2.2.2.1的报文,Router B响应这些报文并向真正的“2.2.2.1”(Router C)回复报文。因此这种非法报文对Router B和Router C都造成了攻击。如果此时网络管理员错误地切断了Router C的连接,可能会导致网络业务中断甚至更严重的后果。
攻击者也可以同时伪造不同源地址的攻击报文或者同时攻击多个服务器,从而造成网络阻塞甚至网络瘫痪。
uRPF可以有效防范上述攻击。一般情况下,设备在收到报文后会根据报文的目的地址对报文进行转发或丢弃。而uRPF可以在转发表中查找报文源地址对应的接口是否与报文的入接口相匹配,如果不匹配则认为源地址是伪装的并丢弃该报文,从而有效地防范网络中基于源地址欺骗的恶意攻击行为的发生。
uRPF检查有严格(strict)型和松散(loose)型两种。
不仅检查报文的源地址是否在转发表中存在,而且检查报文的入接口与转发表是否匹配。
在一些特殊情况下(如非对称路由,即设备上行流量的入接口和下行流量的出接口不相同),严格型uRPF检查会错误地丢弃非攻击报文。
一般将严格型uRPF检查布置在ISP的用户端和ISP端之间。
仅检查报文的源地址是否在转发表中存在,而不再检查报文的入接口与转发表是否匹配。
松散型uRPF检查可以避免错误的拦截合法用户的报文,但是也容易忽略一些攻击报文。
一般将松散型uRPF检查布置在ISP-ISP端。另外,如果用户无法保证路由对称,可以使用松散型uRPF检查。
uRPF的处理流程如下:
(1) 检查地址合法性:
· 对于目的地址是组播地址的报文,直接放行。
· 对于源地址是全零地址的报文,如果目的地址是广播,则放行(源地址为0.0.0.0,目的地址为255.255.255.255的报文,可能是DHCP或者BOOTP报文,不做丢弃处理);如果目的地址不是广播,则报文被丢弃。
· 对于不是上述情况的报文,则进入步骤(2)。
(2) 检查报文的源地址在转发表中是否存在匹配的单播路由:如果在转发表中查找失败(源地址是非单播地址则会匹配到非单播路由),则报文被丢弃,否则进入步骤(3);
(3) 如果转发表中匹配的是上送本机路由,即查到InLoop接口,则检查报文入接口是否是InLoop接口:如果是,则直接放行,否则报文被丢弃;如果转发表中匹配的不是上送本机路由则继续步骤(4);
(4) 检查报文源地址与入接口是否匹配。反向查找报文出接口(反向查找是指查找以该报文源IP地址为目的IP地址的报文的出接口):如果和报文的入接口相匹配,则进行正常的转发;如果不匹配,则查看是否是松散型检查,如果是,则报文检查通过,进行正常的转发;否则说明是严格型检查,报文被丢弃。
图1-2 uRPF典型组网应用
通常在ISP上配置uRPF,在ISP与用户端,配置严格型uRPF检查,在ISP与ISP端,配置松散型uRPF检查。
同一接口上不能同时配置严格型uRPF检查和松散型IPv6 uRPF检查,也不能同时配置松散型uRPF检查和严格型IPv6 uRPF检查。
如果在接口下打开uRPF功能,用户可以通过display ip interface命令查看uRPF功能丢弃报文的统计信息(uRPF Information:Drops表示被丢弃的报文数目;Suppressed drops表示被抑制丢弃的报文数目)。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启uRPF功能。
ip urpf { loose | strict }
缺省情况下,uRPF功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置uRPF后的运行情况,通过查看显示信息验证配置的效果。
表1-1 uRPF显示和维护
配置步骤 |
命令 |
显示uRPF的配置应用情况 |
display ip urpf interface interface-type interface-number [ slot slot-number ] |
· 客户交换机Switch A与ISP交换机Switch B直连,在Switch B的VLAN接口10上配置严格型uRPF检查。
· 在Switch A的VLAN接口10上配置严格型uRPF检查。
图1-3 uRPF配置举例组网图
(1) 配置Switch B
# 创建VLAN 10。
[SwitchB] vlan 10
[SwitchB-vlan10] quit
# 配置VLAN接口10的IP地址。
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] ip address 1.1.1.2 255.255.255.0
# 在VLAN接口10上配置严格型uRPF检查。
[SwitchB-Vlan-interface10] ip urpf strict
(2) 配置Switch A
# 创建VLAN 10。
<SwitchA> system-view
[SwitchA] vlan 10
[SwitchA-vlan10] quit
# 配置VLAN接口10的IP地址。
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] ip address 1.1.1.1 255.255.255.0
# 在VLAN接口10上配置严格型uRPF检查。
[SwitchA-Vlan-interface10] ip urpf strict
IPv6 uRPF(unicast Reverse Path Forwarding,单播反向路径转发)是一种单播逆向路由查找技术,用来防范基于源地址欺骗的攻击手段,例如基于源地址欺骗的DoS(Denial of Service,拒绝服务)攻击和DDoS(Distributed Denial of Service,分布式拒绝服务)攻击。
对于使用基于IPv6地址验证的应用来说,基于源地址欺骗的攻击手段可能导致未被授权用户以他人,甚至是管理员的身份获得访问系统的权限。因此即使响应报文没有发送给攻击者或其它主机,此攻击方法也可能会造成对被攻击对象的破坏。
如图2-1所示,攻击者在Router A上伪造并向Router B发送大量源地址为2000::1的报文,Router B响应这些报文并向真正的“2000::1”(Router C)回复报文。因此这种非法报文对Router B和Router C都造成了攻击。如果此时网络管理员错误地切断了Router C的连接,可能会导致网络业务中断甚至更严重的后果。
攻击者也可以同时伪造不同源地址的攻击报文或者同时攻击多个服务器,从而造成网络阻塞甚至网络瘫痪。
IPv6 uRPF可以有效防范上述攻击。一般情况下,设备在收到报文后会根据报文的目的地址对报文进行转发或丢弃。而IPv6 uRPF可以在转发表中查找报文源地址对应的接口是否与报文的入接口相匹配,如果不匹配则认为源地址是伪装的并丢弃该报文,从而有效地防范网络中基于源地址欺骗的恶意攻击行为的发生。
IPv6 uRPF检查有严格(strict)型和松散(loose)型两种。
不仅检查报文的源地址是否在IPv6转发表中存在,而且检查报文的入接口与IPv6转发表是否匹配。
在一些特殊情况下(如非对称路由,即设备上行流量的入接口和下行流量的出接口不相同),严格型IPv6 uRPF检查会错误地丢弃非攻击报文。
一般将严格型IPv6 uRPF检查布置在ISP的用户端和ISP端之间。
仅检查报文的源地址是否在IPv6转发表中存在,而不再检查报文的入接口与IPv6转发表是否匹配。
松散型IPv6 uRPF检查可以避免错误的拦截合法用户的报文,但是也容易忽略一些攻击报文。
一般将松散型IPv6 uRPF检查布置在ISP-ISP端。另外,如果用户无法保证路由对称,可以使用松散型IPv6 uRPF检查。
IPv6 uRPF的处理流程如下:
(1) 检查地址合法性:对于目的地址是组播地址的报文直接放行。否则,进入步骤(2);
(2) 检查报文的源地址在IPv6转发表中是否存在匹配的单播路由:如果在IPv6转发表中查找失败(源地址是非单播地址则会匹配到非单播路由),则报文被丢弃,否则进入步骤(3);
(3) 如果IPv6转发表中匹配的是上送本机路由,则检查报文入接口是否是InLoop接口:如果是,则直接放行,否则报文被丢弃;如果IPv6转发表中匹配的不是上送本机路由则继续步骤(4);如果源地址是Link-Local地址,倘若这个地址是入接口的地址,并且入接口不是InLoop接口则报文被丢弃,否则直接放行;
(4) 检查报文源地址与入接口是否匹配:反向查找报文出接口(反向查找是指查找以该报文源IPv6地址为目的IPv6地址的报文的出接口),如果其中至少有一个出接口和报文的入接口相匹配,则进行正常的转发;如果不匹配,则查看是否是松散型检查,如果是,则报文检查通过,否则说明是严格型检查,报文被丢弃。
图2-2 IPv6 uRPF典型组网应用
通常在ISP上配置uRPF,在ISP与用户端,配置严格型IPv6 uRPF检查,在ISP与ISP端,配置松散型IPv6 uRPF检查。
同一接口上不能同时配置严格型IPv6 uRPF检查和松散uRPF检查,也不能同时配置松散型IPv6 uRPF检查和严格型uRPF检查。
如果在接口下打开IPv6 uRPF功能,用户可以通过display ipv6 interface命令查看IPv6 uRPF功能丢弃报文的统计信息(IPv6 uRPF Information:Drops表示被丢弃的报文数目;Suppressed drops表示被抑制丢弃的报文数目)。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启IPv6 uRPF功能。
ipv6 urpf { loose | strict }
缺省情况下,IPv6 uRPF功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置IPv6 uRPF后的运行情况,通过查看显示信息验证配置的效果。
表2-1 IPv6 uRPF显示和维护
配置步骤 |
命令 |
显示IPv6 uRPF的配置应用情况 |
display ipv6 urpf interface interface-type interface-number [ slot slot-number ] |
客户交换机Switch A与ISP交换机Switch B直连,在Switch B的VLAN接口10上启动IPv6 uRPF,要求配置严格型IPv6 uRPF检查;在Switch A的VLAN接口10上启动IPv6 uRPF,要求配置严格型IPv6 uRPF检查。
图2-3 IPv6 uRPF配置举例组网图
(1) 配置Switch B
# 创建VLAN 10。
[SwitchB] vlan 10
[SwitchB-vlan10] quit
# 配置VLAN接口10的IPv6地址。
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] ipv6 address 1000::2/64
# 在VLAN接口10上配置严格型IPv6 uRPF检查。
[SwitchB-Vlan-interface10] ipv6 urpf strict
(2) 配置Switch A
# 创建VLAN 10。
<SwitchA> system-view
[SwitchA] vlan 10
[SwitchA-vlan10] quit
# 配置VLAN接口10的IPv6地址。
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] ipv6 address 1000::1/64
# 在VLAN接口10上配置严格型IPv6 uRPF检查。
[SwitchA-Vlan-interface10] ipv6 urpf strict
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!