IPv6 URPF(Unicast Reverse Path Forwarding,单播逆向路径转发)是一种IPv6单播报文检查判断技术,用于防止基于源地址欺骗的网络攻击行为。
IPv6 URPF用在IPv6网络中,通过获取交换机收到的IPv6报文的IPv6地址和入接口,以源IPv6地址为目的地址在路由表中查找路由。如果查到的路由出接口和接收该报文的入接口不匹配,交换机认为该报文的IPv6源地址是伪装的,丢弃该报文。随着对IPv6的需求越来越强烈,支持IPv6的URPF将在未来的安全应用方面具有的很好的应用前景。
交换机收到IPv6单播报文,通过获取报文的源IPv6地址和入接口,交换机以源IPv6地址为目的地址在路由表中查找路由,如果查到的路由出接口和接收该报文的入接口不匹配,交换机认为该报文的源地址是伪装的,丢弃该报文。通过软件的方法实现URPF效率比较低,我们要实现硬件上实现数据包过滤机制。通过软件启动URPF功能,然后通过硬件实现。
IPv6 URPF通过遍历单播路由表以及监视单播路由表的变化,发现IPv6数据的源地址跟一个或多个IPv6网段A={A|X:X::X:X/m1,X1:X1::X1:X1/m2, …}的对应关系,并根据这个关系定义规则来过滤IPv6报文。这个对应关系我们称之为IPv6 URPF对应关系。即目的地址为A路由表项的出端口为P,则URPF的功能则是:在P端口只允许源IPv6地址为A的IPv6报文进入,否则一律丢弃(路由协议报文除外)。
如下图所示, 接口vlan1的IPv6 URPF对应关系为:源地址2001::1和2002::2网段的IPv6数据包从vlan1接口进入,与路由表匹配,转发数据包。而从vlan2进入的报文的源地址为2001::3与路由表不匹配,丢弃该报文。