全部課程
發(fā)布時(shí)間: 2022-09-05 10:43:49
EIGRP路由協(xié)議的算法,EIGRP路由協(xié)議使用DUAL算法計(jì)算和重計(jì)算路由。該算法可以讓運(yùn)行EIGRP協(xié)議的網(wǎng)絡(luò)在出現(xiàn)拓?fù)渥兓瘯r(shí),快速地進(jìn)行收斂。我們將以圖1到圖6為例說明DUAL算法的計(jì)算原理。
圖1 網(wǎng)絡(luò)的穩(wěn)定狀態(tài)
圖6 路由器E向路由器D發(fā)出答復(fù)包
首先,我們需要明確以下幾個(gè)概念。
● FD(Feasible Distance,F(xiàn)D)
FD是到達(dá)目的網(wǎng)段的最小開銷。當(dāng)?shù)竭_(dá)目的網(wǎng)段存在多條路徑時(shí),具有與FD相等開銷的路徑就是后繼。
● RD(Reported Distance,RD)
RD是鄰居通告給路由器的,從鄰居處到達(dá)目的網(wǎng)段的開銷。
● 后繼(Successor)
到達(dá)目的網(wǎng)段開銷最小的路徑,它被記入路由表,成為路由。
● 可行性后繼(Feasible Successor,F(xiàn)S)
它是后繼的備份路徑,但不是所有到達(dá)目的網(wǎng)段的路徑都可以成為后繼或可行性后繼。
下面我們來看圖1。
從圖1中我們可以看到,這個(gè)網(wǎng)絡(luò)處于穩(wěn)定狀態(tài)。
路由器C、路由器D、路由器E到達(dá)網(wǎng)段a的后繼分別是通過路由器B和路由器D的路徑。雖然每臺路由器都有多條路徑可以到達(dá)網(wǎng)段a,但是只有路由器C有一條可行性后繼,也就是說只有路由器C的拓?fù)浔砝镉械竭_(dá)網(wǎng)段a的備份路徑。這是因?yàn)槿绻粭l路徑的RD大于或等于到達(dá)目的網(wǎng)段的FD,則該路徑不能成為可行性后繼。
在路由器C到達(dá)網(wǎng)段a的三條路徑中,通過路由器B的路徑是后繼;通過路由器D的路徑的RD小于后繼的FD,則這條路徑是可行性后繼;通過路由器E的路徑的RD等于后繼的FD,它不能成為可行性后繼,不能被記入拓?fù)浔怼?/p>
路由器D和路由器E的拓?fù)浔砝餂]有到達(dá)網(wǎng)段a的可行性后繼。
這時(shí),當(dāng)網(wǎng)絡(luò)里路由器B和路由器D之間的鏈路突然出現(xiàn)了故障,如圖2所示,路由器D失去了到達(dá)網(wǎng)段a的后繼,網(wǎng)絡(luò)開始收斂操作。
圖2 路由器B與路由器D之間的鏈路發(fā)生故障
從圖2中我們可以看到,當(dāng)路由器D發(fā)現(xiàn)它和路由器B之間的鏈路發(fā)生了故障時(shí),它的路由表和拓?fù)浔砝镪P(guān)于網(wǎng)段a的后繼失效。雖然路由器D還可以通過路由器C到達(dá)網(wǎng)段a,但是該路徑的RD大于后繼的FD,它不是可行性后繼,該路徑不在路由器D的拓?fù)浔砝?。?shí)際上,路由器D除了經(jīng)過路由器B的路徑外,并不知道其他的到達(dá)網(wǎng)段a的路徑。
于是,如圖3所示,路由器D向鄰居發(fā)出請求包,要求得到到達(dá)網(wǎng)段a的路徑信息。
圖3 路由器D向鄰居發(fā)出請求包
從圖3中我們可以看出,當(dāng)路由器D向鄰居發(fā)出請求包的時(shí)候,路由器D會將自己拓?fù)浔碇械竭_(dá)網(wǎng)段a的條目置為“ACTIVE”狀態(tài),該狀態(tài)意味著該條目目前正處于收斂之中。
路由器C收到路由器D的請求包時(shí),它意識到它通過路由器D到達(dá)網(wǎng)段a的可行性后繼已經(jīng)失效,它會將該條目從拓?fù)浔碇幸瞥?/p>
另外,當(dāng)路由器E收到路由器D的請求包時(shí),它意識到自己到達(dá)網(wǎng)段a的后繼也失效了。由于與路由器D同樣的原因,路由器E也只知道一條到達(dá)網(wǎng)段a的路徑,即通過路由器D的路徑。路由器E也要向鄰居請求得到到達(dá)網(wǎng)段a的路徑信息,如圖4所示。
圖4 路由器E向路由器C發(fā)出請求包,路由器C向路由器D發(fā)出答復(fù)包
從圖4中我們可以看到,當(dāng)路由器E向路由器C發(fā)出請求包時(shí),路由器E將自己拓?fù)浔碇械竭_(dá)網(wǎng)段a的條目置為“ACTIVE”狀態(tài)。
另外,由于路由器C與路由器E幾乎同時(shí)收到了路由器D的請求包,所以在路由器E向路由器C發(fā)出請求包的同時(shí),路由器C已經(jīng)開始向路由器D發(fā)出答復(fù)包了,其中包含路由器C到達(dá)網(wǎng)段a的路徑信息。
路由器D雖然收到了路由器C發(fā)來的答復(fù)包,了解了通過路由器C到達(dá)網(wǎng)段a的路徑信息,但是它還不能收斂,因?yàn)樗€要等待另一個(gè)鄰居——路由器E的答復(fù)包。
下一步,路由器C向路由器E發(fā)出答復(fù)包,如圖5所示。
圖5 路由器C向路由器E發(fā)出答復(fù)包
在路由器C向路由器E發(fā)出的答復(fù)包中,包含路由器C到達(dá)網(wǎng)段a的路徑信息,路由器E從路由器C處得到了后繼。
然后,路由器E向路由器D發(fā)出答復(fù)包,其中包括路由器E到達(dá)網(wǎng)段a的信息,如圖6所示。
路由器D收到路由器E發(fā)送來的答復(fù)包。根據(jù)其中的信息,比較兩條路徑的FD之后,發(fā)現(xiàn)兩條路徑具有相同的FD,則這兩條路徑的開銷相同,兩條路徑都是后繼,它們被一同記入路由表。
這樣,網(wǎng)絡(luò)中關(guān)于網(wǎng)段a的路由收斂完畢,最終的結(jié)果如圖6所示。