空接口(Null interface)通常用于对路由环路的防范。Eigrp就这样,通常在路由汇总之后创建一条到Null的路由。当一种路由协议创建了汇总之后,就意味着这个路由器会接收来自这个汇总的任意数据包。因为不是这个汇总里面所有的网段都是在使用当中的,万一默认路由也在这个路由器上启用了,就可能会有包循环的危险发生。

一个最常见需要添加到null接口路由的场景是你一个有大量客户接入的访问服务器。这时该访问服务器需要添加到这些主机的路由。为了节省网络上路由表的条目,其它路由器往往只有指向该访问服务器的路由汇总。在配置上,也必须在该访问服务器添加一条到null 接口同样的汇总路由。否则,路由环路将会在外部主机尝试访问一台在汇总里面不存在的网段内的主机时发生。这是因为访问服务器因没有找到到该主机的路由而把这个数据包按默认路由发送回去。

看下面的例子:

clip_p_w_picpath001

一个小型Internet服务提供商向customer提供了192.168.0.0/16的地址块。在这里,客户使用了其中的192.168.1.0/24和192.168.2.0/24这两个网段。ISP在ISP-R1上配置了一条到192.168.0.0/16(cust-R2)的静态路由.BB-R3是骨干ISP,它上面配置了一条到ISP-R1的默认路由并从ISP-R1上通过BGP协议得到了到192.168.0.0/16的路由信息。

由于在cust-R2上也配置了一条到ISP-R1的默认路由,现在cust-R2已经顺利能连通到Internet(BB-R3)了。然而当某个数据包发往192.168.0.0/16网段内一个不在使用中的网段内的主机时,由于cust-r2使用了到isp-r1的默认路由来应答,这个数据包将会在isp-r1和cust-r2之间震荡直至TTL值消耗完。这极为浪费路由器和链路资源。这些发往未在使用中的网段地址的数据包很可能来自DOS和IP地址段内存活主机的扫描等。

有关配置(省略)

注意:路由器上开启了相关的debug语句以便于跟踪数据包流向,尤其是debug ip packet 和 debug ip icmp。切忌在生产环境中启用这些debug语句除非你完全清楚其后果。

BB-R3# ping ip 192.168.20.1 repeat 1 T