发布时间: 2022-09-05 10:43:49
EIGRP路由协议的算法,EIGRP路由协议使用DUAL算法计算和重计算路由。该算法可以让运行EIGRP协议的网络在出现拓扑变化时,快速地进行收敛。我们将以图1到图6为例说明DUAL算法的计算原理。
图1 网络的稳定状态
图6 路由器E向路由器D发出答复包
首先,我们需要明确以下几个概念。
● FD(Feasible Distance,FD)
FD是到达目的网段的最小开销。当到达目的网段存在多条路径时,具有与FD相等开销的路径就是后继。
● RD(Reported Distance,RD)
RD是邻居通告给路由器的,从邻居处到达目的网段的开销。
● 后继(Successor)
到达目的网段开销最小的路径,它被记入路由表,成为路由。
● 可行性后继(Feasible Successor,FS)
它是后继的备份路径,但不是所有到达目的网段的路径都可以成为后继或可行性后继。
下面我们来看图1。
从图1中我们可以看到,这个网络处于稳定状态。
路由器C、路由器D、路由器E到达网段a的后继分别是通过路由器B和路由器D的路径。虽然每台路由器都有多条路径可以到达网段a,但是只有路由器C有一条可行性后继,也就是说只有路由器C的拓扑表里有到达网段a的备份路径。这是因为如果一条路径的RD大于或等于到达目的网段的FD,则该路径不能成为可行性后继。
在路由器C到达网段a的三条路径中,通过路由器B的路径是后继;通过路由器D的路径的RD小于后继的FD,则这条路径是可行性后继;通过路由器E的路径的RD等于后继的FD,它不能成为可行性后继,不能被记入拓扑表。
路由器D和路由器E的拓扑表里没有到达网段a的可行性后继。
这时,当网络里路由器B和路由器D之间的链路突然出现了故障,如图2所示,路由器D失去了到达网段a的后继,网络开始收敛操作。
图2 路由器B与路由器D之间的链路发生故障
从图2中我们可以看到,当路由器D发现它和路由器B之间的链路发生了故障时,它的路由表和拓扑表里关于网段a的后继失效。虽然路由器D还可以通过路由器C到达网段a,但是该路径的RD大于后继的FD,它不是可行性后继,该路径不在路由器D的拓扑表里。实际上,路由器D除了经过路由器B的路径外,并不知道其他的到达网段a的路径。
于是,如图3所示,路由器D向邻居发出请求包,要求得到到达网段a的路径信息。
图3 路由器D向邻居发出请求包
从图3中我们可以看出,当路由器D向邻居发出请求包的时候,路由器D会将自己拓扑表中到达网段a的条目置为“ACTIVE”状态,该状态意味着该条目目前正处于收敛之中。
路由器C收到路由器D的请求包时,它意识到它通过路由器D到达网段a的可行性后继已经失效,它会将该条目从拓扑表中移除。
另外,当路由器E收到路由器D的请求包时,它意识到自己到达网段a的后继也失效了。由于与路由器D同样的原因,路由器E也只知道一条到达网段a的路径,即通过路由器D的路径。路由器E也要向邻居请求得到到达网段a的路径信息,如图4所示。
图4 路由器E向路由器C发出请求包,路由器C向路由器D发出答复包
从图4中我们可以看到,当路由器E向路由器C发出请求包时,路由器E将自己拓扑表中到达网段a的条目置为“ACTIVE”状态。
另外,由于路由器C与路由器E几乎同时收到了路由器D的请求包,所以在路由器E向路由器C发出请求包的同时,路由器C已经开始向路由器D发出答复包了,其中包含路由器C到达网段a的路径信息。
路由器D虽然收到了路由器C发来的答复包,了解了通过路由器C到达网段a的路径信息,但是它还不能收敛,因为它还要等待另一个邻居——路由器E的答复包。
下一步,路由器C向路由器E发出答复包,如图5所示。
图5 路由器C向路由器E发出答复包
在路由器C向路由器E发出的答复包中,包含路由器C到达网段a的路径信息,路由器E从路由器C处得到了后继。
然后,路由器E向路由器D发出答复包,其中包括路由器E到达网段a的信息,如图6所示。
路由器D收到路由器E发送来的答复包。根据其中的信息,比较两条路径的FD之后,发现两条路径具有相同的FD,则这两条路径的开销相同,两条路径都是后继,它们被一同记入路由表。
这样,网络中关于网段a的路由收敛完毕,最终的结果如图6所示。
上一篇: 检查EIGRP路由协议配置的命令
下一篇: CCNP协作认证和培训