鐵之狂傲

 取回密碼
 註冊
搜尋

【理論解析】 【EP2】MOD-7 EIGRP

[複製連結] 檢視: 10443|回覆: 1

名望的英雄

KUSO四格畫家

EIGRP 簡介

EIGRP 的前身是 IGRP ,這兩個繞送協定是 Cisco 特有的繞送協定,只能在思科的路由器上運作。

EIGRP 綜合了距離向量(DV)和鏈路狀態(LS)兩者的優點

內部管理性距離是 90,外部管理性距離是 170。

EIGRP 總結路徑的管理性距離是 5。


特色還包括:

(1)減少頻寬佔用:

EIGRP 不會進行週期性的更新,它使用一個非常輕量的Hello協定封包去監督鄰居連線的狀態

EIGRP 只會在路徑或指標(metric)發生變化之後(例如: 鍊路加入或移除時),才會進行部分更新

當路徑資訊改變以後,DUAL只會發送發生改變的那條路徑資訊的更新,而不是發送整個路由表

這個與傳輸更新到整個區域內的所有路由器上的鏈路狀態路由協定(LS)相比節省相當多的頻寬

EIGRP 只有在路由器進行初始化時,會傳送整個路由表。


(2)快速收斂:

EIGRP 不使用 holddown 計時器,使用 Diffusing Update 演算法(DUAL)讓收斂能快速完成

並且能進行最佳路徑的選擇

使用 EIGRP 的路由器會儲存某些可到達目的地的備用路徑在拓樸表中

以便在主要路徑發生問題時,能快速調用備用路徑

也可能會沒有備用路徑,如果沒有合適的路徑或備用路徑

路由器會向它的鄰居進行查詢,以便選擇出一條替代路徑。

(3)支援多種網路層的協定:

EIGRP 透過使用協定相依模組(protocol-dependentmodules,PDMs)

可以支援 ApplleTalk、IP 和 IPX 這三種第三層的協定

(4)無縫連接第二層的協定:

EIGRP 不要求對OSI 的第二層協定進行特別的設定

EIGRP 能夠有效的工作在 LAN 及 WAN 的環境中

而且 EIGRP 保證網路不會產生迴路(loop-free),設定命令也很簡單。

(5)支援 VLSM

(6)不使用廣播,使用多播和單播,因此節省了頻寬。

(7)使用可靠傳輸協定(Reliable Transport Protocol, RTP )

用來保證 EIGRP 的封包在發送給鄰居時,是非常可靠的傳輸。



EIGRP 的運作



資料是放在最後稱為TLV(Type/Length/Values) 的欄位

在第二個欄位「IP 封包表頭」裏面,除了有來源 IP 位址,還有目的地 IP 位址、協定

目的地 IP 位址會被填入 88 ,代表的就是 EIGRP

目的地位址則被填入 224.0.0.10 的多播位址

如果是運作在乙太網路上,則會有一個乙太訊框的表頭被封裝,就是圖中第一個欄位

而其中的目的地 MAC 位址,則會被指定為多播位址 01-00-5E-00-00-0A

第三個欄位則包括了 EIGRP 使用的自治系統號碼(Autonomous System ,AS)、封包的型態及 TLV

封包的型態共有五種,以代碼方式呈現,五種封包分別為:

(1)Hello 封包 - 招呼
(2)Update 封包 - 更新
(3)Query 封包 - 查詢
(4)Reply 封包 - 回應
(5)Acknowledge(ACK) 封包 - 確認

TLV 則包括了 EIGRP 的指標,EIGRP 的指標計算有五個參數

分別是 K1 到 K5 ,預設的情況下只有 K1 (頻寬)及 K3(延遲)的數值是 1 ,其他都是 0

延遲是封包從來源到目的地之間所花費的時間,頻寬指的是到目的地的路徑上最小的頻寬

EIGRP 的路由器在運作時,會維護三張表:

neighbor table (鄰居表)、topology table (拓樸表) 和 routing table (路由表)

鄰居表保存了已經建立了鄰居關係的路由器和直接相連的路由器。

要運作EIGRP 協定的原則就是要先成為鄰居才能交換路徑,成為鄰居的條件是:

(1)收到 Hello 或 ACK
(2) AS 號碼相同
(3) K 值相同

