本檔案將說明Cisco IOS®中整合式中間系統到中間系統(IS-IS)Hello封包填充的行為。
IS-IS預設會將Hello封包修補到整個介面最大傳輸單元(MTU)。 這是為了檢測MTU不相符。連結任一端的MTU應該相符。填充還可用於檢測位於其下的技術的實際MTU值。例如,對於使用多重通訊協定標籤交換(MPLS)方案進行第2層(L2)傳輸,傳輸技術的MTU可能遠低於邊緣的MTU。例如,邊緣上的MTU可以為9,000位元組,而MPLS傳輸技術的MTU為1,500位元組。
如果任一端的MTU值相符,則可以停用填充功能。因此,可以避免IS-IS Hello資料包不必要的頻寬和緩衝區使用。用於禁用Hello填充的路由器命令是no hello padding [multi-point|point-to-point]。用於禁用Hello填充的介面命令是no isis hello padding。
如果填充在開始時被禁用,路由器仍會以完整的MTU傳送Hello資料包。若要避免這種情況,請使用interface命令停用填充功能,然後使用always關鍵字。在這種情況下,不會填充所有IS-IS Hello資料包。
IS-IS Hello資料包具有填充型別長度值(TLV)。 對於點對點(P2P)IH,填充的TLV為8。對於LAN IIH,填充的TLV為8。
下一張圖中的範例在本節中使用,以說明IS-IS中的MTU和停用Hello填充功能:
在本示例中,PE1和PE2在它們之間設定了一個虛擬電路(VC)100,以便連線路由器R1和R2的第2層。此VC是Ethernet over MPLS(EoMPLS)VC。
PE1#show xconnect all
Legend: XC ST=Xconnect State S1=Segment1 State S2=Segment2 State
UP=Up DN=Down AD=Admin Down IA=Inactive
SB=Standby HS=Hot Standby RV=Recovering NH=No Hardware
XC ST Segment 1 S1 Segment 2 S2
------+---------------------------------+--+---------------------------------+--
UP pri ac Se2/0(HDLC) UP mpls 10.100.1.5:100 UP
PE1#show mpls l2transport vc 100
Local intf Local circuit Dest address VC ID Status
------------- -------------------------- --------------- ---------- ----------
Se2/0 HDLC 10.100.1.5 100 UP
路由器R1的輸出如下:
interface Serial2/0
ip address 10.1.1.1 255.255.255.0
ip router isis 1
serial restart-delay 0
路由器R2的輸出如下:
interface Serial2/0
ip address 10.1.1.2 255.255.255.0
ip router isis 1
serial restart-delay 0
debug isis adj-packets debug命令的輸出提供了有關IS-IS鄰接的資訊:
R1#debug isis adj-packets
IS-IS Adjacency related packets debugging is on for router process 1
R1#
13:00:59.978: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1499
13:01:07.758: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1499
13:01:16.280: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1499
R2#
13:01:50.100: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1499
13:02:00.062: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1499
13:02:07.899: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1499
在這種情況下,IS-IS鄰接失敗。
R1#show isis neighbors
Tag 1:
System Id Type Interface IP Address State Holdtime Circuit Id
R1#
R1#show clns interface Serial 2/0
Serial2/0 is up, line protocol is up
Checksums enabled, MTU 1500, Encapsulation HDLC
ERPDUs enabled, min. interval 10 msec.
CLNS fast switching enabled
CLNS SSE switching disabled
DEC compatibility mode OFF for this interface
Next ESH/ISH in 18 seconds
Routing Protocol: IS-IS
Circuit Type: level-1-2
Interface number 0x1, local circuit ID 0x101
Level-1 Metric: 10, Priority: 64, Circuit ID: R1.01
Level-1 IPv6 Metric: 10
Number of active level-1 adjacencies: 0
Next IS-IS Hello in 5 seconds
if state DOWN
路由器R1和R2串列介面的MTU是預設的1,500位元組。
IS-IS鄰接失敗,因為IS-IS Hello資料包的大小為1,499位元組。MPLS網路僅允許1,500位元組的資料包,減去8位元組(MPLS服務的兩個MPLS標籤),等於1,492位元組(允許通過的資料包大小)。 對於通過MPLS傳輸L2,還必須從產生的1,492位元組中減去第2層報頭的大小。
在此案例中,在路由器R1的Serial2/0介面上使用no isis hello padding命令:
interface Serial2/0
ip address 10.1.1.1 255.255.255.0
ip router isis 1
serial restart-delay 0
no isis hello padding
R1#
13:03:46.712: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1499
13:03:54.717: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1499
13:04:03.057: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1499
13:04:11.538: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1499
13:04:21.301: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1499
13:04:30.636: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1499
13:04:39.958: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1499
如圖所示,傳送的具有完整MTU大小(1,497位元組)的五個以上的IS-IS Hello資料包。 路由器繼續傳送帶有填充的Hello資料包,直到IS-IS鄰接關係啟動。但是,除非修復了MTU問題,否則鄰接關係不會出現。
路由器R1上Serial2/0介面的MTU降低到1,400位元組。因此,大小最高為1,400位元組的資料包一定可以通過偽線通過MPLS網路。
路由器R1的輸出如下:
!
interface Serial2/0
mtu 1400
ip address 10.1.1.1 255.255.255.0
ip router isis 1
serial restart-delay 0
no isis hello padding
R1#
13:07:19.428: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1399
13:07:29.024: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1399
13:07:38.185: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1399
13:07:45.715: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1399
13:07:55.351: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1399
13:08:04.814: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1399
13:08:14.216: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1399
13:08:23.447: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1399
13:08:31.676: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1399
13:08:39.966: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:DOWN, length 1399
路由器R1繼續使用填充傳輸Hello資料包。大小現在為1,400位元組減一。
路由器R2的Serial 2/0介面上的MTU降低後,填充功能將禁用。
路由器R2的輸出如下:
interface Serial2/0
mtu 1400
ip address 10.1.1.2 255.255.255.0
ip router isis 1
serial restart-delay 0
一旦路由器R1看到來自路由器R2的IS-IS Hello資料包到達,就會啟用IS-IS鄰接關係。由於路由器R2也看到來自路由器R1的IS-IS Hello資料包,因此IS-IS鄰接關係最終會變為UP狀態,這意味著將建立三方鄰接關係。此時,路由器R1(介面Serial 2/0上禁用了Hello填充)將Hello資料包的大小降至最低。
R1#
13:08:47.010: ISIS-Adj: Rec serial IIH from *HDLC* (Serial2/0), cir type L1, cir id 01,
length 1399
13:08:47.010: ISIS-Adj: newstate:1, state_changed:1, going_up:0, going_down:0
13:08:47.010: ISIS-Adj: Action = GOING UP, new type = L1
13:08:47.010: ISIS-Adj: New serial adjacency
13:08:47.010: ISIS-Adj: rcvd state INIT, old state DOWN, new state INIT, nbr usable TRUE
13:08:47.011: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:INIT, length 1399
13:08:47.055: ISIS-Adj: Rec serial IIH from *HDLC* (Serial2/0), cir type L1, cir id 01,
length 1399
13:08:47.055: ISIS-Adj: rcvd state UP, old state INIT, new state UP, nbr usable TRUE
13:08:47.056: ISIS-Adj: newstate:0, state_changed:1, going_up:1, going_down:0
13:08:47.056: ISIS-Adj: Action = GOING UP, new type = L1
13:08:47.056: ISIS-Adj: L1 adj count 1
13:08:47.056: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:UP, length 43
如圖所示,路由器R1傳送長度為43的IS-IS Hello資料包,並從路由器R2接收長度為1399的Hello資料包。這是因為路由器R2上的Hello填充仍處於活動狀態。
在本示例中,如果鏈路的任一端的MTU在介面Serial 2/0上仍設定為1,500位元組,則不會出現IS-IS鄰接關係。即使啟用了no isis hello padding命令,也會出現這種情況。只有在鏈路兩端的MTU設定為正確值後,介面才會啟動。
因此,如果僅禁用IS-IS Hello填充,則僅啟用IS-IS鄰接關係是不夠的。MTU必須足夠低,以便鏈路兩端的路由器正確傳送和接收MTU大小的IS-IS Hello資料包。
在路由器R1的介面Serial2/0上將MTU設定為1,500位元組時,由於傳輸的IS-IS Hello資料包仍是完整的MTU大小,因此鄰接關係無法建立。為了解決此問題,您可以在介面Serial2/0上設定no isis hello padding always interface指令,以永遠停用填充功能。
!
interface Serial2/0
ip address 10.1.1.1 255.255.255.0
ip router isis 1
serial restart-delay 0
no isis hello padding always
配置此命令後,IS-IS Hello資料包具有最小大小。路由器R1和R2之間的IS-IS鄰接關係立即出現。
R1#
13:25:47.284: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:INIT,
length 43, never pad
13:25:47.328: ISIS-Adj: Rec serial IIH from *HDLC* (Serial2/0), cir type L1,
cir id 01, length 1399
13:25:47.328: ISIS-Adj: rcvd state INIT, old state INIT, new state UP,
nbr usable TRUE
13:25:47.328: ISIS-Adj: newstate:0, state_changed:1, going_up:1, going_down:0
13:25:47.328: ISIS-Adj: Action = GOING UP, new type = L1
13:25:47.329: ISIS-Adj: L1 adj count 1
13:25:47.330: ISIS-Adj: Sending serial IIH on Serial2/0, 3way state:UP,
length 43, never pad
13:25:47.374: ISIS-Adj: Rec serial IIH from *HDLC* (Serial2/0), cir type L1,
cir id 01, length 1399
13:25:47.374: ISIS-Adj: rcvd state UP, old state UP, new state UP,
nbr usable TRUE
13:25:47.375: ISIS-Adj: newstate:0, state_changed:0, going_up:0, going_down:0
13:25:47.375: ISIS-Adj: Action = ACCEPT
13:25:47.375: ISIS-Adj: ACTION_ACCEPT:
如果介面MTU不匹配,則IS-IS鄰接關係不會啟動。對於快速修復,您可以使用always關鍵字禁用IS-IS Hello填充。然而,這可能不是真正的解決辦法。
路由器R1的輸出如下:
interface Serial2/0
ip address 10.1.1.1 255.255.255.0
ip router isis 1
serial restart-delay 0
no isis hello padding always
IS-IS鄰接關係已啟動。
R1#show isis neighbors
Tag 1:
System Id Type Interface IP Address State Holdtime Circuit Id
R2 L1 Se2/0 10.1.1.2 UP 22 01
以下是從路由器R1傳送到路由器R3的ping,用於檢查通過鏈路的流量:
R1#ping 10.100.1.3 source 10.100.1.1 size 1400 repeat 1
Type escape sequence to abort.
Sending 1, 1400-byte ICMP Echos to 10.100.1.3, timeout is 2 seconds:
Packet sent with a source address of 10.100.1.1
!
Success rate is 100 percent (1/1), round-trip min/avg/max = 44/44/44 ms
R1#ping 10.100.1.3 source 10.100.1.1 size 1500 repeat 1
Type escape sequence to abort.
Sending 1, 1500-byte ICMP Echos to 10.100.1.3, timeout is 2 seconds:
Packet sent with a source address of 10.100.1.1
.
Success rate is 0 percent (0/1)
如圖所示,大小為1,500位元組的封包無法通過。這是因為路由器R1認為Serial2/0介面上的MTU為1,500位元組:
R1#show interfaces Serial2/0
Serial2/0 is up, line protocol is up
Hardware is M4T
Internet address is 10.1.1.1/24
MTU 1500 bytes, BW 1544 Kbit/sec, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation HDLC, crc 16, loopback not set
Keepalive set (10 sec)
Restart-Delay is 0 secs
Last input 00:00:01, output 00:00:01, 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: weighted fair
Output queue: 0/1000/64/0 (size/max total/threshold/drops)
Conversations 0/1/256 (active/max active/max total)
Reserved Conversations 0/0 (allocated/max allocated)
Available Bandwidth 1158 kilobits/sec
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
590 packets input, 283131 bytes, 0 no buffer
Received 567 broadcasts (0 IP multicasts)
0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
693 packets output, 313789 bytes, 0 underruns
0 output errors, 0 collisions, 2 interface resets
0 unknown protocol drops
0 output buffer failures, 0 output buffers swapped out
3 carrier transitions DCD=up DSR=up DTR=up RTS=up CTS=up
如果介面Serial2/0上的MTU降低到1,400位元組,則如果封包未設定「不分段(DF)位元」,路由器R1會對封包進行分段。如果封包已設定DF位元,則路由器可能傳迴路徑MTU探索使用的ICMP 3/4訊息。這允許封包的傳送者降低其傳送出去的封包大小。MTU的正確設定對於經過路由器的流量非常重要,對於來自路由器並通過該鏈路的流量也很重要。後者的一個例子是邊界閘道通訊協定(BGP),它使用TCP且可以使用路徑MTU探索。
為了修復IS-IS鄰接問題,網路的運營商可以禁用帶有always關鍵字的Hello填充。串列鏈路的MTU為1,500位元組。
仍然存在IS-IS泛洪問題。當IS-IS資料庫很小時,沒有問題。
R1#debug isis update-packets
IS-IS Update related packet debugging is on for router process 1
當路由器R3新增字首並泛洪時,路由器R1收到路由器R2的路由器R3鏈路狀態PDU(LSP)。
R1#
*Nov 19 13:53:58.227: ISIS-Upd: Rec L1 LSP 0000.0000.0003.00-00, seq B, ht 1197,
*Nov 19 13:53:58.227: ISIS-Upd: from SNPA *HDLC* (Serial2/0)
*Nov 19 13:53:58.227: ISIS-Upd: LSP newer than database copy
*Nov 19 13:53:58.227: ISIS-Upd: TLV contents different, code 130
*Nov 19 13:53:58.228: ISIS-Upd: TID 0 leaf routes changed
當路由器R3通告的字首數量增加時,路由器R3的LSP太大,因此被拆分為多個片段:
R3#show isis database
Tag 1:
IS-IS Level-1 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
R1.00-00 0x0000000C 0x5931 1137 0/0/0
R2.00-00 0x0000000B 0xCB7D 1162 0/0/0
R3.00-00 * 0x0000000D 0xF637 1104 0/0/0
R3.00-01 * 0x00000001 0x6AD8 1104 0/0/0
R3.00-02 * 0x00000001 0xB58A 1104 0/0/0
R3.01-00 * 0x00000002 0x9BB1 387 0/0/0
Tag null:
R3.00-00是第一個片段,R3.00-01是第二個片段,以此類推。
R2#
14:22:15.584: ISIS-Upd: Retransmitting L1 LSP 0000.0000.0003.00-00 on Serial2/0
14:22:15.624: ISIS-Upd: Sending L1 LSP 0000.0000.0003.00-00, seq E, ht 467 on
Serial2/0
14:22:18.352: ISIS-Snp: Rec L1 CSNP from 0000.0000.0003 (Ethernet1/0)
14:22:20.625: ISIS-Upd: Retransmitting L1 LSP 0000.0000.0003.00-00 on Serial2/0
14:22:20.657: ISIS-Upd: Sending L1 LSP 0000.0000.0003.00-00, seq E, ht 462 on
Serial2/0
這是路由器R2通過介面Serial2/0重新傳輸的LSP。PDU長度為1,490位元組,因此資料包的大小不允許它到達路由器R1。
當路由器R1和R2之間的IS-IS鄰接關係處於活動狀態時,路由器R1的路由表中具有較少的IP字首:
R1#show isis neighbors
Tag 1:
System Id Type Interface IP Address State Holdtime Circuit Id
R2 L1 Se2/0 10.1.1.2 UP 25 01
R2#show isis neighbors
Tag 1:
System Id Type Interface IP Address State Holdtime Circuit Id
R1 L1 Se2/0 10.1.1.1 UP 26 01
R3 L1 Et1/0 10.1.2.3 UP 8 R3.01
R2#show ip route summary
IP routing table name is default (0x0)
IP routing table maximum-paths is 32
Route Source Networks Subnets Replicates Overhead Memory (bytes)
connected 0 5 0 360 900
static 0 0 0 0 0
application 0 0 0 0 0
isis 1 0 252 0 18144 45360
Level 1: 252 Level 2: 0 Inter-area: 0
internal 1 10620
Total 1 257 0 18504 56880
R1#show ip route summary
IP routing table name is default (0x0)
IP routing table maximum-paths is 32
Route Source Networks Subnets Replicates Overhead Memory (bytes)
connected 0 3 0 216 540
static 0 0 0 0 0
application 0 0 0 0 0
isis 1 0 2 0 144 360
Level 1: 2 Level 2: 0 Inter-area: 0
internal 1 560
Total 1 5 0 360 1460
這是因為路由器R3的LSP R3.00-00無法到達路由器R1。
R3#show isis database
Tag 1:
IS-IS Level-1 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
R1.00-00 0x0000000E 0x5533 1009 0/0/0
R2.00-00 0x0000000C 0xC97E 453 0/0/0
R3.00-00 * 0x0000000F 0xF239 1045 0/0/0
R3.00-01 * 0x00000003 0x66DA 1098 0/0/0
R3.00-02 * 0x00000003 0xB18C 1060 0/0/0
R3.01-00 * 0x00000004 0x97B3 554 0/0/0
Tag null:
R1#show isis database
Tag 1:
IS-IS Level-1 Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
R1.00-00 * 0x0000000E 0x5533 1008 0/0/0
R2.00-00 0x0000000C 0xC97E 449 0/0/0
R3.00-01 0x00000002 0x68D9 223 0/0/0
R3.00-02 0x00000002 0xB38B 246 0/0/0
R3.01-00 0x00000004 0x97B3 545 0/0/0
路由器R1沒有路由器R3的L1 LSP(R3.00-00)的第一個片段。此第一個片段的長度最大,在此例中擁有的字首最多。因此,路由器R1沒有某些字首,從而導致流量黑洞。
為了解決此問題,您可以通過lsp-mtu <128-4352> router IS-IS命令降低LSP MTU。如果您僅在路由器R2上配置此命令,則路由器R2不會以任何方式更改從路由器R3接收的LSP。這表示如果路由器R2收到大小為1,490位元組的LSP,則路由器R2不會將其分段。如果在路由器R3上配置lsp-mtu 1400命令,則路由器R3會建立較小的LSP,這些LSP足夠小,可以穿過路由器R2和R1之間的鏈路。
如果在路由器R3上配置lsp-mtu 1400命令,則PDU長度現在為1,394位元組:
總之,如果您有一個具有較小MTU的鏈路,並使用no isis hello padding always命令,則可能導致流量泛洪和黑洞。為了解決泛洪問題,您可以降低LSP的最大大小,但是您必須在每個IS-IS路由器上配置lsp-mtu路由器IS-IS命令。
本節介紹對基礎MTU所做更改的影響。
在此案例中,網路可自始至終正常運作。路由器R1和R2上介面Serial2/0的MTU設定為1,400位元組。IS-IS Hello填充已啟用,這是預設行為。
路由器R1的輸出如下:
interface Serial2/0
mtu 1400
ip address 10.1.1.1 255.255.255.0
ip router isis 1
serial restart-delay 0
路由器R2的輸出如下:
interface Serial2/0
mtu 1400
ip address 10.1.1.2 255.255.255.0
ip router isis 1
serial restart-delay 0
R1#show isis neighbors
Tag 1:
System Id Type Interface IP Address State Holdtime Circuit Id
R2 L1 Se2/0 10.1.1.2 UP 23 01
R2#show isis neighbors
Tag 1:
System Id Type Interface IP Address State Holdtime Circuit Id
R1 L1 Se2/0 10.1.1.1 UP 27 01
0000.0000.0003 L1 Et1/0 10.1.2.3 UP 7 0000.0000.0003.01
整個串列的IS-IS鄰接關係為up,並且IS-IS泛洪正常。
在某個時間點,MPLS服務提供商網路中會出現一個問題,導致PE1和PE2之間的端到端MTU下降到低於1,400位元組。
由於Hello填充已啟用(預設行為),因此IS-IS鄰接在介面Serial2/0上會快速關閉。這表示在MPLS雲中存在問題。由於IS-IS鄰接關係斷開,因此路由不再指向此MPLS雲,並且沒有通過此雲的流量被黑洞。
在此案例中,網路可自始至終正常運作。路由器R1和R2的介面Serial2/0上的MTU設定為1,400位元組。IS-IS Hello填充已禁用。
路由器R1的輸出如下:
!
interface Serial2/0
mtu 1400
ip address 10.1.1.1 255.255.255.0
ip router isis 1
serial restart-delay 0
no isis hello padding
路由器R2的輸出如下:
!
interface Serial2/0
mtu 1400
ip address 10.1.1.2 255.255.255.0
ip router isis 1
serial restart-delay 0
no isis hello padding
整個串列的IS-IS鄰接關係為up,並且IS-IS泛洪正常。
這是路由器R1的資料庫:
R1#show isis database
Tag 1:
IS-IS Level-1 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
R1.00-00 * 0x0000001D 0x3742 1148 0/0/0
R2.00-00 0x0000001D 0xA78F 1161 0/0/0
R3.00-00 0x00000016 0xAFE4 454 0/0/0
R3.00-01 0x0000000B 0x0A0B 393 0/0/0
R3.00-02 0x0000000B 0xC2A5 451 0/0/0
R3.01-00 0x00000009 0x8DB8 435 0/0/0
在某個時間點,MPLS服務提供商網路中會出現一個問題,導致PE1和PE2之間的端到端MTU下降到低於1,400位元組。
IS-IS不會立即受到影響,但IP流量可能會受到影響。如果存在資料包大小為1,400位元組的流量,則在MPLS網路中丟棄這些流量。
如果網路穩定,則會在相當長的時間內沒有泛濫。這與LSP刷新時間保持相同。刷新LSP後,MPLS網路中的泛洪就會中斷。
R2#
15:27:07.848: ISIS-Upd: Retransmitting L1 LSP 0000.0000.0003.00-01 on Serial2/0
15:27:07.880: ISIS-Upd: Sending L1 LSP 0000.0000.0003.00-01, seq C, ht 1147 on
Serial2/0
15:27:12.883: ISIS-Upd: Retransmitting L1 LSP 0000.0000.0003.00-01 on Serial2/0
15:27:12.924: ISIS-Upd: Sending L1 LSP 0000.0000.0003.00-01, seq C, ht 1142 on
Serial2/0
這是在MPLS網路中發生問題後路由器R1的IS-IS資料庫:
R1#show isis database
Tag 1:
IS-IS Level-1 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
R1.00-00 * 0x0000001D 0x3742 725 0/0/0
R2.00-00 0x0000001D 0xA78F 737 0/0/0
R3.00-00 0x00000016 0xAFE4 30 0/0/0
R3.00-01 0x0000000B 0xCE1F 0 (30) 0/0/0
R3.00-02 0x0000000C 0xC0A6 895 0/0/0
R3.01-00 0x0000000A 0x8BB9 906 0/0/0
對於來自路由器R3的某些LSP片段,這是保持時間到期後的資料庫:
R1#show isis database
Tag 1:
IS-IS Level-1 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
R1.00-00 * 0x0000001D 0x3742 605 0/0/0
R2.00-00 0x0000001D 0xA78F 618 0/0/0
R3.00-02 0x0000000C 0xC0A6 775 0/0/0
R3.01-00 0x0000000A 0x8BB9 787 0/0/0
路由器R1上不再出現片段R3.00-00和R3.00-01,路由器R1上也不再存在來自路由器R3的路由:
R1#show ip route summary
IP routing table name is default (0x0)
IP routing table maximum-paths is 32
Route Source Networks Subnets Replicates Overhead Memory (bytes)
connected 0 3 0 216 540
static 0 0 0 0 0
application 0 0 0 0 0
isis 1 0 2 0 144 360
Level 1: 2 Level 2: 0 Inter-area: 0
internal 1 560
Total 1 5 0 360 1460
如圖所示,某些路由器R3 LSP片段已超時且不會顯示。這會導致某些路由未出現在路由表中。
如果禁用Hello填充,則它可能會隱藏網路中的未來問題。當基礎MTU發生變化時,可能會導致路由問題,而要解決此問題則困難得多,因為您必須檢查路由表以及多台路由器上的IS-IS資料庫以便查明問題。啟用Hello填充後,由於IS-IS鄰接關係斷開,因此可以更輕鬆地確定問題的位置。
最佳解決方案是將鏈路上的MTU設定為正確的值,並確保鏈路兩端的值相等。這可確保IS-IS泛洪正常工作,並且路由器在協助路徑MTU發現時能夠正確執行分段或行為正確。
IS-IS泛洪問題可能只有在LSP變大時(網路增長時)才會變得明顯。 禁用IS-IS Hello填充後,可以解決IS-IS鄰接關係不出現的問題。但是,泛洪、黑洞流量,甚至可能破壞路徑MTU發現的問題可能會出現的時間遠遠晚於禁用IS-IS Hello填充的時間。這使得問題更難診斷,這要花費更多的時間。