本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文說明如何解決最常見的增強型內部網關路由協定(EIGRP)問題。
本文件沒有特定需求。
本檔案中的資訊是根據Cisco IOS®說明此通訊協定可能會遇到的各種行為。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
以下是本文中使用的拓撲:
下一節將介紹一些最常見的EIGRP問題以及如何排除這些問題的提示。
使用EIGRP時遇到的唯一最常見問題是它無法正確建立鄰居關係。導致此問題的原因可能有幾個:
如果您沒有收到EIGRP Hello消息,則無法在鄰居清單中看到鄰居。輸入show ip eigrp neighbors命令以檢視EIGRP鄰居資訊並識別問題:
R2#show ip eigrp neighbors
IP-EIGRP neighbors for process 1
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
3 10.1.1.1 Et0/0 12 00:00:48 1 5000 1 0
2 10.1.1.3 Et0/0 12 02:47:13 22 200 0 339
1 10.2.1.4 Et1/0 12 02:47:13 24 200 0 318
0 10.2.1.3 Et1/0 12 02:47:13 20 200 0 338
如果您認為鄰居關係已形成,但您沒有必須從該鄰居學習的字首,請檢查前面的命令的輸出:如果Q-count始終為非零,則可能是相同EIGRP資料包持續重傳的指示。輸入show ip eigrp neighbors detail命令以驗證是否總是傳送相同資料包。如果第一個資料包的序列號始終相同,則會無限期地重新傳輸同一個資料包:
R2#show ip eigrp neighbors detail
IP-EIGRP neighbors for process 1
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
3 10.1.1.1 Et0/0 11 00:00:08 1 4500 1 0
Version 12.4/1.2, Retrans: 2, Retries: 2, Waiting for Init, Waiting for Init Ack
UPDATE seq 350 ser 0-0 Sent 8040 Init Sequenced
2 10.1.1.3 Et0/0 11 02:47:56 22 200 0 339
Version 12.4/1.2, Retrans: 11, Retries: 0, Prefixes: 10
1 10.2.1.4 Et1/0 10 02:47:56 24 200 0 318
Version 12.4/1.2, Retrans: 10, Retries: 0, Prefixes: 8
0 10.2.1.3 Et1/0 11 02:47:56 20 200 0 338
Version 12.4/1.2, Retrans: 11, Retries: 0, Prefixes: 2
在輸出中您可以看到第一個鄰居出現問題,並且Uptime已重置。
必須驗證進程路由器EIGRP是否具有eigrp log-neighbor-changes命令。但是,此命令係因思科錯誤 ID CSCdx67706 而依預設納入,所以在該案例中不會顯示於組態中。檢查日誌中鏈路兩端EIGRP鄰居的條目。至少在一個日誌中必須有一個有意義的條目。
以下是EIGRP鄰居關係更改及其日誌條目的所有可能原因:
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1 (Ethernet0/0) is down:
holding time expired
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1 (Ethernet0/0) is down:
retry limit exceeded
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.3.1.6 (Serial2/0) is down:
interface down
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1 (Ethernet0/0) is down:
peer restarted
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1 (Ethernet0/0) is up:
new adjacency
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 172.16.1.4 (Serial2/0) is down:
manually cleared
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 192.168.1.5 (Serial3/0) is down:
address changed
注意:這隻在較舊的代碼版本中發生。思科錯誤ID CSCdp08764後,沒有鄰居翻動。
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.3.1.6 (Serial2/0) is down:
metric changed
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.4.1.5 (Ethernet1/0) is down:
K-value mismatch
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1 (Ethernet0/0) is down:
Interface Goodbye received
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.3 (Ethernet0/0) is down:
authentication mode changed
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.2 (FastEthernet1) is resync:
peer graceful-restart
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 192.168.1.16 (Serial3/0) is down:
stuck in active
以下五個問題表示網路問題:
請參閱本檔案的SIA一節。
過期的保持計時器表示路由器在保持時間間隔內未收到任何EIGRP資料包(即EIGRP Hello或任何其他EIGRP資料包)。在這種情況下,連結上很可能出現問題。
檢查路由器是否在此鏈路上收到EIGRP Hello資料包,以及另一端是否傳送這些資料包。若要驗證這一點,請輸入debug eigrp packet hello命令。 作為使用debug命令的替代方法,您可以對IP地址224.0.0.10執行ping操作並驗證該鄰居是否響應。 鏈路上出現組播問題的可能原因是介面問題,例如中間交換機阻止EIGRP Hello資料包。
您可以執行的另一項快速測試是嘗試使用另一個組播IP地址的其他協定。例如,您可以配置使用組播IP地址224.0.0.9的路由資訊協定(RIP)第2版。
超出重試限制表明EIGRP可靠資料包未多次確認。EIGRP可靠資料包是以下五種型別的資料包之一:
可靠的EIGRP資料包至少重新傳輸了16次。每次重新傳輸逾時(RTO)都會重新傳輸封包。最小RTO為200 ms,最大RTO為5,000 ms。通過觀察可靠EIGRP資料包傳送時間與收到確認時間之間的時間差,RTO動態地增加或減少。當可靠資料包未確認時,RTO增加。如果此情況持續出現,則RTO將快速增加最多五秒,因此重試限制可以達到16 x 5秒= 80秒。但是,如果EIGRP保持時間大於80秒,則鄰居在保持時間到期前不會關閉。慢速WAN鏈路上可能會發生這種情況,例如,預設保持時間為180秒。
對於保持時間低於80秒的鏈路,這實際上意味著,如果保持時間未過期,EIGRP Hello資料包會保持該時間。然後可以超過重試限制。這表示存在MTU問題或單點傳播問題。EIGRP Hello資料包較小;(第一個)EIGRP更新資料包最多可以是完整的MTU。如果有足夠的字首來填充更新,則它可以是完整的MTU大小。可以通過接收EIGRP Hello資料包來獲知鄰居,但是如果未確認EIGRP更新資料包,則無法成功實現完全鄰接。
通常情況下,顯示的輸出如下:
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1 (Ethernet0/0) is down:
retry limit exceeded
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1 (Ethernet0/0) is up:
new adjacency
註:自Cisco錯誤ID CSCsc72090起,EIGRP還使用介面的IP MTU設定。在應用此修復之前,如果為IP MTU配置的值低於1500,則EIGRP資料包將分段。此問題通常會在動態多點VPN(DMVPN)網路中發生。
第二種可能性是EIGRP Hello資料包之所以會到達,是因為它們被組播到IP地址224.0.0.10。某些EIGRP更新資料包可以到達,因為它們可以是組播資料包。但是,重新傳輸的EIGRP可靠資料包始終是單播。如果到鄰居的單點傳播資料路徑中斷,則重新傳輸的可靠封包無法正確處理。Ping EIGRP鄰居單播IP地址(將ping的大小設定為鏈路的完整MTU大小,並設定Do Not Fragment位(DF位))以進行驗證。
單向連結也會導致此問題。EIGRP路由器可以接收EIGRP Hello資料包,但是從該鄰居傳送的資料包無法通過該鏈路。如果Hello資料包沒有到達,路由器不會察覺,因為Hello資料包無法可靠地傳送。無法確認傳送的EIGRP更新資料包。
EIGRP可靠資料包或確認可能會損壞。快速測試是在啟用了回複驗證的情況下傳送ping:
R1#ping
Protocol [ip]:
Target IP address: 10.1.1.2
Repeat count [5]: 10
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface:
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]: yes
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds:
Reply datawill
be validated
!!!!!!!!!!
Success rate is 100 percent (10/10), round-trip min/avg/max = 1/24/152 ms
啟用debug eigrp packets 命令以至少驗證EIGRP Hello資料包和EIGRP更新資料包的傳送和接收:
R1#debug eigrp packets ?
SIAquery EIGRP SIA-Query packets
SIAreply EIGRP SIA-Reply packets
ack EIGRP ack packets
hello EIGRP hello packets
ipxsap EIGRP ipxsap packets
probe EIGRP probe packets
query EIGRP query packets
reply EIGRP reply packets
request EIGRP request packets
retry EIGRP retransmissions
stub EIGRP stub packets
terse Display all EIGRP packets except Hellos
update EIGRP update packets
verbose Display all EIGRP packets
以下是超出重試限制問題的典型範例:
R2#show ip eigrp neighbors
IP-EIGRP neighbors for process 1
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
3 10.1.1.1 Et0/0 12 00:00:48 1 5000 1 0
2 10.1.1.3 Et0/0 12 02:47:13 22 200 0 339
1 10.2.1.4 Et1/0 12 02:47:13 24 200 0 318
0 10.2.1.3 Et1/0 12 02:47:13 20 200 0 338
註:隊列中始終有一個或多個資料包(Q Cnt)。
R2#show ip eigrp neighbors detail
IP-EIGRP neighbors for process 1
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
3 10.1.1.1 Et0/0 10 00:00:59 1 5000 1 0
Version 12.4/1.2, Retrans: 12, Retries: 12, Waiting for Init, Waiting for Init Ack
UPDATE seq 349 ser 0-0 Sent 59472 Init Sequenced
2 10.1.1.3 Et0/0 11 02:47:23 22 200 0 339
Version 12.4/1.2, Retrans: 11, Retries: 0, Prefixes: 10
1 10.2.1.4 Et1/0 11 02:47:23 24 200 0 318
Version 12.4/1.2, Retrans: 10, Retries: 0, Prefixes: 8
0 10.2.1.3 Et1/0 10 02:47:23 20 200 0 338
Version 12.4/1.2, Retrans: 11, Retries: 0, Prefixes: 2
如輸出所示,R2等待第一個更新資料包(init bit
set
)來自IP地址為10.1.1.1的鄰居。
在下一個輸出中,R2等待第一個更新資料包(init bit
set
)來自IP地址為10.1.1.1的鄰居。
註:RTO最大值為5,000 ms,這表示在五秒內未確認EIGRP可靠資料包。
R2#show ip eigrp neighbors detail
IP-EIGRP neighbors for process 1
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
3 10.1.1.1 Et0/0 11 00:01:17 1 5000 1 0
Version 12.4/1.2, Retrans: 16, Retries: 16, Waiting for Init, Waiting for Init Ack
UPDATE seq 349 ser 0-0 Sent 77844 Init Sequenced
2 10.1.1.3 Et0/0 12 02:47:42 22 200 0 339
Version 12.4/1.2, Retrans: 11, Retries: 0, Prefixes: 10
1 10.2.1.4 Et1/0 10 02:47:42 24 200 0 318
Version 12.4/1.2, Retrans: 10, Retries: 0, Prefixes: 8
0 10.2.1.3 Et1/0 11 02:47:42 20 200 0 338
Version 12.4/1.2, Retrans: 11, Retries: 0, Prefixes: 2
重新傳輸的數量穩步上升。隊列中的資料包始終相同(seq 349)。在R2將同一資料包傳送16次後,鄰居關係斷開:
R2#
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1 (Ethernet0/0) is down:
retry limit exceeded
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1 (Ethernet0/0) is up:
new adjacency
該過程再次開始:
R2#show ip eigrp neighbors detail
IP-EIGRP neighbors for process 1
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
3 10.1.1.1 Et0/0 11 00:00:08 1 4500 1 0
Version 12.4/1.2, Retrans: 2, Retries: 2, Waiting for Init, Waiting for Init Ack
UPDATE seq 350 ser 0-0 Sent 8040 Init Sequenced
2 10.1.1.3 Et0/0 11 02:47:56 22 200 0 339
Version 12.4/1.2, Retrans: 11, Retries: 0, Prefixes: 10
1 10.2.1.4 Et1/0 10 02:47:56 24 200 0 318
Version 12.4/1.2, Retrans: 10, Retries: 0, Prefixes: 8
0 10.2.1.3 Et1/0 11 02:47:56 20 200 0 338
Version 12.4/1.2, Retrans: 11, Retries: 0, Prefixes: 2
debug eigrp packets terse命令的輸出顯示R2反複傳送同一資料包:
註:重試值增加,Flags值為0x1,並設定Init位。
R2#debug eigrp packets terse
EIGRP Packets debugging is on
(UPDATE, REQUEST, QUERY, REPLY, IPXSAP, PROBE, ACK, STUB, SIAQUERY, SIAREPLY)
R2#
EIGRP: Sending UPDATE on Ethernet0/0 nbr 10.1.1.1, retry 14, RTO 5000
AS 1, Flags 0x1, Seq 350/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/1
EIGRP: Sending UPDATE on Ethernet0/0 nbr 10.1.1.1, retry 15, RTO 5000
AS 1, Flags 0x1, Seq 350/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/1
保持時間不會過期,因為正確傳送和接收Hello資料包:
R2#debug eigrp packets hello
EIGRP Packets debugging is on
(HELLO)
EIGRP: Received HELLO on Ethernet0/0 nbr 10.1.1.1
AS 1, Flags 0x0, Seq 0/0 idbQ 0/0
如果您觀察到對等體在一台路由器上重複重新啟動,則表示路由器收到來自其鄰居的初始更新資料包。請注意所接收的Update資料包中的Flag 1。
R2#debug eigrp packets terse
EIGRP Packets debugging is on
(UPDATE, REQUEST, QUERY, REPLY, IPXSAP, PROBE, ACK, STUB, SIAQUERY, SIAREPLY)
R2#
EIGRP: Received Sequence TLV from 10.1.1.1
10.1.1.2
address matched
clearing CR-mode
EIGRP: Received CR sequence TLV from 10.1.1.1, sequence 479
EIGRP: Received UPDATE on Ethernet0/0 nbr 10.1.1.1
AS 1, Flags 0xA, Seq 479/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0,
not in CR-mode, packet discarded
EIGRP: Received UPDATE on Ethernet0/0 nbr 10.1.1.1
AS 1, Flags 0x1, Seq 478/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1 (Ethernet0/0) is down:
peer restarted
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1 (Ethernet0/0) is up:
new adjacency
EIGRP: Enqueueing UPDATE on Ethernet0/0 nbr 10.1.1.1 iidbQ un/rely 0/1
peerQ un/rely 0/0
以下範例顯示在Hello封包之前收到初始更新封包:
EIGRP: Received UPDATE on Ethernet0/0 nbr 10.1.1.2
AS 1, Flags 0x1, Seq 3/0 idbQ 0/0
EIGRP: Neighbor(10.1.1.2) not yet found
如果在鄰居翻動後發生這種情況,則此情況不是問題。但是,如果您經常遇到這種情況,則表明鏈路上的單播已正常運行,但鏈路上的組播已損壞。換句話說,路由器會收到單播更新資料包,但不會收到Hello資料包。
其他一些型別的問題包括:
這些問題將在後續章節中詳細介紹。
註:如果改為配置否定(no命令),本節中使用的命令結果將相同相同。
在介面上設定summary陳述式(或auto-summary)時,會在路由器上看到以下訊息:
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.3 (Ethernet0/0) is resync:
summary configured
以下示例顯示了EIGRP進程的global distribute-list配置:
R1(config-router)#distribute-list 1 out
R1(config-router)#
在路由器上觀察到以下訊息:
註:在中配置distribute-list <>時也會發生相同情況。
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.3 (Ethernet0/0) is resync:
route configuration changed
當您為EIGRP進程配置interface distribute-list時,所有EIGRP鄰居都會關閉:
R1(config-router)#distribute-list 1 out ethernet 0/0
在這種情況下,僅重置該介面上的EIGRP鄰居關係。
注意:在Cisco錯誤ID CSCdy20284之後,鄰居關係不會因手動更改(例如彙總和過濾器)而重置。
身份驗證可能配置錯誤或丟失。這可能導致EIGRP鄰居因超過重試限制而關閉。啟用debug eigrp packets 命令,以確認是消息摘要5(MD5)身份驗證導致問題:
R1#debug eigrp packets
EIGRP Packets debugging is on
(UPDATE, REQUEST, QUERY, REPLY, HELLO, IPXSAP, PROBE, ACK, STUB, SIAQUERY,
SIAREPLY)
EIGRP: Ethernet0/0: ignored packet from 10.1.1.3, opcode = 1 (missing
authentication or key-chain missing)
EIGRP從主IP地址發出Hello資料包和所有其他資料包。如果來源IP位址位於介面上的主要IP位址範圍或某個輔助IP位址範圍中,則從另一個路由器接受封包。如果沒有,則會出現以下錯誤消息(當eigrp log-neighbor-warnings啟用時):
IP-EIGRP(Default-IP-Routing-Table:1): Neighbor 10.1.1.2 not on common subnet
for Ethernet0/0
檢查DMVPN網路中的IPSec問題。如果加密不乾淨,IPSec可能導致EIGRP翻動:
show crypto ipsec sa
protected vrf:
local ident (addr/mask/prot/port): (10.10.110.1/255.255.255.255/47/0)
remote ident (addr/mask/prot/port): (10.10.101.1/255.255.255.255/47/0)
current_peer: 144.23.252.1:500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 190840467, #pkts encrypt: 190840467, #pkts digest 190840467
#pkts decaps: 158102457, #pkts decrypt: 158102457, #pkts verify 158102457
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 5523, #recv errors 42
EIGRP資料包報頭中有一個32位Flags欄位,瞭解各種Flags值的指示很有用。
EIGRP: Received UPDATE on Ethernet0/0 nbr 10.1.1.1
AS 1, Flags 0x1, Seq 478/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
EIGRP: Received UPDATE on Ethernet0/0 nbr 10.1.1.2
AS 1, Flags 0x2, Seq 21/0 idbQ 1/0 iidbQ un/rely 0/0 peerQ un/rely 0/1,
not in CR-mode, packet discarded
EIGRP: Received HELLO on Ethernet0/0 nbr 10.1.1.2
AS 1, Flags 0x4, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
EIGRP: Received UPDATE on Ethernet0/0 nbr 10.1.1.2
AS 1, Flags 0x8, Seq 4/33 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/1
EIGRP: NSF: AS1. Receive EOT from 10.1.1.2
標誌以一個HEX編號列印。因此,標誌0x5表示已設定標誌4和1;標誌0x9表示已設定標誌8和1;標誌0xA表示已設定標誌8和2。
您可以使用以下命令對抖動鄰居進行疑難排解:
本節概述了SIA狀態、一些可能的症狀和原因以及如何對其進行故障排除。
SIA狀態表示EIGRP路由器在分配的時間(大約三分鐘)內沒有收到一個或多個鄰居對查詢的回覆。發生這種情況時,EIGRP會清除不傳送回覆的鄰居,並為進入活動狀態的路由記錄DUAL-3-SIA錯誤消息。
在一台或多台路由器上可以看到以下消息:
%DUAL-3-SIA: Route 10.100.1.1/32 stuck-in-active state in IP-EIGRP(0) 1. Cleaning up
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 192.168.1.6 (Serial3/0) is down:
stuck in active
如果這種情況只偶爾發生,則可以忽略。如果經常發生,則表明存在持續性的網路問題。
以下是SIA狀態的可能原因:
發生SIA情況時,網路中的某處存在問題。確切的原因可能很難發現。有兩種方法:
確定報告SIA的所有字首是否具有共同性。例如,它們都可以是/32路由,它們都來自網路邊緣(例如撥號網路中)。如果是,則指示問題在網路中的位置(即,這些字首源自何處)。
最終,您必須發現一個或多個路由器傳送查詢但不接收回覆的位置,而下游路由器未處於此狀態。例如,路由器可能傳送查詢,並且這些查詢已確認,但是未收到來自下游路由器的回覆。
您可以使用show ip eigrp topology active命令幫助排除SIA故障。在命令輸出中尋找小的r。這表示路由器正在等待該鄰居對該字首查詢的回覆。
以下提供範例。檢視拓撲。鏈路R1-R6和R1-R5關閉。當路由器R1的環回介面關閉時,R1會向R2和R3傳送字首10.100.1.1/32的查詢。路由器R1現在對於此字首處於活動狀態。路由器R2和R3變為活動狀態並依次查詢路由器R4,路由器R4變為活動狀態並向R5傳送查詢。路由器R5最終變為活動狀態並向R6傳送查詢。路由器R6必須向R5返回應答。路由器R5變為被動並回覆R4,R4又變為被動並向R2和R3傳送回覆。最後,R2和R3轉為被動並向R1傳送應答,R1再次轉為被動狀態。
如果遇到問題,路由器可以長時間保持活動狀態,因為它必須等待回覆。為了防止路由器等待永遠無法接收的應答,路由器可以宣告SIA並終止等待應答的鄰居關係。為了排除故障,請檢視show ip eigrp topology active命令輸出並遵循r的指示。
路由器R1的輸出如下:
R1#show ip eigrp topology active
IP-EIGRP Topology Table for AS 1)/ID(10.100.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
A 10.100.1.1/32, 1 successors, FD is Inaccessible
1 replies, active 00:01:11, query-origin: Local origin
via Connected (Infinity/Infinity), Loopback0
Remaining replies:
via 10.1.1.2, r, Ethernet0/0
路由器R1處於活動狀態,正在等待R2的回覆。路由器R2的輸出如下:
R2#show ip eigrp topology active
IP-EIGRP Topology Table for AS(1)/ID(10.100.1.2)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
A 10.100.1.1/32, 1 successors, FD is Inaccessible
1 replies, active 00:01:01, query-origin: Successor Origin
via 10.1.1.1 (Infinity/Infinity), Ethernet0/0
via 10.2.1.4 (Infinity/Infinity), r, Ethernet1/0, serno 524
via 10.2.1.3 (Infinity/Infinity), Ethernet1/0, serno 523
路由器R2處於活動狀態,正在等待R4的回覆。路由器R4的輸出如下:
R4#show ip eigrp topology active
IP-EIGRP Topology Table for AS(1)/ID(10.100.1.4)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
A 10.100.1.1/32, 1 successors, FD is Inaccessible
1 replies, active 00:00:56, query-origin: Successor Origin
via 10.2.1.2 (Infinity/Infinity), Ethernet1/0
via 172.16.1.5 (Infinity/Infinity), r, Serial2/0, serno 562
via 10.2.1.3 (Infinity/Infinity), Ethernet1/0, serno 560
路由器R4處於活動狀態,正在等待R5回覆。路由器R5的輸出如下:
R5#show ip eigrp topology active
IP-EIGRP Topology Table for AS(1)/ID(172.16.1.5)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
A 10.100.1.1/32, 1 successors, FD is Inaccessible, Q
1 replies, active 00:00:53, query-origin: Successor Origin
via 172.16.1.4 (Infinity/Infinity), Serial2/0
Remaining replies:
via 192.168.1.6, r, Serial3/0
路由器R5處於活動狀態,正在等待R6的回覆。路由器R6的輸出如下:
R6#show ip eigrp topology active
IP-EIGRP Topology Table for AS(1)/ID(192.168.1.6)
R6#
如圖所示,路由器R6的字首沒有處於活動狀態,因此問題必須發生在路由器R5和R6之間。一段時間後,我們看到R5終止了與R6的鄰居關係,並宣佈為SIA狀態:
R5#
%DUAL-3-SIA: Route 10.100.1.1/32 stuck-in-active state in IP-EIGRP(0) 1.
Cleaning up
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 192.168.1.6 (Serial3/0) is down:
stuck in active
當您檢視路由器R5的輸出時,可以看到通向R6的鏈路出現問題。
這是新的SIA代碼,因此,SIA發生在問題旁邊的路由器上。在本示例中,這是路由器R5和R6之間的鏈路。在較早的代碼版本中,可以在路徑上的任何路由器(例如R2)上宣告SIA,該路徑可以遠離問題。SIA定時器是3分鐘。路徑上的任何路由器都可能是第一個到達SIA並終止鄰居關係的路由器。使用較新的代碼時,路由器等待應答,中間向其鄰居傳送SIA查詢,鄰居立即使用SIA應答進行應答。例如,當處於活動狀態時,路由器R4向R5傳送一個SIA查詢,R5使用SIA回覆回覆。
R5#
EIGRP: Received SIAQUERY on Serial2/0 nbr 172.16.1.4
AS 1, Flags 0x0, Seq 456/447 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
EIGRP: Enqueueing SIAREPLY on Serial2/0 nbr 172.16.1.4 iidbQ un/rely 0/1
peerQ un/rely 0/0 serno 374-374
EIGRP: Sending SIAREPLY on Serial2/0 nbr 172.16.1.4
AS 1, Flags 0x0, Seq 448/456 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/1
serno 374-374
路由器R5也會向R6傳送SIA查詢,但它不會收到來自R6的SIA應答。
R5#
EIGRP: Enqueueing SIAQUERY on Serial3/0 nbr 192.168.1.6 iidbQ un/rely 0/2
peerQ un/rely 5/0 serno 60-60
一旦路由器傳送了SIA查詢但沒有收到SIA回覆,便會對該鄰居顯示s:
R5#show ip eigrp topology active
IP-EIGRP Topology Table for AS(1)/ID(172.16.1.5)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
A 10.100.1.1/32, 1 successors, FD is Inaccessible, Qqr
1 replies, active 00:02:36, query-origin: Successor Origin, retries(1)
via 1172.16.1.4 (Infinity/Infinity), Serial2/0, serno 61
via 192.168.1.6 (Infinity/Infinity), rs, q, Serial3/0, serno 60, anchored
使用新的SIA代碼時,當路由器R5未收到SIA回覆時,必須在路由器上宣告SIA。然後必須啟用這兩個EIGRP SIA資料包的調試:
R2#debug eigrp packets SIAquery SIAreply
EIGRP Packets debugging is on
(SIAQUERY, SIAREPLY)
R2#show debug
EIGRP:
EIGRP Packets debugging is on
(SIAQUERY, SIAREPLY)
總而言之,您可以使用以下命令來排除SIA問題:
以下是SIA問題的一些可能的解決方案:
有兩類缺少的字首:路由表中缺少的字首(或路由資訊庫[RIB])和拓撲表中缺少的字首。
在RIB中未包含首碼可能有幾個原因:
在本例中,字首通過靜態路由或管理距離較小的路由協定安裝到路由表中。
通常發生這種情況時,字首出現在拓撲表中,但沒有後繼路由。您可以使用show ip eigrp topology zero-successors命令檢視所有這些條目。可行距離(FD)必須具有無窮大的值。
輸入show ip route <prefix>命令,並在RIB中驗證擁有該路由的路由協定:
R1#show ip eigrp topology 192.168.100.6 255.255.255.255
IP-EIGRP (AS 1): Topology entry for 192.168.100.6/32
State is Passive, Query origin flag is 1, 0 Successor(s), FD is 4294967295
Routing Descriptor Blocks:
10.3.1.6 (Serial2/0), from 10.3.1.6, Send flag is 0x0
Composite metric is (2297856/128256), Route is Internal
Vector metric:
Minimum bandwidth is 1544 Kbit
Total delay is 25000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 1
R1#show ip eigrp topology zero-successors
IP-EIGRP Topology Table for AS(1)/ID(10.100.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 192.168.1.0/24, 0 successors, FD is Inaccessible
via 10.3.1.6 (2681856/2169856), Serial2/0
P 192.168.100.6/32, 0 successors, FD is Inaccessible
via 10.3.1.6 (2297856/128256), Serial2/0
EIGRP是一種距離向量路由協定。您可以在任何路由器上使用distribute-list來阻止字首。您可以在介面上使用它來停止字首傳輸或接收,也可以在路由器EIGRP進程下全域性配置distribute-list,以便在所有啟用EIGRP的介面上應用路由過濾器。
以下是範例:
R1#show running-config | begin router eigrp
router eigrp 1
network 10.0.0.0
distribute-list 1 in
no auto-summary
!
access-list 1 deny 192.168.100.6
access-list 1 permit any
本節介紹拓撲表中可能缺少字首的一些原因。
不要犯通常的錯誤;當您在拓撲表中驗證字首時,請始終指定掩碼。如果不使用遮罩會發生這種情況:
R1#show ip eigrp topology 192.168.100.6
% IP-EIGRP (AS 1): Route not in topology table
以下是指定遮罩時show ip eigrp topology命令的輸出:
R1#show ip eigrp topology 192.168.100.6 255.255.255.255
IP-EIGRP (AS 1): Topology entry for 192.168.100.6/32
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2297856
Routing Descriptor Blocks:
10.3.1.6 (Serial2/0), from 10.3.1.6, Send flag is 0x0
Composite metric is (2297856/128256), Route is Internal
Vector metric:
Minimum bandwidth is 1544 Kbit
Total delay is 25000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 1
10.4.1.5 (Ethernet1/0), from 10.4.1.5, Send flag is 0x
Composite metric is (2323456/2297856), Route is Internal
Vector metric:
Minimum bandwidth is 1544 Kbit
Total delay is 26000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
如圖所示,字首出現在拓撲表中。
本節介紹另一個常見錯誤。EIGRP不是鏈路狀態路由協定,而是距離向量路由協定。拓撲表必須用於擴散更新演算法(DUAL)的正確操作,而不是因為EIGRP是鏈路狀態路由協定;因此,它需要資料庫。拓撲表是必需的,因為路由表中只安裝了最佳路由,而DUAL要求同時監控可行路由。這些儲存在拓撲表中。
拓撲表中必須始終包含後繼路由和可行路由。如果沒有,則存在錯誤。但是,拓撲表中也可能存在不可行的路由,只要它們被接收。如果沒有從鄰居收到這些字首,可能會出現水準分割以阻止字首。
show ip eigrp topology命令的輸出僅顯示指向後繼路由器和可行後繼路由器的字首條目。如果要檢視在所有路徑(也是不可行路徑)上收到的字首,請改為輸入show ip eigrp topology all-links命令。
以下是範例:
R1#show ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(10.100.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 10.3.1.0/24, 1 successors, FD is 2169856
via Connected, Serial2/0
P 10.2.1.0/24, 2 successors, FD is 307200
via 10.1.1.2 (307200/281600), Ethernet0/0
via 10.1.1.3 (307200/281600), Ethernet0/0
P 10.1.1.0/24, 1 successors, FD is 281600
via Connected, Ethernet0/0
P 172.16.1.0/24, 1 successors, FD is 2195456
via 10.4.1.5 (2195456/2169856), Ethernet1/0
P 192.168.1.0/24, 1 successors, FD is 2195456
via 10.4.1.5 (2195456/2169856), Ethernet1/0
via 10.3.1.6 (2681856/2169856), Serial2/0
P 10.4.1.0/24, 1 successors, FD is 281600
via Connected, Ethernet1/0
P 172.16.100.5/32, 1 successors, FD is 409600
via 10.4.1.5 (409600/128256), Ethernet1/0
P 10.100.1.4/32, 2 successors, FD is 435200
via 10.1.1.2 (435200/409600), Ethernet0/0
via 10.1.1.3 (435200/409600), Ethernet0/0
P 10.100.1.3/32, 1 successors, FD is 409600
via 10.1.1.3 (409600/128256), Ethernet0/0
P 10.100.1.2/32, 1 successors, FD is 409600
via 10.1.1.2 (409600/128256), Ethernet0/0
P 10.100.1.1/32, 1 successors, FD is 128256
via Connected, Loopback0
P 192.168.100.6/32, 1 successors, FD is 2297856
via 10.3.1.6 (2297856/128256), Serial2/0
在此輸出中,您可以看到命令的all-links部分包含更多路徑:
R1#show ip eigrp topology all-links
IP-EIGRP Topology Table for AS(1)/ID(10.100.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 10.3.1.0/24, 1 successors, FD is 2169856, serno 43
via Connected, Serial2/0
P 10.2.1.0/24, 2 successors, FD is 307200, serno 127
via 10.1.1.2 (307200/281600), Ethernet0/0
via 10.1.1.3 (307200/281600), Ethernet0/0
P 10.1.1.0/24, 1 successors, FD is 281600, serno 80
via Connected, Ethernet0/0
P 172.16.1.0/24, 1 successors, FD is 2195456, serno 116
via 10.4.1.5 (2195456/2169856), Ethernet1/0
via 10.3.1.6 (3193856/2681856), Serial2/0
via 10.1.1.2 (2221056/2195456), Ethernet0/0
via 10.1.1.3 (2221056/2195456), Ethernet0/0
P 192.168.1.0/24, 1 successors, FD is 2195456, serno 118
via 10.4.1.5 (2195456/2169856), Ethernet1/0
via 10.3.1.6 (2681856/2169856), Serial2/0
P 10.4.1.0/24, 1 successors, FD is 281600, serno 70
via Connected, Ethernet1/0
P 172.16.100.5/32, 1 successors, FD is 409600, serno 117
via 10.4.1.5 (409600/128256), Ethernet1/0
via 10.3.1.6 (2809856/2297856), Serial2/0
P 10.100.1.4/32, 2 successors, FD is 435200, serno 128
via 10.1.1.2 (435200/409600), Ethernet0/0
via 10.1.1.3 (435200/409600), Ethernet0/0
P 10.100.1.3/32, 1 successors, FD is 409600, serno 115
via 10.1.1.3 (409600/128256), Ethernet0/0
P 10.100.1.2/32, 1 successors, FD is 409600, serno 109
via 10.1.1.2 (409600/128256), Ethernet0/0
P 10.100.1.1/32, 1 successors, FD is 128256, serno 4
via Connected, Loopback0
P 192.168.100.6/32, 1 successors, FD is 2297856, serno 135
via 10.3.1.6 (2297856/128256), Serial2/0
via 10.4.1.5 (2323456/2297856), Ethernet1/0
考慮上一個輸出中的最後一個首碼;通過10.4.1.5的路徑有(2323456/2297856)。報告距離(通告度量)為2297856,不小於2297856的FD,因此路徑不可行。
P 192.168.100.6/32, 1 successors, FD is 2297856, serno 135
via 10.3.1.6 (2297856/128256), Serial2/0
via 10.4.1.5 (2323456/2297856), Ethernet1/0
以下是水準分割導致一條路由從拓撲表中排除的示例。當您檢視拓撲時,您會發現路由器R1在拓撲表中通過R6和R5擁有字首192.168.100.6/32,但無法通過R2或R3:
R1#show ip eigrp topology 192.168.100.6 255.255.255.255
IP-EIGRP (AS 1): Topology entry for 192.168.100.6/32
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2297856
Routing Descriptor Blocks:
10.3.1.6 (Serial2/0), from 10.3.1.6, Send flag is 0x0
Composite metric is (2297856/128256), Route is Internal
Vector metric:
Minimum bandwidth is 1544 Kbit
Total delay is 25000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 1
10.4.1.5 (Ethernet1/0), from 10.4.1.5, Send flag is 0x0
Composite metric is (2323456/2297856), Route is Internal
Vector metric:
Minimum bandwidth is 1544 Kbit
Total delay is 26000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
這是因為路由器R1從未通過R2或R3收到字首192.168.100.6/32,因為它們在路由表中通過R1收到字首192.168.100.6/32。
R2#show ip route 192.168.100.6 255.255.255.255
Routing entry for 192.168.100.6/32
Known via "eigrp 1", distance 90, metric 2323456, type internal
Redistributing via eigrp 1
Last update from 10.1.1.1 on Ethernet0/0, 00:02:07 ago
Routing Descriptor Blocks:
* 10.1.1.1, from 10.1.1.1, 00:02:07 ago, via Ethernet0/0
Route metric is 2323456, traffic share count is 1
Total delay is 26000 microseconds, minimum bandwidth is 1544 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 2
R3#show ip route 192.168.100.6 255.255.255.255
Routing entry for 192.168.100.6/32
Known via "eigrp 1", distance 90, metric 2323456, type internal
Redistributing via eigrp 1
Last update from 10.1.1.1 on Ethernet0/0, 00:01:58 ago
Routing Descriptor Blocks:
* 10.1.1.1, from 10.1.1.1, 00:01:58 ago, via Ethernet0/0
Route metric is 2323456, traffic share count is 1
Total delay is 26000 microseconds, minimum bandwidth is 1544 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 2
若要驗證這一點,請在檢視拓撲表時在R1上使用all-links關鍵字。這顯示所有字首的所有路徑,包括不可行路徑。然後您可以看到,路由器R1尚未從R2或R3獲知字首192.168.100.6/32。
註:度量計算中不包括MTU和跳數。
以下是用於計算路由的路徑度量的公式:
K值是用於對EIGRP度量的四個組成部分(延遲、頻寬、可靠性和負載)進行加權的權重。以下是預設的K值:
使用預設K值(僅使用頻寬和延遲),公式變為:
EIGRP度量= 256 *(Bw +延遲)
Bw=(10^7/最小Bw(千位元/秒))
註:延遲以幾十微秒為測量單位;但在介面上,延遲以微秒為測量單位。
四個元件都可以使用show interface命令進行驗證:
R1#show interface et 0/0
Ethernet0/0 is up, line protocol is up
Hardware is AmdP2, address is aabb.cc00.0100 (bia aabb.cc00.0100)
Internet address is 10.1.1.1/24
MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set Keepalive set (10 sec)
ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:02, output 00:00:02,
output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
789 packets input, 76700 bytes, 0 no buffer
Received 707 broadcasts, 0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 input packets with dribble condition detected
548 packets output, 49206 bytes, 0 underruns
0 output errors, 0 collisions, 1 interface resets
0 unknown protocol drops
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier
0 output buffer failures, 0 output buffers swapped out
延遲是累積的,這意味著您將沿路徑新增每條鏈路的延遲。頻寬不是累積的,因此公式中使用的頻寬是路徑上任何鏈路的最小頻寬。
要檢視EIGRP使用的路由器ID,請在路由器上輸入show ip eigrp topology 命令並檢視輸出的第一行:
R1#show ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(10.100.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 10.3.1.0/24, 1 successors, FD is 2169856
via Connected, Serial2/0
在舊版Cisco IOS中,EIGRP路由器ID完全不用於內部路由。如果EIGRP的路由器ID重複,則僅使用內部路由不能導致任何問題。在較新的Cisco IOS軟體中,EIGRP內部路由確實包含EIGRP路由器ID。
可以在以下輸出中檢視外部路由的路由器ID:
R1#show ip eigrp topology 192.168.1.4 255.255.255.255
IP-EIGRP (AS 1): Topology entry for 192.168.1.4/32
State is Passive, Query origin flag is 1, 2 Successor(s), FD is 435200
Routing Descriptor Blocks:
10.1.1.2 (Ethernet0/0), from 10.1.1.2, Send flag is 0x0
Composite metric is (435200/409600), Route is External
Vector metric:
Minimum bandwidth is 10000 Kbit
Total delay is 7000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
External data:
Originating router is 10.100.1.4
AS number of route is 0
External protocol is Connected, external metric is 0
Administrator tag is 0 (0x00000000)
如果收到的(外部)EIGRP路由的EIGRP路由器ID與路由器相同,則不會生成日誌條目。但是,EIGRP事件日誌會捕獲到這一點。當您檢查(外部)EIGRP路由時,它不會顯示在拓撲表中。
檢查EIGRP事件日誌中可能的重複路由器ID消息:
R1#show ip eigrp events
Event information for AS 1:
1 08:36:35.303 Ignored route, metric: 10.33.33.33 3347456
2 08:36:35.303 Ignored route, neighbor info: 10.3.1.6 Serial2/1
3 08:36:35.303 Ignored route, dup router: 10.100.1.1
4 08:36:35.303 Rcv EOT update src/seq: 10.3.1.6 143
5 08:36:35.227 Change queue emptied, entries: 2
6 08:36:35.227 Route OBE net/refcount: 10.100.1.4/32 3
7 08:36:35.227 Route OBE net/refcount: 10.2.1.0/24 3
8 08:36:35.227 Metric set: 10.100.1.4/32 435200
9 08:36:35.227 Update reason, delay: nexthop changed 179200
10 08:36:35.227 Update sent, RD: 10.100.1.4/32 435200
11 08:36:35.227 Route install: 10.100.1.4/32 10.1.1.3
12 08:36:35.227 Route install: 10.100.1.4/32 10.1.1.2
13 08:36:35.227 RDB delete: 10.100.1.4/32 10.3.1.6
當鄰居路由器上的K值不同時,會出現以下消息:
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.4.1.5 (Ethernet1/0) is down:
K-value mismatch
K值使用以下命令設定(可能的值為K介於0和255之間):
metric weights tos k1 k2 k3 k4 k5
!
router eigrp 1
network 10.0.0.0
metric weights 0 1 2 3 4 5
!
該消息表明,由於K值不匹配,EIGRP鄰居關係未建立。在同一自治系統中的所有EIGRP路由器上,K值必須相同,以防止不同路由器使用不同度量計算時出現路由問題。
檢查鄰居路由器上的K值是否相同。如果K值相同,則問題可能是由於EIGRP正常關閉功能引起的。在這種情況下,路由器會傳送一個EIGRP Hello資料包,其K值設定為255,因此K值會故意不匹配。這表示鄰居EIGRP路由器已關閉。在鄰居路由器上,您會看到收到此告別消息:
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1 (Ethernet0/0) is down:
Interface Goodbye received
但是,如果鄰居路由器執行的是較舊的程式碼版本(在思科錯誤ID CSCdr96531之前),它不會將此訊息識別為正常關閉訊息,但會將其識別為K值中的不相符專案:
%DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.4.1.5 (Ethernet1/0) is down:
K-value mismatch
此訊息與鄰居路由器上真K值不相符的情況相同。
以下是順利關閉的觸發因素:
正常關閉用於加快鄰居關閉狀態的檢測。如果沒有正常關機,鄰居必須等待保持時間到期後,才能宣佈鄰居關閉。
使用variance命令可以在EIGRP中實現成本不等的負載均衡,但必須同時滿足方差和可行性條件。
方差條件表示路由的度量不大於最佳度量乘以方差。為使路由被視為可行,路由必須已通告的報告距離低於可行距離(FD)。以下是範例:
!
router eigrp 1
variance 2
network 10.0.0.0
no auto-summary
!
路由器R1配置了方差2。這意味著,如果路由器的另一條路由的度量不大於該路由最佳度量的兩倍,則該路由必須存在成本不等的負載均衡。
R1#show ip eigrp topology 172.16.100.5 255.255.255.255
IP-EIGRP (AS 1): Topology entry for 172.16.100.5/32
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 409600
Routing Descriptor Blocks:
10.4.1.5 (Ethernet1/0), from 10.4.1.5, Send flag is 0x0
Composite metric is (409600/128256), Route is Internal
Vector metric:
Minimum bandwidth is 10000 Kbit
Total delay is 6000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 1
10.3.1.6 (Serial2/0), from 10.3.1.6, Send flag is 0x0
Composite metric is (435200/409600), Route is Internal <<< RD = 409600
Vector metric:
Minimum bandwidth is 10000 Kbit
Total delay is 7000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
如果第二個拓撲條目安裝在路由表中,則第二個拓撲條目的度量為435200。由於最佳度量的兩倍是2 x 409600 = 819200和435200 < 819200,因此第二個拓撲條目在方差範圍內。第二個拓撲條目的報告距離為409600,不小於FD = 409600。不符合第二個條件(可行性),並且無法將第二個條目安裝到RIB中。
R1#show ip route 172.16.100.5
Routing entry for 172.16.100.5/32
Known via "eigrp 1", distance 90, metric 409600, type internal
Redistributing via eigrp 1
Last update from 10.4.1.5 on Ethernet1/0, 00:00:16 ago
Routing Descriptor Blocks:
* 10.4.1.5, from 10.4.1.5, 00:00:16 ago, via Ethernet1/0
Route metric is 409600, traffic share count is 1
Total delay is 6000 microseconds, minimum bandwidth is 10000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
如果第二個拓撲條目的RD小於FD,如下一個示例所示,將會出現成本不等的負載均衡。
R1#show ip eigrp topology 172.16.100.5 255.255.255.255
IP-EIGRP (AS 1): Topology entry for 172.16.100.5/32
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 409600
Routing Descriptor Blocks:
10.4.1.5 (Ethernet1/0), from 10.4.1.5, Send flag is 0x0
Composite metric is (409600/128256), Route is Internal
Vector metric:
Minimum bandwidth is 10000 Kbit
Total delay is 6000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 1
10.3.1.6 (Serial2/0), from 10.3.1.6, Send flag is 0x0
Composite metric is (434944/409344), Route is Internal <<< RD = 409344
Vector metric:
Minimum bandwidth is 10000 Kbit
Total delay is 6990 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
兩個拓撲條目現在都出現在路由表中:
R1#show ip route 172.16.100.5
Routing entry for 172.16.100.5/32
Known via "eigrp 1", distance 90, metric 409600, type internal
Redistributing via eigrp 1
Last update from 10.3.1.6 on Serial2/0, 00:00:26 ago
Routing Descriptor Blocks:
* 10.4.1.5, from 10.4.1.5, 00:00:26 ago, via Ethernet1/0
Route metric is 409600, traffic share count is 120
Total delay is 6000 microseconds, minimum bandwidth is 10000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
10.3.1.6, from 10.3.1.6, 00:00:26 ago, via Serial2/0
Route metric is 434944, traffic share count is 113
Total delay is 6990 microseconds, minimum bandwidth is 10000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 2
EIGRP支援在同一介面上配置一個或多個靜態鄰居。一旦在介面上配置了一個靜態EIGRP鄰居,路由器便不再在該介面上將EIGRP資料包作為組播傳送,也不再處理收到的組播EIGRP資料包。這意味著Hello、Update和Query資料包現在被單播。除非為該介面上的鄰居顯式配置 static neighbor命令,否則無法形成其他鄰居。
以下是配置靜態EIGRP鄰居的方法:
router eigrp 1
passive-interface Loopback0
network 10.0.0.0
no auto-summary
neighbor 10.1.1.1 Ethernet0/0
!
當連結兩端的路由器都使用static neighbor指令時,會建立鄰居關係:
R1#show ip eigrp neighbors detail
IP-EIGRP neighbors for process 1
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
1 10.1.1.2 Et0/0 14 00:00:23 27 200 0 230
Static neighbor
Version 12.4/1.2, Retrans: 0, Retries: 0, Prefixes: 1
0 10.3.1.6 Se2/0 14 1d02h 26 200 0 169
Version 12.4/1.2, Retrans: 0, Retries: 0, Prefixes: 12
3 10.4.1.5 Et1/0 10 1d02h 16 200 0 234
Version 12.4/1.2, Retrans: 0, Retries: 0, Prefixes: 7
如果只有一個路由器配置了static neighbor命令,則可以觀察到路由器忽略組播EIGRP資料包,而另一個路由器忽略單播EIGRP資料包:
R1#
EIGRP: Received HELLO on Ethernet0/0 nbr 10.1.1.2
AS 1, Flags 0x0, Seq 0/0 idbQ 0/0
EIGRP: Ignore multicast Hello Ethernet0/0 10.1.1.2
R2#
EIGRP: Received HELLO on Ethernet0/0 nbr 10.1.1.1
AS 1, Flags 0x0, Seq 0/0 idbQ 0/0
EIGRP: Ignore unicast Hello from Ethernet0/0 10.1.1.1
對於EIGRP靜態鄰居,有一個特殊的debug命令:
R2#debug eigrp neighbors static
EIGRP Static Neighbors debugging is on
R2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#router eigrp 1
R2(config-router)#neighbor 10.1.1.1 et 0/0
R2(config-router)#end
R2#
EIGRP: Multicast Hello is disabled on Ethernet0/0!
EIGRP: Add new static nbr 10.1.1.1 to AS 1 Ethernet0/0
以下是可以配置靜態EIGRP鄰居的一些原因:
注意:請勿將passive-interface命令與static EIGRP neighbor命令一起配置。
當您配置指向介面的靜態路由時,該路由在路由器EIGRP下包含一條network語句,EIGRP會通告該靜態路由,就像它是一條已連線的路由一樣。在這種情況下,不需要使用redistribute static命令或預設度量。
router eigrp 1
network 10.0.0.0
network 172.16.0.0
no auto-summary
!
ip route 172.16.0.0 255.255.0.0 Serial2/0
!
R1#show ip eigrp top 172.16.0.0 255.255.0.0
IP-EIGRP (AS 1): Topology entry for 172.16.0.0/16
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2169856
Routing Descriptor Blocks:
0.0.0.0, from Rstatic, Send flag is 0x0
Composite metric is (2169856/0), Route is Internal
Vector metric:
Minimum bandwidth is 1544 Kbit
Total delay is 20000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 0
注意:不要使用可靠性和/或負荷來計算指標。
可靠性與負載引數顯示在show interface命令輸出中。當載荷和可靠性發生變化時,這些引數沒有動態更新。如果負載和可靠性發生變化,則不會立即觸發度量的更改。只有當EIGRP由於負載和可靠性方面的拓撲變化而決定向鄰居傳送更新時,才能傳播更新。此外,使用負載和可靠性來計算度量可能會帶來不穩定性,因為接下來會執行自適應路由。如果您希望根據流量負載更改路由,則必須考慮使用多協定標籤交換(MPLS)流量工程或效能路由(PfR)。
有三個EIGRP進程同時運行:
以下是一個輸出範例,顯示這三個進程:
R1#show process cpu | include EIGRP
89 4 24 166 0.00% 0.00% 0.00% 0 IP-EIGRP Router
90 1016 4406 230 0.00% 0.03% 0.00% 0 IP-EIGRP: PDM
91 2472 6881 359 0.00% 0.07% 0.08% 0 IP-EIGRP: HELLO
EIGRP中的CPU使用率高不正常。如果發生這種情況,則EIGRP有太多工作要做,或者EIGRP中存在錯誤。在第一種情況下,檢查拓撲表中的字首數和對等體數。檢查EIGRP路由和鄰居之間是否不穩定。
在一個點對多點介面上有多個鄰居路由器的幀中繼網路中,可能有許多廣播或組播資料包必須傳輸。因此,有單獨的廣播隊列具有自己的緩衝區。當廣播隊列以低於配置的最大值的速率傳輸時,它有優先順序並且具有保證的最小頻寬分配。
以下是在此案例中使用的命令:
frame-relay broadcast-queue size byte-rate packet-rate
一般情況下,每個資料連結連線識別碼(DLCI)應開始二十個封包。位元組速率必須小於以下兩者:
如果您觀察到大量EIGRP鄰居擺動,請增大幀中繼廣播隊列大小。如果存在幀中繼子介面,則不會出現此問題,因為每個鄰居路由器都位於一個子介面上,該子介面具有不同的IP子網。當存在大型全網狀幀中繼網路時,將此視為一種解決方法。
當您輸入debug eigrp packets hello命令時,表明路由器沒有接收Hello資料包。
預設情況下,用於在主網路(網路A、B和C)邊界執行彙總的EIGRP。這意味著比主網路型別A的/8字首更具體的路由、比主網路型別B的/16字首更具體的路由以及比主網路型別C的/24字首更具體的路由在跨越其邊界時丟失。以下是自動總結導致問題的範例:
如圖所示,路由器R1和R3在路由器EIGRP下具有auto-summary。路由器R2收到來自路由器R2和R3的10.0.0.0/8,因為R2和R3都是主A類網路10.0.0.0/8和172.16.0.0/16之間的邊界路由器。如果度量相同,則路由器R2可以通過R1和R3擁有路由10.0.0.0/8。否則,R2將路由10.0.0.0/8通過R1或通過R3,具體取決於產生最低開銷的路徑。無論哪種情況,如果R2必須將流量傳送到特定的10.0.0.0/8子網,它無法完全確定流量到達其目的地,因為10.0.0.0/8子網只能位於左側或右側網路雲中。
為了緩解此問題,只需在路由器EIGRP進程下鍵入no auto-summary。然後,路由器將主要網路的子網傳播到邊界上。在較新的Cisco IOS版本中,no auto-summary設定是預設行為。
EIGRP事件日誌捕獲EIGRP事件。它類似於為EIGRP啟用調試。然而,它的破壞性較小,而且預設情況下運行。它可用於捕獲更難進行故障排除的事件或更為間歇的事件。預設情況下,此日誌只有500行。若要增加數值,請輸入 eigrp event-log-size <0 – 209878> 命令。您可以根據需要增加日誌大小,但請記住路由器必須為此日誌保留的記憶體量。要清除EIGRP事件日誌,請輸入clear ip eigrp events命令。
以下是範例:
R1#show ip eigrp events
Event information for AS 1:
1 09:01:36.107 Poison squashed: 10.100.1.3/32 reverse
2 09:01:35.991 Update ACK: 10.100.1.4/32 Serial2/0
3 09:01:35.967 Update ACK: 10.100.1.4/32 Ethernet0/0
4 09:01:35.967 Update ACK: 10.100.1.4/32 Ethernet1/0
5 09:01:35.943 Update delay/poison: 179200 FALSE
6 09:01:35.943 Update transmitted: 10.100.1.4/32 Serial2/0
7 09:01:35.943 Update delay/poison: 179200 TRUE
8 09:01:35.943 Update transmitted: 10.100.1.4/32 Ethernet0/0
9 09:01:35.943 Update delay/poison: 179200 FALSE
10 09:01:35.943 Update transmitted: 10.100.1.4/32 Ethernet1/0
11 09:01:35.923 Update packetized: 10.100.1.4/32 Ethernet0/0
12 09:01:35.923 Update packetized: 10.100.1.4/32 Ethernet1/0
13 09:01:35.923 Update packetized: 10.100.1.4/32 Serial2/0
14 09:01:35.903 Change queue emptied, entries: 1
15 09:01:35.903 Route OBE net/refcount: 10.100.1.4/32 3
16 09:01:35.903 Metric set: 172.16.1.0/24 2195456
17 09:01:35.903 Route install: 172.16.1.0/24 10.4.1.5
18 09:01:35.903 FC sat rdbmet/succmet: 2195456 2169856
19 09:01:35.903 FC sat nh/ndbmet: 10.4.1.5 2195456
20 09:01:35.903 Find FS: 172.16.1.0/24 2195456
最新事件顯示在日誌的頂部。您可以過濾特定型別的EIGRP事件,例如DUAL、Xmit和transport:
eigrp log-event-type {dual | xmit | transport}
此外,您可以為以下三種型別之一(兩種型別的組合)或所有三種型別啟用日誌記錄。以下範例中啟用了兩種型別的記錄:
router eigrp 1
redistribute connected
network 10.0.0.0
no auto-summary
eigrp log-event-type dual xmit
eigrp event-logging
eigrp event-log-size 100000
!
注意:啟用eigrp event-logging時,它會列印事件記錄並將其儲存在事件表中。這會導致控制檯上出現大量列印輸出,類似於啟用繁重的EIGRP調試時。
如果路由通過兩個EIGRP進程獲知,則只有一個EIGRP進程可以在RIB中安裝該路由。具有最低管理距離的進程會安裝路由。如果管理距離相同,則度量最低的進程將安裝路由。如果度量也相同,則EIGRP進程ID最低的EIGRP進程會將路由安裝到RIB中。其他EIGRP進程的拓撲表可以安裝零後繼路由和無限的FD值。
以下是範例:
R1#show ip eigrp topology 192.168.1.0 255.255.255.0
IP-EIGRP (AS 1): Topology entry for 192.168.1.0/24
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2681856
Routing Descriptor Blocks:
10.3.1.6 (Serial2/0), from 10.3.1.6, Send flag is 0x0
Composite metric is (2681856/2169856), Route is Internal
Vector metric:
Minimum bandwidth is 1544 Kbit
Total delay is 40000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 1
IP-EIGRP (AS 2): Topology entry for 192.168.1.0/24
State is Passive, Query origin flag is 1, 0 Successor(s), FD is 4294967295
Routing Descriptor Blocks:
10.4.1.5 (Ethernet1/0), from 10.4.1.5, Send flag is 0x0
Composite metric is (2681856/2169856), Route is Internal
Vector metric:
Minimum bandwidth is 1544 Kbit
Total delay is 40000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 1
R1#show ip route 192.168.1.0 255.255.255.0
Routing entry for 192.168.1.0/24
Known via "eigrp 1", distance 90, metric 2681856, type internal
Redistributing via eigrp 1
Last update from 10.3.1.6 on Serial2/0, 00:04:16 ago
Routing Descriptor Blocks:
* 10.3.1.6, from 10.3.1.6, 00:04:16 ago, via Serial2/0
Route metric is 2681856, traffic share count is 1
Total delay is 40000 microseconds, minimum bandwidth is 1544 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
修訂 | 發佈日期 | 意見 |
---|---|---|
3.0 |
04-Dec-2023 |
重新認證 |
1.0 |
20-Sep-2021 |
初始版本 |