1. 程式人生 > >《EIGRP路由開銷—Metric的計算》—那些你應該知道的知識(七)

《EIGRP路由開銷—Metric的計算》—那些你應該知道的知識(七)

寫在前面:

EIGRP協議為思科私有協議,僅支援在思科裝置間部署。EIGRP具有收斂快,支援非等價負載均衡等特點。


知識準備:

EIGRP路由開銷—Metric的計算,也就是metric值的計算,共涉及5個相關引數變數。分別是:

MTU、BW、DLY、Reliability、txload,rxload

實際在計算過程中,預設只會計算BW與DLY,其他引數對最終的Metric值計算,沒有影響。

BW=10^7/介面頻寬(Kbps)*256,DLY=延遲(微秒)/10*256

路由開銷的計算公式為: Metric= [K1 × BW + K2 × BW /(256-LOAD)+ K3 × DLY] × K5 /(RELIA+K4),在預設情況下,K2、K4、K5=0,K1=1,K3=1。

所以Metric在實際計算為:Metric= [K1 × BW + K3 × DLY]=BW+DLY

在實際路由更新的過程中,路由器會將介面的頻寬和時延等資訊一同向外更新,在其他路由器收到一條路由更新後,比較收到的介面頻寬值與自身收到這條路由更新的介面的頻寬,將更小的值代入計算。而DLY則是在路由更新的過程將所有收到該路由更新的介面的值帶入計算。

所以EIGRP路由開銷(Metric)的計算,又可以被描述為——在預設情況下,Eigrp Metric值的計算取決於路由更新過程中,最小介面頻寬的值和更新過程中,時延的累加。

下面我會用實驗來驗證上述理論。


開始動手:

實驗拓撲圖如下:

R1與R2通過百兆介面互聯,R2與R3通過十兆介面互聯,R3與VPC通過十兆介面互聯。

我們將通過此實驗模擬,EIGRP路由開銷的計算方法,以及EIGRP針對重分佈路由的開銷的計算方法。

EIGRP配置過程省略。

FastEthernet介面引數如下:

Ethernet介面引數如下:

我們來看一下,關於10.1.1.0/24網段的Metric開銷計算

10.1.1.0網段的路由,由R3宣告,在10.1.1.0被本地宣告時BW=10^7/介面頻寬(Kbps)*256=10^3*256=256000,DLY=延遲(微秒)/10*256=25600

所以Metric值為,Metric= [K1 × BW + K3 × DLY]=256000+25600=281600.

在R3裝置上檢視,驗證了我們計算的數值。

在R3宣告了該介面,R3會將該路由資訊更新給R2,通過抓包我們可以看到

R3將該路由資訊傳送給組播地址224.0.0.10,來更新次路由。在更新的資訊中,包含我們上述Metric計算所用到的值,其中包括介面頻寬與時延。這裡抓包看到的時延值很高,打一個問號,懷疑可能為wireshark翻譯問題,實際計算是符合我們的預期的。

R2收到該路有更新後,將路由更新中帶有的介面頻寬與自身的介面頻寬進行比較,在本實驗中這兩個介面均為Ethernet介面,所以該值相同,故BW不變。

DLY=25600+25600=51200

所以Metric=256000+51200=307200

在R2上檢視:

實驗結果符合預期。

在R2收到該更新後,R2會將該更新繼續想組播地址224.0.0.10進行轉發,通過抓包我們可以看到:

R2傳送的路由更新資訊中,包含路由更新路徑中最小的介面頻寬值,與累計的時延值。

R1收到該路有更新後,會比較該介面頻寬與收到路由更新的介面頻寬,由於R1與R2之間為百兆介面,介面頻寬大,所以仍然將十兆介面頻寬也就是,10000Kbps代入計算,所以BW值維持不變,DLY值累加。DLY=(100+1000+1000)/10 *256=53760

Metric=BW+DLY=256000+53760=309760

在R1上檢視:

實際結果符合預期。

那麼針對重分佈路由,Eigrp是如何計算他的開銷值呢?

我們在R3上,增加一條靜態路由並,將它重分佈到Eigrp中。

實際上,通過上圖,我們可以看到,在重分佈的過程中,會要求你將影響Eigrp Metric值計算的引數進行設定。

這包括了介面頻寬、時延、介面可靠性、負載和MTU。而我們知道,實際上影響路由引數計算的只有介面頻寬和時延。

其中需要注意的是設定的時延引數為10微秒的時延,而不是我們介面下的每一微秒的時延,兩個單位不一致。也就是需要將我們這裡設定的值乘以10倍帶入計算。

我們將10.1.2.0/24這條靜態路由,按照上圖所示的引數重分佈到Eigrp中,頻寬為1000Kbps,也就是1M,時延為2000us。

按照我們之前的計算方法,當R1收到該路由更新時,最小頻寬為我們設定的1000Kbps頻寬,時延累計為100+1000+2000=3100

所以BW=10^7/介面頻寬(Kbps)*256=2560000,DLY=延遲(微秒)/10*256=79360

所以Metric=BW+DLY=2560000+33280=2639360

從R1上看到的結果,符合我們計算的結果。


總結

Eigrp路由協議在計算路由開銷—Metric值時,實際最終計算的過程如下:

BW=10^7/介面頻寬(Kbps)*256,將路由更新方向,收介面中最小的介面頻寬代入計算

DLY=延遲(微秒)/10*256,將路由更新方向,收介面的延遲累加代入計算

Metric=BW+DLY。

這樣便可計算出路由開銷Metric的值。

其中需要注意的時Eigrp路由協議在進行重分佈靜態路由時,設定初始值代入計算,其中設定的延遲引數,需要乘10,帶入計算。

另外,在實際生產環境中,在同一資料中心區域,由於介面的一致性,很有可能導致BW引數的一致,在這樣的情況下,實際影響路由開銷Metric值的則是路由更新方向經過的介面的時延的累加。