这是一个为了防止环路的设计。null 0 口是黑洞接口,实际上就是将数据包丢掉。路由器在转发数据的时候如果发现有多个条目的网络地址 和数据包的目的地址符合,那么就会比较这几个条目的子网掩码,按照掩码最长的条目转发,因为子网掩码越长说明网络的范围越小,越精确。这就是子网掩码最长原则。
你可以看一下这个图,如果RTD上连接的10.0.1.0/24这个网络出现故障,那么RTD上关于它的路由条目就会消失,而此时RTE收到一个要去往10.0.1.0/24网段的数据包会被转发的RTD,但是RTD上已经没有了10.0.1.0/24的网络路由条目,只能按照默认路由转发了,这样就会被转发回RTE,然后RTE再转发会RTD,路由环路出现了,所以需要添加上10.0.0.0 255.255.0.0 null0这个语句,这样这个数据包在RTD上找不到10.0.1.0/24的路由条目的话会被转发的按照10.0.0.0 255.255.0.0 null0转发到null0接口。因为这个条目的掩码是16位,而默认路由的掩码长度是32位。
路由选录遵循最精确匹配:没有告诉目的网段但是有默认路由,所以是A,呵呵