發布時間: 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協作認證和培訓