簡介
本檔案介紹Cisco Systems設計並開發的內部閘道路由通訊協定(IGRP)套件路由通訊協定。本文檔必須用作技術介紹的純資訊文檔,並不代表協定規範或產品描述。
必要條件
需求
本文件沒有特定需求。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
慣例
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
什麼是IGRP?
IGRP用於TCP/IP和開放式系統互連(OSI)網際網路。原來的IP版本在1986年設計和部署成功。它被視為IGP,但也被廣泛用作域間路由的外部網關協定(EGP)。IGRP使用距離向量路由技術。其概念是每台路由器不需要知道整個網路的所有路由器/鏈路關係。每台路由器都以相應的距離通告目的地。每個聽到此資訊的路由器都會調整距離並將其傳播給鄰居路由器。
IGRP中的距離資訊以可用頻寬、延遲、負載利用率和鏈路可靠性的複合形式表示。這樣可以微調鏈路特性以獲得最佳路徑。
什麼是EIGRP?
EIGRP是IGRP的增強版本。EIGRP也使用與IGRP中相同的距離向量技術,且底層距離資訊保持不變。該協定的收斂特性和運行效率得到了顯著改善。這允許改進架構,同時保留對IGRP的現有投資。
融合技術基於SRI International的研究。擴散更新演算法(DUAL)是用於在路由計算過程中的每個時刻獲得循環自由度的演算法。這樣,拓撲中涉及的所有路由器都可以同時進行同步。不受拓撲變化影響的路由器不會參與重新計算。DUAL的收斂時間與任何其他現有路由協定的收斂時間相當。
EIGRP已擴展為獨立於網路層協定,從而允許DUAL支援其他協定簇。
EIGRP如何工作?
EIGRP有四個基本元件:
-
鄰居發現/恢復
-
可靠傳輸協定
-
DUAL有限狀態機
-
通訊協定相依模組
鄰居發現/恢復是路由器用於動態獲知其直連網路上其他路由器的過程。路由器還必須發現其鄰居何時不可達或無法運行。此過程透過定期傳送小型hello資料包以低開銷實現。只要收到hello資料包,路由器就可以確定鄰居是否處於活動狀態並正常運行。一旦確定這一點,相鄰路由器就可以交換路由資訊。
可靠傳輸負責將EIGRP資料包有保證有序地傳輸到所有鄰居。它支援組播或單播資料包的混合傳輸。某些EIGRP資料包必須可靠傳輸,而其它資料包則不需要。為了提高效率,僅在必要時才提供可靠性。例如,在具有組播功能的多路訪問網路(例如乙太網)上,沒有必要單獨向所有鄰居傳送可靠的hello資料包。因此,EIGRP傳送一個帶有資料包指示的組播hello,通知接收方不需要確認該資料包。其他型別的資料包(如更新)需要確認,資料包中會註明這一點。當存在未確認的資料包掛起時,可靠傳輸具有快速傳送組播資料包的設定。這有助於確保在存在不同速度的鏈路時,收斂時間保持較低。
DUAL有限狀態機體現了所有路由計算的決策過程。它會跟蹤所有鄰居通告的所有路由。距離資訊(稱為度量)由DUAL用於選擇有效的無環路徑。DUAL根據可行後繼路由選擇插入到路由表中的路由。後繼路由器是用於轉發資料包的相鄰路由器,它擁有到達目的裝置的最低開銷路徑,保證不會成為路由環路的一部分。如果沒有可行後繼路由器,但有鄰居通告目標,則必須進行重新計算。這是確定新後繼路由的過程。重新計算路由所需的時間會影響收斂時間。即使重新計算不是處理器密集型,如果不需要重新計算,避免重新計算也是有利的。當拓撲發生變化時,DUAL會測試可行後繼路由。如果有可行後繼路由器,它會使用任何找到的後繼路由器,以避免任何不必要的重新計算。本文檔稍後會更詳細地定義可行後繼路由器。
協定相關模組負責網路層、協定特定要求。例如,IP-EIGRP模組負責傳送和接收封裝在IP中的EIGRP資料包。IP-EIGRP負責解析EIGRP資料包,並將收到的新資訊通知DUAL。IP-EIGRP要求DUAL做出路由決策,其結果儲存在IP路由表中。IP-EIGRP負責重分發由其他IP路由協定獲取的路由。
EIGRP概念
本節介紹有關EIGRP實施的一些詳細資訊。討論了資料結構和DUAL概念。
鄰居表
每台路由器都儲存相鄰鄰居的狀態資訊。獲知新發現的鄰居時,會記錄鄰居的地址和介面。此資訊儲存在鄰居資料結構中。鄰居表儲存這些條目。每個協定相關模組都有一個鄰居表。當鄰居傳送hello時,它會通告HoldTime。HoldTime是路由器將鄰居視為可到達且運行正常的時間。換句話說,如果在HoldTime內未聽到hello資料包,則HoldTime將過期。當HoldTime到期時,DUAL會收到拓撲更改通知。
鄰居表條目還包括可靠傳輸機制所需的資訊。使用序列號將確認與資料包進行匹配。記錄從鄰居接收的最後一個序列號,以便檢測亂序資料包。傳輸清單用於基於每個鄰居對資料包進行排隊以便進行可能的重傳。在相鄰資料結構中保持往返計時器以估計最佳重傳間隔。
拓撲表
拓撲表由協定相關模組填充,並由DUAL有限狀態機執行。它包含鄰居路由器通告的所有目標。與每個條目相關聯的是目標地址和已通告該目標的鄰居清單。對於每個鄰居,記錄通告的度量。這是鄰居在其路由表中儲存的度量。如果鄰居通告此目標,它必須使用該路由轉發資料包。這是距離向量協定必須遵循的重要規則。
與目的地相關聯的是路由器用於到達目的地的度量。這是來自所有鄰居的最佳通告度量加上到最佳鄰居的鏈路開銷之和。這是路由器在路由表中使用的度量並通告給其它路由器。
可行後繼路由器
當存在可行後繼路由時,目標條目會從拓撲表移動到路由表。到目的地的所有最低成本路徑組成一個集合。從這個集合中,通告度量小於當前路由表度量的鄰居被視為可行後繼路由。
路由器將可行後繼路由視為與目的地相關的下游鄰居。這些鄰居和相關度量位於轉發表中。
當鄰居更改其通告的度量或網路中發生拓撲更改時,必須重新評估一組可行後繼路由。但是,這不會歸類為路由重新計算。
路由狀態
目的地的拓撲表條目有兩種狀態。當路由器未執行路由重新計算時,將路由視為「被動」狀態。當路由器正在進行路由重新計算時,該路由處於活動狀態。如果總是有可行後繼路由,則該路由無需進入Active狀態並避免路由重新計算。
當沒有可行後繼路由時,路由會進入Active狀態並進行路由重新計算。路由重新計算從路由器向所有鄰居傳送查詢資料包開始。鄰居路由器可以回覆(如果它們具有目的地的可行後繼路由器),也可以選擇返回表示它們正在執行路由重新計算的查詢。處於Active狀態時,路由器無法更改它用於轉發資料包的下一跳鄰居。收到給定查詢的所有回覆後,目標可以轉換為「被動」狀態,並可選擇新的後繼路由器。
當通向唯一可行後繼路由器的鄰居的鏈路斷開時,所有透過該鄰居的路由都將開始重新計算並進入活動狀態。
資料包格式
EIGRP使用五種資料包型別:
如前所述,Hello是鄰居發現/恢復的組播。它們不需要確認。沒有資料的Hello也用作確認(ack)。Ack始終使用單播地址傳送,並且包含非零確認號。
更新用於傳達目的地的可達性。當發現新鄰居時,會傳送更新資料包,以便鄰居可以建立其拓撲表。在這種情況下,更新資料包是單播的。在其它情況下,例如鏈路成本更改,更新是組播的。更新始終可靠傳輸。
當目的地進入作用中狀態時,會傳送查詢與回覆。查詢始終是組播的,除非它們響應收到的查詢而傳送。在本例中,單播返回發起查詢的後繼路由器。回覆始終用於響應查詢,以向發起方表明它無需進入活動狀態,因為它具有可行後繼路由。回覆單播至查詢的發起者。查詢和應答都能可靠地傳輸。
請求資料包用於從一個或多個鄰居獲取特定資訊。請求資料包用於路由伺服器應用程式。它們可以是組播或單播。無法可靠地傳輸請求。
路由標籤
EIGRP具有內部路由和外部路由的概念。內部路由是源自EIGRP自治系統(AS)的內部路由。因此,配置為運行EIGRP的直連網路被視為內部路由,並隨此資訊在EIGRP AS中傳播。外部路由是由其他路由協定獲知的,或者作為靜態路由駐留在路由表中。這些路由會單獨標籤其來源身份。
外部路由標籤有以下資訊:
-
重分配路由的EIGRP路由器的路由器ID。
-
目的地所在的AS編號。
-
可配置的管理員標籤。
-
外部協定的協定ID。
-
來自外部協定的度量。
-
預設路由的位標誌。
例如,假設有一個AS包含三個邊界路由器。邊界路由器是運行多個路由協定的路由器。AS使用EIGRP作為路由協定。假設兩台邊界路由器BR1和BR2使用開放最短路徑優先(OSPF),另一台BR3使用路由資訊協定(RIP)。
由其中一個OSPF邊界路由器BR1獲取的路由可以有條件地重分配到EIGRP中。這意味著在BR1中運行的EIGRP會通告自己的AS內的OSPF路由。執行此操作時,它會通告該路由並將其標籤為OSPF獲知的路由,度量與OSPF路由的路由表度量相等。router-id設定為BR1。EIGRP路由會傳播到其它邊界路由器。假設路由器BR3(RIP邊界路由器)也通告與BR1相同的目的地。因此,BR3將RIP路由重分發到EIGRP AS。因此,BR2有足夠的資訊來確定路由的AS入口點、使用的原始路由協定以及度量。此外,網路管理員可在重新分配路由時為特定目標分配標籤值。BR2可以使用任何此類資訊來使用該路由,或將它重新通告到OSPF中。
使用EIGRP路由標籤可為網路管理員提供靈活的策略控制並幫助自定義路由。路由標籤在傳輸AS中特別有用,EIGRP通常會與實施更多全局策略的域間路由協定互動。這組合起來可實現非常可擴展的基於策略的路由。
相容性模式
EIGRP提供與IGRP路由器的相容性和無縫互操作。這一點非常重要,因為這樣使用者才能利用這兩種協定的優勢。相容性功能不要求使用者有標誌天來啟用EIGRP。EIGRP可在戰略位置謹慎啟用,不會影響IGRP效能。
使用自動重分配機制,將IGRP路由導入EIGRP,反之亦然。由於兩個協定的度量可直接轉換,因此很容易進行比較,就好像它們是源自自己的AS的路由一樣。此外,IGRP路由在EIGRP中被視為外部路由,因此標籤功能可用於自定義調整。
預設情況下,IGRP路由的優先順序高於EIGRP路由。使用不需要重新啟動路由進程的配置命令可以更改此配置。
DUAL示例
此網路圖說明DUAL如何收斂。本示例僅側重於目標N。每個節點顯示其到N的成本(以跳為單位)。例如,C使用A到達N,開銷為2。
如果A和B之間的鏈路發生故障,B會傳送一個查詢,通知其鄰居它已丟失其可行後繼路由器。D接收查詢並確定它是否有其他可行後繼路由。如果沒有,則必須啟動路由計算並進入活動狀態。然而,在這種情況下,C是可行後繼路由器,因為其開銷(2)小於到達目的地N的D當前開銷(3)。D可以切換到C作為其後繼路由器。附註A和C未參與,因為它們未受變更影響。
現在,讓我們執行路由計算。在此場景中,我們假設A和C之間的鏈路發生故障。C確定它已失去其後繼路由器,並且沒有其他可行後繼路由器。D不被視為可行後繼路由器,因為其通告度量(3)大於到達目標N的C當前開銷(2)。C必須為目標N執行路由計算。C向唯一的鄰居D傳送查詢。D應答,因為其後繼路由器未更改。D不需要執行路由計算。當C收到回覆時,它知道所有鄰居都已處理有關失敗為N的消息。此時,C可以選擇新的可行後繼路由器D,其開銷為(4)以到達目標N。請注意,A和B不受拓撲更改的影響,而D只需回覆C。
常見問題
配置EIGRP是否與配置IGRP一樣簡單?
是的,您配置EIGRP的方式與配置IGRP一樣。配置路由進程並指定協定運行所在的網路。可以使用現有的組態檔。
我是否具有IGRP之類的調試功能?
是,這裡有同時向您通告協定正在進行什麼操作的協定獨立和協定從屬調試命令。有一套show命令可用於顯示鄰居表狀態、拓撲表狀態和EIGRP流量統計資訊。
IP-EIGRP中可用的功能是否與IP-IGRP中提供的功能相同?
EIGRP中提供了IGRP中使用的所有功能。一個需要指出的功能是多個路由過程。您可以使用同時運行IGRP和EIGRP的單個進程。您可以使用同時執行兩者的多個處理。您可以使用一個運行IGRP的進程以及另一個運行EIGRP的進程。你可以混搭。這有助於根據您的需求變化自定義路由到特定協定。
EIGRP使用多少頻寬和處理器資源?
頻寬利用率問題已透過實施部分更新和增量更新得到解決。因此,僅當拓撲發生變化時,才會傳送路由資訊。關於處理器利用率,可行後繼技術透過僅要求受拓撲變化影響的路由器執行路由重新計算,大大降低了AS的處理器總利用率。此外,只有受影響的路由才會重新計算路由。僅訪問和使用這些資料結構。這大大減少了複雜資料結構中的搜尋時間。
IP-EIGRP是否支援聚合和可變長子網掩碼?
是的。IP-EIGRP執行路由匯聚的方式與IGRP相同。也就是說,IP網路的子網不透過其他IP網路進行通告。子網路由彙總到單個網路號聚合中。此外,IP-EIGRP允許在IP地址的任何位邊界上進行聚合,並且可以在網路介面粒度下進行配置。
EIGRP是否支援區域?
不,單個EIGRP進程類似於鏈路狀態協定的區域。但是,在此過程中,可以在任何介面邊界過濾和聚合資訊。如果想要限制路由資訊的傳播,可以配置多個路由進程來實現一個層次結構。由於DUAL本身限制路由傳播,因此通常使用多個路由進程來定義組織邊界。
相關資訊