拓樸表包含了此路由器到目的地網路的所有可能的路徑,其建立過程如下:

1. 在初始狀態時,每個路由器都會轉送一份路由表給其他鄰居路由器

2. 每個路由器會把從鄰居路由器得來的路由表儲存在自己的 EIGRP 拓樸表中

3. EIGRP 會把拓樸表中,針對每個目的地網路,選擇出一條到達該目的地網路的最佳路徑

4. 接著把所有的最佳路徑放到路由表中。每個 PDM 都有一個獨立的鄰居表、拓樸表及路由表



RTP

可靠傳輸協定(RTP,Reliable Transport Protocol) 是 EIGRP 的封包在傳送與接收時所使用的協定

EIGRP 是一個網路層的協定,但是不能使用 TCP 與UDP

因為 IPX 與 AppleTalk 不使用 TCT/IP 協定,因此 EIGRP 將 TCP 換成 RTP

但是在傳輸的過程中,RTP 有可靠與不可靠兩種封包

可靠的封包,是指發送端會需要接收端送回給發送端一個確認(Acknowledgement)的封包

不可靠的封包則是指發送端不需要確認封包

在運作的過程中,會使用224.0.0.10 的多播與單播



RTP 使用五種不同的封包,某些封包是成對出現的,下面針對不同封包進行說明:

(1)Hello 封包:

路由器使用 Hello 封包來發現鄰居以形成相鄰的關係,傳送時通常是採用多播的方式

當介面配置了 EIGRP 以後,路由器會週期性的以多播的方式向外發送 Hello 封包

當其他 EIGRP 的路由器接收到 Hello 封包以後也會送回一個 Hello 封包形成了鄰居關係

Hello 封包在不同的媒體上發送的間隔時間是不一樣的,分類如下:

1. 每 5 秒發送一次: 廣播型媒體,例如乙太網、Token Ring、FDDI)
點到點的串列鏈路中,例如 PPP、HDLC、Frame Relay、ATM
此類通常都是頻寬大於 1.5M的線路,因為頻寬較寬,允許較頻繁的發送 Hello 封包


2. 每 60 秒發送一次: 通常是頻寬小於 1.5M 的線路的多點線路
例如 ISDNBRI、某些 Frame Relay 及 ATM 。
容許等待某個鄰居路由器的 Hello 封包的時間稱為保存時間(Hold time)
保留時間一般是 Hello Time 的 3 倍
超過此時間未收到 Hello 封包,該鄰居路由器會被認為發生狀況已無法到達

(2)更新(Update)封包:

採用多播或單播(例如在點對點的鍊路)的方式發送
更新封包發生在路由器啟動時、拓撲或指標(Metric)發生變化時

(3)查詢(Query)封包:

當路由器要開始進行路徑計算需要路徑資訊時,或沒有可用的備用路徑時
就會以多播或單播的方式發送一個查詢封包給鄰居路由器,以詢問是否有到達目的地的可用路徑
並且等待所有鄰居路由器的回覆封包

(4)回覆(Reply)封包:

是以單播的方式回應給送出查詢封包的路由器。

(5)確認(Acknowledge,ACK) 封包:

確認封包是採用單播且是空的 Hello 封包
更新封包、查詢封包和回覆封包均是可靠的傳輸,所以它們都需要接收端的確認封包(ACK)
而 Hello 封包和確認封包就不需要確認封包

在下圖中以兩台路由器開機後 RTP 封包傳輸的過程進行說明:



1. 路由器 A 啟動,然後在鏈路上發送 Hello 封包。

2. 路由器 B 啟動,然後在鏈路上發送 Hello 封包。
路由器 B 接收到路由器 A 發來的 Hello 封包,於是送出更新封包給路由器 A
告訴路由器 A 它自己的所有路由表資訊,這時鄰居關係建立。

3. 接下來路由器 A 會發送 ACK 封包給路由器 B ,確認它已經收到了從路由器B 送來的更新封包


4. 路由器 A 收到更新封包,會更新自己的拓樸表
於是拓樸表中包括了所有從鄰居路由器得來的目的地資訊。

5. 路由器 A 發送完整的路徑資訊的更新封包給路由器 B 。

