黑洞路由实际是一种特殊的静态路由,将所有无关路由吸入其中,使它们有来无回的路由,一般是admin主动建立的路由条目。它使目的地址为该网段的数据报文到达设备之后,将被丢弃。

Null0口是个永不down的口,另外,将报文丢到Null接口的操作应不需要CPU进行什么处理,所以处理大量的报文也不会消耗设备的CPU资源。如果同样的功能用ACL(地址访问控制列表)实现,则流量增大时CPU利用率会明显增加。黑洞路由最大的好处是充分利用了路由器的包转发能力,对系统负载影响非常小。所以,设置黑洞路由一直是解决固定DOS***的最好办法。相当于洪水来临时,在洪水途经的路上附近挖一个不见底的巨大深坑,然后将洪水引入其中。

一个黑洞路由器是指一个不支持PMTU且被配置为不发送“Destination Unreachable--目的不可达回应消息的路由器。

试想一下,在做汇总的路由器上,一条明细路由消失了,但是他依然会通告汇总路由出去,那么远端的路由器依然会发包上来。这是汇总路由器查找明细没有路由,就匹配了缺省路由或汇聚路由,送回了发包来的路由器,于是这些包一直打环,要等到TTL超时才能停下。

例一

RT-1连接子网10.0.1.0/2410.0.2.0/24,配置路由聚合后,向RT-2发送路由10.0.0.0/22;RT-2连接子网10.0.4.0/2410.0.5.0/24,配置路由聚合后,向RT-1发送路由10.0.0.0/16。这样RT-1路由表中有路由项10.0.0.0/16,下一跳指向RT-2;RT-2路由表中有路由项10.0.0.0/22,下一跳指向RT-1。如果此时RT-1接收到目的地址为10.0.0.1IP报文,经过查表,匹配了表项10.0.0.0/16,转发到RT-2;RT-2经过查路由表,发现匹配表项10.0.0.0/22,于是又转发回RT-1。路由环路就这样形成了。

例二

正常情况下,报文转发正常。但如果直连路由10.0.0.0/24的链路发生故障,路由器会将此路由置为失效状态。此时如果路由器接收到目的地址是10.0.0.1的报文,经过查找路由表,发现只能匹配缺省路由,于是将报文转发给RT-2RT-2收到报文后,经过查找路由表,发现只能匹配从RT-1学习来的聚合后路由10.0.0.0/22,于是又将此报文返回到RT-1,这样路由环路就产生了。

因此,在路由器中配置路由黑洞完全是出于安全因素,设有黑洞的路由会默默地抛弃掉数据包而不指明原因。利用黑洞路由的这个特点,可以在实际组网中避免路由环路的形成。如下就是黑洞路由的配置:ip route 1.1.0.0 255.255.248.0 null0,这样就可以有效地防止这种路由环。