静态路由下一跳NULL0

在设备中看到下一跳地址是NULL0是怎么回事呢。

1
ip route-static vpn-instance 102 103.1.168.0 255.255.252.0 NULL0 description adv_route

NULL口是个伪接口(pseudo-interface),不能配地址,也不能被封装,它总是UP的,但是从来不转发或者接受任何通信量,对于所有发到该接口的通信量都直接丢弃。
比如说A和B是邻居
A连了三个网络192.168.1.0/24 192.168.2.0/24 192.168.3.0/24
然后在A上做了汇总192.168.0.0/16
A把这个汇总路由传给B
然后B传过来一个包,目的是192.168.4.0/24
如果,不是汇总到NULL0接口,看其过程:先分条细细匹配192.168.1.0/24 192.168.2.0/24 192.168.3.0/24,由于匹配不到,则匹配汇总路由192.168.0.0/16,则根据最长匹配原则,该分组与汇总路由匹配,那就出现了一种现象,如果这路由器有默认路由,则此包会沿默认路由转发分组。

解决方法一:
A交给B的汇总为:192.168.0.0/22 192.168.0.1–192.168.3.254 这样细化后,B就不会把192.168.4.0/24的包给A,但是这个方法有漏洞,因为掩码的使用多一位和少一位可用的地址变化较大。
解决方法二:
如果有了NULL0接口,看其过程,看其过程:先分条细细匹配192.168.1.0/24 192.168.2.0/24 192.168.3.0/24,由于匹配不到,则被转发到NULL0接口(注意,不是再来跟汇总路由匹配),而转发到NULL0,它就被丢弃或者到了比特桶(bit bucket,路由器确定的被丢弃比特(被丢弃的分组)的目的地),避免产生了以上的环路。
推荐用的方法:在B上的动态路由学习到了192.168.1.0/24 192.168.2.0/24 192.168.3.0/24的明细路由,再在B上写一条静态路由
192.168.0.0 255.252.0.0 null0 当数据包到B时,会根据最长掩码匹配原则去找路,当有去192.168.4.0/24 时,找完24位的掩码后都没有找到下一跳,这时会匹配静态路由,丢弃数据包。


一般是用于防止路由环路
A—-B
比如在B上写了一条192.168.0.0 255.255.0.0,下一跳指向A,访问的实际网段是192.168.1.0/24,但是A上面并没有这个网段,且写的是默认路由0.0.0.0 0,下一跳指向B,这样就会来回仍产生路由环路。
如果在A上配了一条192.168.1.0 24 null0的路由,那么到达A之后就会扔到黑洞,不会出现来回扔的情况。