资源描述
EIGRP路由汇总问题详解
现在我们一起来看关于EIGRP的手动汇总的相关详细信息!
R1的配置:
R1(config-if)#router eigrp 100
R1(config-router)#network 192.168.1.0
R1(config-router)#network 172.16.1.0 0.0.0.255
R1(config-router)#no auto----关闭自动汇总
R2的配置:
R2(config-if)#router eigrp 100
R2(config-router)#network 192.168.0.0 0.0.255.255---把三个接口的网络同时进行宣告
R2(config-router)#network 23.1.1.0 0.0.0.255
R2(config-router)#network 2.2.2.0 0.0.0.255
R2(config-router)#no auto
R3的配置:
R3(config-if)#router eigrp 100
R3(config-router)#network 23.1.1.0 0.0.0.255
R3(config-router)#net 172.16.2.0 0.0.0.255
R3(config-router)#no auto
做好以后去R1上去show ip route 结果如下:(只针对192.168 的路由)
C 192.168.1.0/24 is directly connected, FastEthernet0/0
D 192.168.2.0/24 [90/409600] via 192.168.1.2, 00:07:15, FastEthernet0/0
D 192.168.3.0/24 [90/409600] via 192.168.1.2, 00:07:16, FastEthernet0/0
R3上show ip route 结果如下
D 192.168.1.0/24 [90/307200] via 23.1.1.2, 00:04:45, FastEthernet0/1
D 192.168.2.0/24 [90/409600] via 23.1.1.2, 00:04:45, FastEthernet0/1
D 192.168.3.0/24 [90/409600] via 23.1.1.2, 00:04:46, FastEthernet0/1
R1收到两条从R2学过来的EIGRP路由,一条是自己跟R2的直连路由
R3收到三条从R2学过来的EIGRP路由
假设R2有255个192.168的路由,
也就是192.168.1.0/24 ,192.168.2.0/24, 192.168.3.0/24 ,192.168.4.0/24---192.168.255.0/24
那么在R1或者R3的路由表里就会保存这所有255条明细路由,
D 192.168.1.0/24 [90/307200] via 23.1.1.2, 00:04:45, FastEthernet0/1
D 192.168.2.0/24 [90/409600] via 23.1.1.2, 00:04:45, FastEthernet0/1
D 192.168.3.0/24 [90/409600] via 23.1.1.2, 00:04:46, FastEthernet0/1
......省略
D 192.168.255.0/24 [90/409600] via 23.1.1.2, 00:04:46, FastEthernet0/1
对于R1跟R3来说,造成的后果就是路由表过大。
解决方案
我们可以在关闭自动汇总的同时,开启手动汇总,
可以在R2上做相关操作:
R2(config)#interface f0/1
R2(config-if)#ip summary-address eigrp 100 192.168.0.0 255.255.0.0
*Mar 1 02:42:15.291: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 23.1.1.3 (FastEthernet0/1) is resync: summary configured
红色字体部分是开启EIGRP手动汇总的命令,
这条命令的意思是 R2在通告路由给R3的时候,
将192.168.1.0/24--192.168.255.0/24的明细路由以一条汇总路由的方式通告给R3,
这样做的好处是:1--减少路由表大小,(所以明细被抑制,收到的路由是一条汇总路由)
2--减少路由器负荷 (明细路由down掉,不会使得收到汇总路由的路由器执行DUAL计算)
3--将拓扑变化的影响降低到较小范围
这三个好处会在下面一一体现出来,
现在再来看一下R3的路由表:
D 192.168.0.0/16 [90/409600] via 23.1.1.2, 00:05:25, FastEthernet0/1
收到的是一条汇总后的路由,所有明细路由消失,
对于R3来说第一个好处就是缩小了路由表大小,
此时如果我们把R2的L 1 192.168.2.0/24的网络给shutdown掉,
看看结果
先看R2的路由表
C 192.168.1.0/24 is directly connected, FastEthernet0/0
C 192.168.3.0/24 is directly connected, Loopback2
D 192.168.0.0/16 is a summary, 00:09:22, Null0
再看R3
D 192.168.0.0/16 [90/409600] via 23.1.1.2, 00:10:10, FastEthernet0/1
可以看出R2相连的明细路由down掉的情况下对R3并不会造成影响,
原因就是R3收到的是一条汇总后的路由。
这是路由汇总的第二跟第三个好处。
但是当R2相连的所有明细路由都down掉的情况下,R3的汇总路由也会随之消失。
但是进行路由汇总也有一定的缺陷,缺陷就在于,
因为R2的192.168.2.0/24的明细down掉了,
所以这个明细路由的网络是不存在的,但是因为R3有192.168.0.0/16的汇总路由,
所以假如在R3上去PING 192.168.2.100的话,这个数据包是会被发往R2,
而这个数据包到达R2之后,
R2发现没有这个目的网络,所以数据包会在R2被丢弃。
但是如果我们没有进行汇总,R3收到的是明细路由的情况下,
R2的明细路由down掉了,R3的路由表的这条明细也会跟着消失
所以如果这时候R3去PING 192.168.2.100就直接在本地被丢弃,而不用让数据包一直到达R2才被丢弃,浪费流量带宽。
还有一个就是无论是自动汇总还是开启手动汇总,
都会在本地生成一条指向NULL 0的summery 路由。
那么这条指向NULL0的汇总路由究竟有什么作用呢?
我们来分析一下:
假如R2进行手动汇总192.168.0.0/16给R3,而本地不生成192.168.0.0/16的指向NULL0的汇总路由的话,
那还是上面的例子,假如R2的192.168.2.0/24的明细down掉了,
那么对R3来说没有任何影响,
但是假如R2这里本来有着一条默认路由
IP ROUTE 0.0.0.0 0.0.0.0 F0/1 下一跳是指向R3的,
那么如果R3这时候去PING 192.168.2.100问题就出现了:
首先这个数据包从R3发出,到达R2之后,
R2去查找路由表,发现本地没有192.168.2.0/24的路由,
但是有一条默认路由是指向R3的
因此这个数据包会被从默认路由出去,丢给R3,R3收到这个本来是自己发出的数据包,
发现该数据包的目的是去往192.168.2.0网络,
因此又丢给R2,那么该数据包会在R2跟R3之间陷入死循环。造成路由环路。
而第二种情况是进行了汇总的路由器,
本地会自动生成这条指向NULL 0的summery 路由,(NULL0接口是空接口,也就是丢弃)
如果R3这时候去PING 192.168.2.100:首先这个数据包从R3发出,到达R2之后,
R2去查找路由表,发现本地没有192.168.2.0/24的路由,
但是有一条192.168.0.0/16 is a summary,
即使本地有一条默认路由是指向R3的,但是根据路由表的最长前缀匹配原则,
因此这个数据包会被发往NULL0接口(丢弃)。而不会再丢给R3,因而避免了路由环路。
所以,由此可以得出,进行汇总的(不管是自动还是手动)路由器,
本地自动产生一条指向NULL 0的summery 路由的作用就是----避免环路。
谢谢阅读!如有转载或分享请标明出处!
展开阅读全文