鐵之狂傲

 取回密碼
 註冊
搜尋

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

[複製連結] 檢視: 9947|回覆: 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, 19-12-7 22:15 , Processed in 3.061789 second(s), 16 queries .

    回頂部