看BGP的时候看到了一句话:如果企业在内部使用私有网络10.0.0.0/8,前往网络10.0.0.0/8中未使用的地址的分组将与默认路由匹配,进而转发到Internet。

也就是说我如果访问一个本地不存在的网络私有地址,这个数据包就会跑到公网上去。于是想看看这个数据包会跑到哪?

遂tracert 一个本地不存在的网络的ip 192.168.8.8,没想到的事情发生了,竟然出现环路如下图:

我们的网络里居然隐藏着路由环路_网络


 

数据包会在两个路由之间不停的转发255次直到ttl=0,这可不好。

环路怎么形成的?查下路由表看看怎么回事
 

我们的网络里居然隐藏着路由环路_休闲_02

 

上图(172.17.0.5的路由表)指定了一条默认路由 0.0.0.0 0.0.0.0 172.17.0.6,所有不匹配明细路由的数据包都发往172.17.0.6。192.168.8.8当然不在明细路由里面,被转发到172.17.0.6 。接下来登陆172.17.0.6再看路由表,如下图

 

我们的网络里居然隐藏着路由环路_网络_03

图的最后一行指定了去往192.168.0.0/16的下一跳是172.17.0.5,数据包又发送给了172.17.0.5环路由此形成。

这种情况下ping 192.168.8.8不会是time out 而是ttl过期(即ttl=0)如下图

 

我们的网络里居然隐藏着路由环路_网络_04

当初的工程师为了省事用一条192.168.0.0/16代表了内部网络,而这个网络中根本没有那么多的地址,这条路由一直在里面,没出现过严重的、明显的问题,暂时我还不知道这个环路对网络的影响到底有多大(谁知道告诉我)……只是感觉这条路由做的不是很好。很多事情都要细心,以后自己做也会注意。