假设A B两个路由器,A路由器连接三个网段分别是:172.16.1.0/24 172.16.2.0/24 172.16.30./24,那么当A对以上三个网段进行汇总,得到一条172.16.0.0/16的网段并将其传递给路由器B,此时在路由器A上会自动出现一条172.16.0.0/16 null0指向null0的路由,当路由器B收到一个去往172.16.1.0/24的数据包时,它会直接交给A来处理,此时没问题,但是如果B收到一个去往172.16.4.0/16的路由,根据路由最长匹配的原则,路由器A会将其发送到null0口,直接丢掉,因为路由器A发现自己汇总的 172.16.0.0/16的网段中细分路由里并没有172.16.4.0/24的匹配项目,所以发到null0,丢掉。那么如果此时路由器A有一条默认路由指向B并且没有null0路由就有可能发生环路了。因为去往172.16.4.0/16的路由会从默认路由出发到达B,而B会再发送到A。为了避免环路,EIGRP 则产生了Null0 的路由。
注意在高版本的IOS中,一旦汇总路由中不包含数据包目的地的详细路由,则直接将数据包转发到null0口丢弃,而不再查找默认路由。所以在对EIGRP汇总的时候尽量关闭自动汇总而采取人工详细汇总!在OSPF,IS-IS这些路由中我们也推荐创建一条null0路由来避免环路!
















