RIP手工汇总产生的路由黑洞

我们在用手工汇总路由时可能产生路由黑洞问题从而使网络变成不可达,本次的实验环境如下面的拓扑:R0和R1之间是192.168.12.0/24;R1和R2之间是192.168.23.0/24;R2和R3之间是192.168.34.0/24;R3的右边是一个4.0.0.0的网络,R3上有一条默认路由指向左边,即从s0/1出来。所有路由器用RIP协议来学习路由条目,我们在R3的s0/1接口上做手工汇总,汇总地址为4.4.0.0/24,先来看看结果如何。
做了汇总后,R0、R1、R2的路由表是一致的,R3的路由表有详细子网的信息。

实验拓扑

汇总之后R0、R1、R2的路由表是一样的,如下图:R1、R2、R3路由表

 R3的路由表中有详细的4.0.0.0网络各子网的条目:R3

下面在R0上用traceroute来测试网络,先测试现有的网络4.4.4.0/24,测试结果为网络是连通的。测试

 然后我们来看,如果这时有个去往4.4.5.0/24(网络中没有的网段)网络的数据包,它会被怎样转发呢?黑洞

从图上我们可以看到,因为4.4.5.0/24是不存在的子网,但他是4.4.0.0的子网,R0按照路由表发给R1R1发给R2R2发给R3R3的路由表有4.4.0.0网络的详细条目,但查不到4.4.5.0网络,就按默认路由发往R2R2查看路由表4.4.5.0网络是4.4.0.0的子网,按照R2的路由表,4.4.0.0的下一跳是192.168.34.2(R3),然后将包发给R3;接下来就会循环上面的过程,直到TTL值变为0才丢弃该包。从上面的途图中我们也能看出包一直在192.168.34.1(R2)192.168.34.2(R3)之间循环。

当然一般情况下这样的情况也不会有什么问题,但如果有人利用这一点,恶意发数据包去往4.4.0.0子网下,但实际又是不存在的子网(如4.4.5.0/24),这样的数据包一旦有很多会不会引起网络的拥塞呢?

为了避免这样的情况发生,我们在做手工汇总时最好再添加一条汇总条目的路由指向NULL0。现在在这个实验中我们来添加一条这样的路由条目看看(当然了要在汇总的路由器上添加):NULL

然后我们再来看看结果会怎么样: 07

现在,我们看到数据包显示是目标是不可达的,这样就不会在R2和R3之间循环了,而是直接R3被丢弃了。这样即使有很多这样的数据包也不会有问题了,R3会直接丢弃他们。

注:指向NULL 0 的这条条目只有在RIP手工汇总时需要添加,其他的路由协议中,当你在手工汇总时会自动产生一条指向NULL0的条目。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章