image

如图拓扑:  各个物理接口的IP 命令规则: xy.1.1.x  例: R2的f0/0为23.1.1.2   R2的F1/0为 12.1.1.2   LOOPBACK地址为图所示

R2上将静态路由重分布到EIGRP

eigrp跑在每台路由器上,没开启STUB之前。

R6上学习到的路由如图

image

可以看到学全了所有路由。

假设R3是县级路由器,R4是市级路由器,假如去往R6(另一个市)的链路出现问题了。那么根据EIGRP原理

R4会在自己的拓扑表里看看有没有次优的路径,如果有,就放入路由表中继续使用,如果没有,就会像邻居发送query查询包,R3作为邻居接到后,自己没有次优到达R6的路径也会给R2发,一级一级发过去,到最后也是R1回应R2, R2回应R3,一级一级回应上来。  ||你说连市级路由器都不晓得我们县级会晓得吗?有必要吗?何必呢?不说别的,万一县级路由器出故障了回应不了了,那我

R4等个3分钟就变stuck in active了,完全没必要。如何避免呢?所以我们要在县级路由器R3上打开eigrp stub。变成STUB域。

即我可以传送我区域里我指定类型的路由条目或者只接不发,但我不接受查询(R4不像STUB区域发送查询包)多省事。

在R3 上    

R3(config-router)#eigrp stub receive-only

指定R3只接受路由,不发送路由更新,这时我们看R4路由表

image

已经不见县里的路由条目。当然还eigrp stub 后面还可以指定 只发送直连的 汇总的 等等等等这里就略过。

这时我们把R6的回环接口DOWN掉,看看R4还会不会像R3发送查询包

debug eigrp packet query命令。开启此DEBUG

 

*Mar  1 03:14:51.335: EIGRP: Received QUERY on FastEthernet0/0 nbr 45.1.1.5
*Mar  1 03:14:51.339:   AS 90, Flags 0x0, Seq 124/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
*Mar  1 03:14:51.351: EIGRP: Enqueueing QUERY on FastEthernet1/0 iidbQ un/rely 0/1 serno 102-102
*Mar  1 03:14:51.351: EIGRP: Enqueueing QUERY on FastEthernet0/0 iidbQ un/rely 0/1 serno 102-102
*Mar  1 03:14:51.355: EIGRP: Enqueueing QUERY on FastEthernet1/0 nbr 34.1.1.3 iidbQ un/rely 0/0 peerQ un/rely 0/0 serno 102-102
*Mar  1 03:14:51.359: EIGRP: Enqueueing QUERY on FastEthernet0/0 nbr 45.1.1.5 iidbQ un/rely 0/0 peerQ un/rely 0/0 serno 102-102
R4#
*Mar  1 03:14:51.359: EIGRP: Sending QUERY on FastEthernet0/0    /*只从F0/0发送了查询,F0/0连的是R5,没有从F1/0(连接R3)发送查询
*Mar  1 03:14:51.363:   AS 90, Flags 0x0, Seq 154/0 idbQ 0/0 iidbQ un/rely 0/0 serno 102-102
*Mar  1 03:14:52.235: EIGRP: Received QUERY on FastEthernet1/0 nbr 34.1.1.3
*Mar  1 03:14:52.239:   AS 90, Flags 0x0, Seq 174/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0

 

效果达成。