增強型內部網關路由協定(EIGRP)是一種基於擴散更新演算法(DUAL)的增強型距離向量協定。 它能夠根據鄰居的路由通告(保守地)找到到任何給定目的地的所有無環路徑。具有到達目的地的最佳路徑的鄰居(或多個鄰居)稱為後繼路由器。其餘具有到達目的地的無環路徑的鄰居稱為可行後繼路由器。為了減少網路上的流量負載,EIGRP維護鄰居關係並僅在需要時交換路由資訊,當到達目的地的所有無環路徑都發生故障時,使用查詢過程查詢備用路徑。
本文件沒有特定需求。
本檔案中的資訊是根據Cisco IOS®軟體版本12.0。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
具有有效後繼路由的路由稱為「被動」狀態。如果由於某種原因,路由器丟失了通過其後繼路由器的路由,並且沒有該路由的可行後繼路由器,那麼該路由將轉變為「活動」狀態。在活動狀態下,路由器向鄰居傳送查詢,請求通往丟失路由的路徑。
當EIGRP鄰居收到路由查詢時,其行為如下:
如果EIGRP拓撲表當前未包含路由條目,則路由器會立即使用無法到達消息回複查詢,指出該路由沒有通過此鄰居的路徑。
如果EIGRP拓撲表將查詢的路由器列為該路由的後繼路由器,並且存在可行後繼路由器,則會安裝可行後繼路由器,然後路由器立即回複查詢。
如果EIGRP拓撲表將正在查詢的路由器列為該路由的後繼路由器,而可行後繼路由器不存在,則路由器將查詢其所有EIGRP鄰居(從與其前繼路由器相同的介面發出的鄰居除外)。路由器在收到查詢路由器的回覆之前,不會回覆該查詢路由器。
如果收到的查詢來自不是該目標後繼路由的鄰居,則路由器會使用它的後繼路由資訊回覆。
DUAL-3-SIA錯誤消息指示EIGRP路由處於「停滯在活動狀態」(SIA)狀態。
SIA狀態表示EIGRP路由器在分配的時間內(大約3分鐘)沒有收到一個或多個鄰居對查詢的回覆。 發生這種情況時,EIGRP會清除未傳送回覆的鄰居,並為處於活動狀態的路由記錄DUAL-3-SIA錯誤消息。
以以下拓撲為例:
R2通過R1瞭解網路10.1.2.0/24。
R1和R2之間的鏈路斷開。R2丟失了10.1.2.0/24的後繼路由器(R1)。
R2檢查EIGRP拓撲表中是否存在可行後繼路由(另一個鄰居具有到達10.1.2.0/24的路由且滿足可行性條件);它沒有。
對於10.1.2.0/24,R2從被動轉換為主動。
R2向R3和R5傳送查詢,詢問它們是否有另一個通往10.1.2.0/24的路徑。SIA計時器啟動。
R5檢查EIGRP拓撲表中是否存在可行後繼路由;它沒有。
對於10.1.2.0/24,R5從被動轉換為主動。
R5會檢查其EIGRP鄰居表,並僅從面向R2的介面(其前後繼路由器10.1.2.0/24)找到EIGRP鄰居。
R5使用unreachable消息進行回覆,因為它沒有替代路徑,並且沒有其它鄰居可供查詢。
對於10.1.2.0/24,R5從主動轉換為被動。
R3檢查EIGRP拓撲表中是否存在可行後繼路由;它沒有。
對於10.1.2.0/24,R3從被動轉換為主動。
R3檢查其EIGRP鄰居表並找到R4。
R3向R4傳送網路10.1.2.0/24的查詢。SIA計時器啟動。
由於R3和R4之間的鏈路故障或擁塞,R4從未收到查詢。在R3上發出show ip eigrp neighbor命令或show ip eigrp topology active命令即可發現此問題;R4的隊列計數應高於正常值。
R2上的SIA計時器達到大約3分鐘。
在聽到R4的回覆之前,R3無法回覆R2的查詢。
R2記錄網路10.1.2.0/24的DUAL-3-SIA錯誤,並清除與R3的鄰居鄰接關係。
DEC 20 12:12:06: %DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 10.1.4.3 (Serial0) is down: stuck in active DEC 20 12:15:23: %DUAL-3-SIA: Route 10.1.2.0/24 stuck-in-active state in IP-EIGRP 1. Cleaning up
R3的R4重試計時器超時。
注意:此事件使R3無法同時報告DUAL-3-SIA錯誤,因為R3的SIA計時器可能也即將到達3分鐘。
R3清除與R4的相鄰關係。
R3將以下錯誤報告給其日誌:
DEC 20 12:12:01: %DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 10.1.5.4 (Serial1) is down: retry limit exceeded
R3現在使用一條無法到達的消息回覆R2的查詢。
R4將以下錯誤報告給其日誌:
DEC 20 12:12:06: %DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 10.1.5.3 (Serial0) is down: peer restarted
注意:只有在EIGRP進程下配置了eigrp log-neighbor-changes命令,才會顯示DUAL-5-NBRCHANGE消息。建議在所有EIGRP路由器上配置此命令以排除EIGRP SIA故障。如果沒有它,就無從得知為什麼要重置EIGRP鄰居或哪個路由器重置鄰接關係。
如上所示,DUAL-3-SIA錯誤是由以下同時但無關的問題引起的:
R1和R2之間的介面問題,導致10.1.2.0/24路由從R2消失。路由擺動可能是由實際鏈路故障以外的其它原因引起的(例如,遠端使用者斷開連線,然後刪除PPP派生的主機路由)。
R3和R4之間的介面、擁塞或延遲問題。
出現SIA錯誤消息時,表示EIGRP路由協定未能收斂到指定路由。通常,此故障是由擺動介面、配置更改或撥號客戶端(路由丟失是正常現象)造成的。 當指定路由的EIGRP進程處於活動狀態時,通往其他目標的路由不會受到影響。當未回覆的鄰居的SIA計時器到期時,鄰居將被清除(EIGRP不信任超過計時器的鄰居的狀態)。 因此,拓撲表中超出該鄰居的路由將被清除,然後必須重新收斂。這意味著轉發表可能受SIA影響,並且資料包可能會在網路收斂時丟棄。
本節提供排除SIA問題所必需的步驟,並提供SIA問題的常見原因。
儘管可以採用許多不同的方法來產生SIA,但應始終以相同的方式處理該問題。
無論何時排除SIA錯誤,您都應回答以下兩個問題(按緊急程度順序列出),以確定SIA的可能原因。
為什麼路由器沒有收到其所有鄰居的響應?
為什麼路線消失了?
注意:使用Cisco錯誤ID CSCdp33034(僅供註冊客戶使用)(在Cisco IOS軟體版本12.1(4.4)E中有效)時,已進行了以下增強功能以幫助解決SIA問題:
路由器會向SIA事件的源發出蹤跡。
檢測和糾正SIA事件被推送到故障鏈路。
使用以下命令收集更多詳細資訊以進行故障排除:
show ip eigrp neighbors from both end
顯示日誌 |雙重
show ip eigrp topology active
不幸的是,這個問題是SIA故障排除中最難的部分。由於預設情況下SIA計時器為3分鐘多一點,因此必須在此時間段內跟蹤無響應的路由器。為此,請確保您具有網路拓撲圖,其中包含網路中的所有路由器及其IP地址。您還應該擁有每台路由器的Telnet密碼。
有了此資訊,請轉至已報告SIA的路由器,並觀察該路由或其他路由是否啟用。您可以通過發出show ip eigrp topology active命令來確定路由器上哪些路由處於活動狀態。此命令列出一些活動路由是正常的。活動路由的存在本身並不表示存在問題;請特別注意活動時間超過一分鐘的路由。
R2# show ip eigrp topology active IP-EIGRP Topology Table for process 1 Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - Reply status A 10.1.2.0 255.255.255.0, 1 successors, FD is 2733056 1 replies, active 0:00:38, query-origin: Multiple Origins !--- The output above will appear on one line. via 10.1.4.3 (Infinity/Infinity), r, Serial0, serno 1232 via 10.1.6.5 (Infinity/Infinity), Serial1, serno 1227
上面的輸出顯示,EIGRP已啟用10.1.2.0/24達38秒,已查詢兩個鄰居,並且仍在等待來自10.1.4.3的回覆。小寫r表示路由器正在等待對查詢的回覆。大寫R表示它收到了來自此鄰居的回覆。根據您發出此命令時拓撲表的狀態,您還可以在名為「Remaining Replies」的單獨部分中看到鄰居。
一旦您確定哪台路由器的EIGRP正在等待響應,您就可以通過Telnet到該路由器來確定EIGRP正在等待的內容。此過程最終將導致實際路由器不響應查詢。一旦識別出此路由器,請排除它未響應查詢的原因。下面介紹了幾個常見原因。
Cisco IOS軟體版本10.3(11)、11.0(8)和11.1(3)增強了EIGRP。 其中一項增強功能可防止任何單個EIGRP進程使用該鏈路可用頻寬的50%以上;您可以調整該百分比,它可能在多點介面上不同。此增強功能使用步調,從而能夠在擁塞鏈路上更可靠地傳輸EIGRP資料包。有關資料包排程的詳細資訊,請參閱增強型內部網關路由協定白皮書。
如果沒有為介面或子介面正確配置bandwidth語句,EIGRP將無法正確設定EIGRP資料包的步調。串列介面的頻寬引數的預設值為T1或1500 kbps。對於T1以外的串列介面(包括分數或通道化T1介面),必須手動設定此引數以根據介面的時鐘速率反映正確的頻寬。切勿使用頻寬引數影響EIGRP路徑選擇。
在冗餘路徑的情況下,強制路由協定選擇一條路徑而不是另一條路徑的常見做法是修改介面上的頻寬引數。在一個介面上設定人為的低頻寬值,可防止路由通訊協定使用該介面的路徑。EIGRP應避免使用此方法,因為它也將此頻寬設定用於EIGRP資料包調步。要影響基於介面的EIGRP路徑選擇,請使用delay介面配置引數。
您應始終確保bandwidth引數設定為介面或子介面的實際可用頻寬。
路由環路也可能導致SIA錯誤。可以使用show ip eigrp topology active命令確定此問題。如果您看到未應答的EIGRP查詢的循環模式,請繼續將該問題作為路由環路問題進行故障排除。
--- R1 --- interface Ethernet0 ip address 10.1.1.1 255.255.255.0 ip address 10.2.1.1 255.255.255.0 secondary ! --- R2 --- interface Ethernet0 ip address 10.2.1.2 255.255.255.0 !
在上方示例中,R1收到來自R2的EIGRP hello資料包,並將R2顯示為EIGRP鄰居。但是,R2不將R1視為鄰居,因為R1的hello資料包來自10.1.1.1,而R2無法識別該子網。在更高版本的Cisco IOS軟體中,R2將返回neighbor not on common subnet error。此錯誤導致SIA,因為從R1傳送到R2的查詢永遠不會得到應答。要檢視R1是否持續清除R2作為鄰居,請使用show ip eigrp neighbor命令。
缺少系統資源(如CPU、記憶體或緩衝區)也會阻止路由器響應查詢或處理任何型別的資料包。要識別資源問題,請對受影響的路由器執行ping操作並排除故障,就像其它任何路由器資源問題一樣。
產生擺動路由的幾個常見原因將在下面說明。
擺動連結。
使用show interface命令查詢遞增的「interface resets」或「carrier transitions」計數器。
WAN鏈路降級。
使用show interface命令可查詢遞增的「input errors」或「output errors」計數器。
未配置為彙總由撥號PPP鏈路建立的主機路由的撥號伺服器(如Cisco AS5800)。
預設情況下,PPP連線會為PPP鏈路的遠端端安裝32位主機路由。如果這些路由沒有聚合,則當每個撥號使用者斷開連線時,EIGRP將變為活動狀態。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
10-Aug-2005 |
初始版本 |