1、 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)#netw
2、ork 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(c
3、onfig-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
4、结果如下 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.16
5、8的路由, 也就是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/40960
6、0] 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
7、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--减少路由器负荷
8、 (明细路由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
9、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收到的是一条汇总后的路由。 这是路由汇总
10、的第二跟第三个好处。 但是当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的路由表的这条明细也
11、会跟着消失 所以如果这时候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这里本来有着
12、一条默认路由 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之间陷入死循环。造成路由环路。 而第二种情况是进行了汇总的路由器, 本地会自动生成这条
13、指向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 路由的作用就是----避免环路。 谢谢阅读!如有转载或分享请标明出处!