6. 路由器 B 收到路由器 A 發來的更新封包後,回覆 ACK 封包給路由器 A ,整個過程就完成。



DUAL

有限狀態機(FSM)擴散更新演算法(Diffusing Update Algorithm,DUAL) 是 EIGRP 使用的演算法
所有路徑計算與決定的過程是被 DUAL 的有限狀態機(Finite State Machine)完成的
有限狀態機簡單的說就是有限數量的狀態組合成的行為模型
事件的產生會讓狀態從一個轉移到另一個


宣傳距離(AD)與可用距離(FD)


假設有一條可以到達目的地網路的最佳路徑

則此條往目的地的路徑上第一個路由器(Next Hop)就是繼承者(Successor)

所有的路由器都依賴於繼承者(最佳路徑上的 Next Hop路由器)到達目的地網路

為了決定到達目的地的最佳繼承者路徑(Successor Route)和備用繼承者路徑(Feasible Successor Route)

EIGRP 使用下面兩個參數:

1.宣傳距離(AD,Advertised Distance):
是鄰居路由器到達目的地網路的指標值,又稱為報告距離(RD,Reported Distance)

2.可用距離(FD,Feasible Distance):目前路由器到達鄰居路由器的指標值加上宣傳距離
路由器會比較所有的可用距離,然後選擇可用距離的值最低者,將其放進 IP 路由表

|------------------------------可用距離-------------------------------|
|----------------宣傳距離------------------|
|----------------------------------------------|--------------------------|
目的地網路         鄰居路由器     目前的路由器

在上面顯示的是 C 路由器的 EIGRP 鄰居表、拓樸表及路由表

鄰居表裏面包含了路由器 A 和路由器 B 的資訊

在拓樸表中,路由器 A 和路由器 B 都知道如何到達網路 10.1.1.0/24

從拓樸表中也可看見路由器 A 到達目的地網路10.1.1.0/24 的宣傳距離是1000,可用距離是 2000

而路由器 B 的宣傳距離是1500,可用距離是 2500

這裡可用距離數值最低者會被挑選出來

所以路由器 A的資料項目會被放進路由表中成為到達網路 10.1.1.0/24 的最佳路徑

如果在拓樸表中一個目的地網路,有多個可用距離(FD)都是相同的最佳指標的路徑

那麼路由表中可以同時存放這多個相同最佳指標的路徑,預設可以存放 4個,最多可以存放 6 個

FS(feasible successor) 就是備用路徑,要選出備用路徑

則該路徑的宣傳距離(AD)必須比目前的最佳路徑的可用距離(FD)還要小

若最佳路徑失效,而且備用路徑存在,備用路徑將直接取代失效的最佳路徑,不需重新進行計算

EIGRP 的拓樸表可以存放多個備用路徑

若最佳路徑失效,備用路徑也不存在,那麼 EIGRP會重新計算出一個新的最佳路徑。

EIGRP 依靠鄰居路由器提供路徑資訊,如果路徑發生了問題,此路徑即進入Active 狀態

而且如果又沒有可用的備份路徑時,為了快速的收斂,EIGRP 路由器會向鄰居發送查詢(Query)封包

以尋找一條可以替代那條出了問題的路徑

查詢封包會被發送給所有的鄰居路由器,除了原先最佳路徑的那個介面

如果被查詢的路由器知道替代的路徑時,它就把這條替代路徑放進回覆(Reply)封包並送回發出Query的來源

如果收到查詢封包的路由器沒有替代路徑的資訊,它將繼續發送給它自己的其他鄰居

直到找到可以替代的路徑為止

EIGRP 使用可靠的多播來尋找替代的路由

路由器必須等到收到所有鄰居路由器的回覆封包,才能重新進行最佳繼承者路徑的計算

只要有一個路由器的回覆沒有收到,發出查詢封包的來源路由器就必須等待

預設如果在 3 分鐘內某些路由器沒有對查詢封包做出回覆,這條路徑就進入 stuck in active(SIA) 狀態

也就是一直處於 Active 的狀態,於是路由器將重新設定和這個沒有做出回覆的路由器的鄰居關係

----------------未完
 

回覆 使用道具 檢舉

全世界最先進的跳動筆

名望的英雄

KUSO四格畫家

指標 (Metric)

