本文档介绍Cisco IOS®中集成中间系统到中间系统(IS-IS)Hello数据包填充的行为。
默认情况下,IS-IS将Hello数据包填充到全接口最大传输单位(MTU)。 这是为了检测MTU不匹配。链路两端的MTU应匹配。填充还可以用于检测底层技术的实际MTU值。例如,对于多协议标签交换(MPLS)场景中的第2层(L2)传输,传输技术的MTU可能远低于边缘的MTU。例如,边缘上的MTU可以为9,000字节,而MPLS传输技术具有1,500字节的MTU。
如果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。
本节使用下一图中提供的示例来解释MTU和在IS-IS中禁用Hello填充功能:
在本示例中,PE1和PE2已在它们之间设置了一个虚电路(VC)100,以便连接位于L2的路由器R1和R2。此VC是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字节的数据包,减去八个字节(MPLS服务的两个MPLS标签),等于1,492字节(允许通过的数据包大小)。 对于通过MPLS传输L2,还必须从1,492字节中减去L2报头的大小。
在本场景中,在路由器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
如图所示,超过五个IS-IS Hello数据包以完整的MTU大小(1,497字节)发送。 路由器继续发送带有填充的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填充仍处于活动状态。
在本示例中,如果链路的任一端在接口Serial 2/0上仍将MTU设置为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 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字节,则如果数据包未设置Do Not fragment(DF)位,路由器R1可以对数据包进行分段。如果数据包设置了DF位,则路由器可以发回ICMP 3/4消息,供路径MTU发现使用。这样,数据包的发送方就可以减小发送的数据包的大小。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填充(默认行为),接口Serial2/0上的IS-IS邻接关系会快速关闭。这表明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填充的时间之后出现。这加大了解决问题的难度,这要花费更多的时间。