楊蕾 王健 高玉宏 張作君 侯振陽
摘? ?要:EIGRP是一個高級距離矢量路由協(xié)議,支持中到大型網(wǎng)絡(luò),屬于基于傳聞協(xié)議在一組網(wǎng)絡(luò)運行EIGRP中路由器之間路由更新機制,是依靠擴散更新DUAL算法進行觸發(fā)路由更新。但是,這種算法在某些網(wǎng)絡(luò)結(jié)構(gòu)中,會出現(xiàn)發(fā)送大量查詢路由報文、浪費網(wǎng)絡(luò)設(shè)備CUP和內(nèi)存資源、消耗大量網(wǎng)絡(luò)鏈路帶寬等問題。文章提出了兩種方法來減少擴散更新DUAL算法中查詢路由,對今后網(wǎng)絡(luò)運行EIGPR動態(tài)選擇路由協(xié)議,提供了一些參考價值。
關(guān)鍵詞:EIGRP;DUAL算法;路由查詢;優(yōu)化
中圖分類號:TP393.1? ? ? ? ? 文獻標識碼:A
Abstract: EIGRP is an advanced distance vector routing protocol, a gossip-based protocol. It supports medium-scale and large-scale networks. The routing update mechanism between routers of EIGRP in one group of network operation depends on DUAL to trigger the routing update. However, in some network architectures, such algorithm will send lots of query routing messages, waste the CUP and memory of network devices, consume a large amount of network link bandwidths. Therefore, two methods are proposed to reduce the DUAL query routing, to provide reference for the dynamic selection of routing protocols of EIGPR in network operation in the future.
Key words: EIGRP; DUAL; routing query; optimization
1 引言
EIGRP(Enhanced Interior Gateway Routing Protocol,增強內(nèi)部網(wǎng)關(guān)路由選擇協(xié)議)是思科的一個私有協(xié)議,是一個無類、增強的距離矢量協(xié)議,使用了自治系統(tǒng)的概念來描述相鄰路由器的集合,自治系統(tǒng)中的路由器使用相同的路由協(xié)議并共享相同的路由信息。2013年這個協(xié)議開始公開稱為公有協(xié)議[1]。
EIGRP具有距離矢量和鏈路狀態(tài)特性,相反,它的發(fā)送傳統(tǒng)的距離矢量更新,其中包含網(wǎng)絡(luò)信息以及從發(fā)送通告的路由器到達這些網(wǎng)絡(luò)的開銷[2]。運行EIGRP中會同步相鄰路由器上的路由表,并在每次拓撲更改時發(fā)送特定的更新數(shù)據(jù),這些數(shù)據(jù)具有鏈路狀態(tài)協(xié)議特征。
EIGRP不是使用跳數(shù)作為度量值,跳數(shù)只是用來限定EIGRP路由更新數(shù)據(jù)包在被拋棄之前可以經(jīng)過的路由器個數(shù),這個跳數(shù)的數(shù)值用于限定AS的大小,最大跳數(shù)為255(其默認值為100),與度量值計算無關(guān)[3]。
2 EIGRP協(xié)議原理
一組網(wǎng)絡(luò)運行EIGRP路由選擇協(xié)議,首次路由器彼此用Hello包來建立鄰居關(guān)系,路由器初次更新會把所有路由都全部發(fā)送一遍給其他路由器。為了維持這種鄰居關(guān)系,EIGRP路由器依賴于Hello數(shù)據(jù)包來維護鄰居狀態(tài),并且不發(fā)送路由信息[4]。當網(wǎng)絡(luò)發(fā)生變化(網(wǎng)絡(luò)不可達或者更換路徑)時,會影響路由器的路由表中路由條目,只會把發(fā)送變化的路由信息進行更新,這也叫做觸發(fā)更新(或增量觸發(fā)更新)。
EIGRP有四種子協(xié)議分別為鄰居發(fā)現(xiàn)協(xié)議、可靠傳輸協(xié)議、擴散更新算法(DUAL算法)、PDM協(xié)議依賴模塊。鄰居發(fā)現(xiàn)協(xié)議為Hello協(xié)議,兩個路由器先交互Hello包,再建立鄰居關(guān)系,依靠周期性發(fā)送Hello包來維護維持鄰居關(guān)系。用專用RTP(Reliable Transport Protocol)管理路由器間的信息傳輸,從而實現(xiàn)了數(shù)據(jù)更新的快速投遞以及對接收數(shù)據(jù)的跟蹤,為可靠傳輸協(xié)議。DUAL算法為EIGRP提供選擇為維護到達每個目的網(wǎng)絡(luò)的最佳路徑,可以實現(xiàn)路由備份、動態(tài)的路由恢復(fù)和查詢路由等功能。PDM協(xié)議依賴模塊來實現(xiàn)對不同網(wǎng)絡(luò)層協(xié)議的支持,每個EIGRP的PDM將會為指定的協(xié)議維護多個相互獨立的表,這些表保存著特定協(xié)議的路由選擇信息。
3 擴散更新DUAL算法
DUAL算法是EIGRP的核心,包含兩種計算方式:本地計算和擴散計算??梢允笶IGRP選擇到達每個目的網(wǎng)絡(luò)的最佳路徑,并且保證這些路徑都是無環(huán)的。在初始化收斂和網(wǎng)絡(luò)發(fā)生變化時收斂是這些動態(tài)路由選擇協(xié)議中最快的。
在一組網(wǎng)絡(luò)中,當本地路由器丟失路由時,在拓撲表中找到備份路由,備份路由將替換最優(yōu)路由,直接進行路由切換,并將備份路由添加到本地路由器路由表中,并且要向所有路由器發(fā)送更改更新,通告所有路由器以替換路由,這就是本地計算。
在一組網(wǎng)絡(luò)中,本地路由器丟失一條路由時,在拓撲表中沒有備份路由,會通過擴散更新計算來發(fā)送查詢,路由器將發(fā)送query包給所有鄰居,詢問鄰居是否存在這條丟失路由的路徑信息[5]。鄰居收到查詢后,根據(jù)自身路由表的路由條目進行響應(yīng),根據(jù)鄰居答復(fù),判斷哪條路徑最優(yōu)從而加入本地路由表,使用新的路徑來訪問目的地,這就是擴散計算。
4 DUAL算法查詢路由的工作原理
擴散更新DUAL算法在某些網(wǎng)絡(luò)結(jié)構(gòu)中,存在一些浪費查詢情況。如圖1所示,網(wǎng)絡(luò)結(jié)構(gòu)中運行EIGRP協(xié)議,R1路由器中一條去往目的×網(wǎng)絡(luò)的路由丟失,R1將會聯(lián)動所有鄰居路由器進行DUAL算法查詢這條去往目的×網(wǎng)絡(luò)的路由信息。