EIGRP 使用混合指標(Composite Metric),各數值如下:

1.頻寬(Bandwidth): 10 的7 次方除以來源和目標之間最低的頻寬乘256。
2.延遲(Delay): 介面的累積延遲乘以256, 單位是微秒(us)。

以上是預設會使用的兩個標準,下面是選擇性,預設是不使用:

3.可靠性(Reliability)。
4.負載(Loading)。

MTU 包含在 EIGRP 的路徑更新裏,但是實際上並沒有參與 EIGRP 指標的計算

某些書籍裏面敘述 MTU 參與計算是錯誤的。EIGRP 指標計算的公式如下,K 是常數:

Metric=[K1*bandwidth+(K2*bandwidth)/(256–load)+K3*delay]*[K5/(reliability+K4)]


很傷眼睛我知道

不過簡化以後就是Metric=Bandwidth+Delay...XD (被打

好吧,我們來看實例

下面是一個 EIGRP 指標的計算,K 值採用預設的數值,拓樸及資料如下圖:



假設要由 A 到 D ,由於指標公式是 Metric=Bandwidth+Delay

因此先注意各個路由器之間的鏈路頻寬,由 A 經過 B、C 到達 D 之間

因A-B 之間及B-C 之間均為 T1 線路,C-D 之間頻寬為64kbps,取其最低頻寬

故計算如下:

BandWidth =10000000/(64*256)=40000000,Delay=(2000+2000+2000)*256=1536000

所以指標=頻寬+延遲=41536000





負載平衡

負載平衡是指在到達一個目的地網路,有多條路徑可以使用,以分散路徑上的資料流量。

負載平衡使用了不同網段,等於也增加了傳送資料的頻寬

Cisco IOS預設允許 4 條路徑的負載平衡,最多可以支援 6 條路徑

EIGRP 除了支援等成本(指標總值)的負載平衡,也支援不相等指標的路徑負載平衡

使用的命令是variance n 命令, n 是一個數值,預設是 1,即代表等成本的負載平衡

n 值的範圍是 1 到 128 , 2 至 128 就代表了可以接受的不相等指標的倍數範圍

在這個範圍內的指標的路徑,都將被接受可以進行負載平衡。

如下圖的拓樸,使用了 EIGRP,各段的指標值假設如圖標示



現在要由 E 到A,各條路徑的指標總值分別是:

E-B-A 的 FD 為 30 ,E-C-A的 FD 為 20 ,E-D-A的 FD 為 45

因此,一定是 E-C-A 路徑會被選擇。如果管理者使用了variance 2

那麼就是將 E-C-A 的 FD 乘上 2 倍(即 40)做為負載平衡範圍

所以容許小於 40 的路徑做為負載平衡,圖中只有 E-B-A 小於 40

故 E-B-A會被選擇做為負載平衡路徑,因為與 E-C-A 的指標值是不相等的

我們稱為不相等指標的負載平衡,而 E-D-A 不會被選擇 (關係一定要是小於,不能等於或大於)



自治系統與程序 ID


自治系統(Autonomous System,AS)是在一個共同的繞送政策的管理控制下的網路集合

自治系統需要一個自治系統號碼,由 Internet Assigned NumbersAuthority (IANA) 組織指派

通常只有 ISP、網際網路骨幹提供者才會有需要 AS 號碼

因為這些單位要跟其他的 AS 進行封包交換

所以當設定 EIGRP時,會有類似如下的命令:

Router(config)# router eigrp 1

最後的 1 雖然會說是自治系統號碼,但是事實上它被拿來當作程序識別號碼(process ID) 來使用

在 EIGRP 與 OSPF 中都有使用程序識別號碼

這個號碼用來表示這個路由器上一個獨立的繞送協定程序

故在路由器上每個 EIGRP或 OSPF 協定都可以使用多個程序識別號碼,不過這不在 CCNA 的範圍

----------

理論部分到此結束,明天有EIGRP的實驗(部分指令模擬器無法使用)
 

回覆 使用道具 檢舉

你需要登入後才可以回覆 登入 | 註冊

存檔|手機版|聯絡我們|新聞提供|鐵之狂傲

GMT+8, 24-3-29 12:45 , Processed in 0.053761 second(s), 15 queries .

回頂部