您的位置:首页 > 理论基础 > 计算机网络

EIGRP优化—末节路由简介

2018-03-27 12:55 169 查看

EIGRP优化

EIGRP网络一旦部署完成,便会稳定的运行,直到一台路由器失去一个到达目的网络的路由(设备或线路故障导致网络断开),这时便会启动可行后继路由来保持网络通畅。但如果没有可行后继路由,路由器会将此条路由变为活跃(Active)状态,并且开始查询

EIGRP查询

失去路由时,路由器会给(除了刚刚断掉的接口之外的)所有接口发送Query插叙包,查询到达目的网络的新路由,这些数据包会询问(除了刚刚断掉的邻居外)每个邻居是否有到达目的网络的路由。如果这时邻居路由器也没有前往目的网络的路由,它就会继续向(除了接收到查询包的邻居外)所有邻居发送查询包,继续查找是否有前往目的网络的路由,直到查询到网络的边界,边界路由器将查询结果(有或者没有)再一步一步的返回给发起查询的路由器,由此可见,对查询包的回复Reply包不必立刻回复,可以理解为一种“欠债”机制,我也不知道结果,所以我先欠给你一个Reply包,一会我问完我周围的人再回你。但虽然Reply包可以延时回复,但ACK确认包必须立刻回复,当收到查询包时就立刻回复ACK证明自己收到了查询包。

虽然EIGRP的查询机制给它带来了非常快的收敛速度,但同样的,假如网络非常大的话,无用的查询包会充满整个网络,进而造成资源的浪费,比如下面的例子:



红色箭头为查询包,黑色箭头为回复包

R1上去往目的网络的一跳路由发生故障断开了,R1没有其他替代路由,R1便会向自己的邻居R2询问是否有去往目的的路由,而很明显,R2去往目的网络智能通过R1,换言之,R2去往目的的路由都是从R1处雪莱,而此时R1还向R2询问如何去往目的网络。这时,R2就会发现R1一定是出现了什么问题,那既然R1都到达不了目的网络,那我也得寻找新的到达目的网络的路由了,于是R2便会继续想它的(除了收到查询包的邻居外的)所有邻居发送查询包,即发给R3和R4,以此类推,R3和R4断然也是不知道的那么便继续查询,直到查询到这个网络的边界(R5,R6,R7,R8)最后查询结果(没查到)再慢慢返回给R1。

我们很容易就能看见,只有R1自己拥有去往目的网络的线路,而此时这条路径发生故障,那么在这个网络中传播的所有查询包都是没有意义的,并且浪费了很多网络资源。

EIGRP末节路由器

EIGRP的末节路由器是一种人工设置的路由器类型,末节路由器不会将自己学到的路由发送给其他邻居,其他非末节路由器也不会向末节路由器发送查询包,末节路由器一般配置在网络的边界。

如上图例子中将R5,R6,R7,R8都配置为末节路由器,那么会大大节省网络资源的占用。



Stuck in Active

当一台路由器失去了一条路由时,它便会向邻居发送查询包试图查询新的路由,但如果在3分钟(默认)内没有收到所有所有待完成的应答,路由就会进入Stuck in Active(SIA)状态。我们称这个状态计时器为活跃计时器,一旦活跃计时器过期,邻居关系会被重置,路由器会把通过这个邻居学习到的所有路由都变味活跃状态,并尝试重新建立邻居关系。当然不排除因为网络中的各种小故障出现的丢包现象导致没有收到回复包,所以在活跃计时器过半(默认90s)时,就会发送一个SIA查询包,来查看是否对方仍在继续搜索(没有故障)。

如下图所示,R1前往目的网络的线路发生故障,R1企图向R2发送查询包查询新的路径,R2收到R1发来的查询包之后并不知道前往目的网络的新路径但R2继续想R3发送查询包,由于网络原因,R3的应答包丢失。这时,R1迟迟没有收到(90s)R2的应答包,为了确认邻居关系,想R2发送了SIA查询包,R2收到了SIA查询包后,立刻向R3发送最多三个SIA查询包来确认R3的状态。由于种种原因,R3并没有对SIA查询包进行应答,所以R2会向R1返回一个SIA应答包并且标记R3不可达并取消R3的邻居关系,而R1收到了R2的SIA应答则不会取消与R2的邻居关系。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息