02-IS-IS故障处理手册
本章节下载: 02-IS-IS故障处理手册 (239.44 KB)
· IS-IS邻居Down。
· IS-IS邻居关系震荡。
本类故障的常见原因主要包括:
· 设备底层故障或者链路故障,导致IS-IS无法正常的收发Hello报文。
· 链路两端的设备配置的System ID相同。
· 链路两端接口的MTU设置不一致,或者接口的MTU小于发送的Hello报文的长度。
· 链路两端接口的IP地址不在同一网段。
· 链路两端的IS-IS接口认证方式不匹配。
· 链路两端的IS-IS Level不匹配。
· 建立IS-IS Level-1邻居时,链路两端设备的区域地址不匹配。
本类故障的诊断流程如图1-1所示。
图1-1 IS-IS邻居无法建立的故障诊断流程图
请执行display interface [ interface-type [ interface-number | interface-number.subnumber ] ]命令查看IS-IS接口物理层的状态是否为UP。
¡ 如果接口物理层的状态为DOWN,说明接口故障,请首先解决此问题。
¡ 如果接口物理状态为UP,请执行步骤2。
请执行ping命令,检查链路是否故障。如果链路正常,请执行步骤3。
如果IS-IS使用BFD检测设备间链路,通过isis bfd session-restrict-adj命令开启BFD抑制IS-IS建立和保持邻接关系的功能后,接口发送的Hello报文中将会携带BFD-enabled TLV,当两端BFD-enabled TLV中的信息一致时,抑制IS-IS建立和保持邻居关系的功能生效。当BFD会话Down时,无法建立IS-IS邻居关系。
请执行display bfd session命令查看检测IS-IS两端链路的BFD会话的状态,如果“State”字段取值为“Down”,请排除链路故障。如果“State”字段取值为“Up”,请执行步骤3。
(3) 检查CPU或内存利用率是否过高。
¡ 请执行display cpu-usage命令检查CPU利用率。如果设备的主控板和接口板的CPU利用率过高,IS-IS将无法正常收发协议报文,从而导致邻居关系震荡。可通过关闭一些不必要的功能解决此问题。如果CPU利用率不高,则执行步骤4。
¡ 请执行display memory-threshold命令,查看显示信息中的Current free-memory state,即系统当前内存使用状态。如果Current free-memory state为Minor、Severe或Critical,表示剩余空闲内存较少,可能会导致设备无法收发IS-IS报文或处理IS-IS报文速度较慢,请关闭一些不必要的功能尝试解决此问题。如果系统当前内存使用状态为Normal,则执行步骤4。
(4) 检查接口在IS-IS协议下的状态是否正常。
a. 请执行display current-configuration interface interface-type interface-number命令检查接口是否使能了IS-IS功能。
- 如果未使能IS-IS功能,请通过isis enable命令在对应的接口上使能IS-IS功能。
- 如果已使能IS-IS功能,请执行下一步。
b. 请执行display isis interface命令,检查使能了IS-IS的接口的状态(“IPv4 state”或“IPv6 state”字段)是否为正常状态。
- 如果IS-IS接口状态为“Lnk:Up/IP:Dn”,说明IPv4或IPv6相邻节点的链路层可达、网络层不可达,请处理网络层故障问题。
- 如果IS-IS接口状态为“Up”,请执行步骤5。
(5) 检查两端IP地址是否在同一网段。
对于IPv4 IS-IS,请执行display interface brief命令查看两端接口的IPv4地址。
¡ 如果两端接口的IPv4地址不在同一网段,请在接口视图下执行ip address命令修改两端的IPv4地址,使其在同一网段。
¡ 如果两端接口的IPv4地址处于同一网段,请执行步骤6。
对于IPv6 IS-IS,无需执行此检查。
(6) 检查各IS-IS接口的MTU是否一致。
请执行display interface [ interface-type [ interface-number | interface-number.subnumber ] ]命令查看接口MTU信息。
¡ 如果接口的MTU值配置不一致,请在接口视图下执行mtu size命令,将各个接口的MTU值修改为一致。
¡ 如果接口的MTU值一致,请执行步骤7。
(7) 检查IS-IS能否接收到Hello报文。
请执行display isis packet hello by-interface verbose命令,检查IS-IS能否接收到Hello报文。如果设备无法接收Hello报文,请排除丢包问题。如果故障依然存在,请执行步骤12。
如果设备能够接收Hello报文,请继续执行以下检查:
¡ 如果“Duplicate system ID”字段的统计计数随时间增长,说明System ID冲突。请执行步骤8。
¡ 如果“Mismatched level (LAN)”字段的统计计数随时间增长,说明Level不匹配。请执行步骤9。
¡ 如果“Bad area address TLV”字段的统计计数随时间增长,说明区域地地址不匹配。请执行步骤10。
¡ 如果其他字段的统计计数随时间增长,请执行步骤12。
(8) 检查链路两端的设备配置的System ID是否相同。
请执行display current-configuration configuration isis命令检查链路两端的设备配置的System ID是否相同。
¡ 如果链路两端的设备配置的System ID相同,请通过network-entity命令修改配置,使两端的System ID不同。
¡ 如果两端System ID不相同,请执行步骤9。
(9) 检查链路两端的设备的IS-IS Level是否匹配。
请检查设备及IS-IS接口的Level级别:
¡ 请执行display current-configuration | include is-level命令,检查链路两端设备的Level级别。如果通过display current-configuration | include is-level命令无法查询到设备的Level级别的相关配置,表明设备的Level级别为缺省值为Level-1-2。
¡ 请执行display current-configuration interface interface-type interface-number | include circuit-level命令,检查接口的链路邻接关系类型。如果通过display current-configuration interface interface-type interface-number | include circuit-level命令无法查询到接口的链路邻接关系类型,说明接口的链路邻接关系类型为缺省值,这种情况下,该接口既可以建立Level-1的邻接关系,也可以建立Level-2的邻接关系。
需要保证链路两端的Level匹配才能建立IS-IS邻居关系,接口Level匹配的原则如下:
¡ 若本端接口的级别为Level-1,则对端接口的级别必须是Level-1或Level-1-2。
¡ 若本端接口的级别为Level-2,则对端接口的级别必须是Level-2或Level-1-2。
¡ 若本端接口的级别为Level-1-2,则对端接口的级别可以是Level-1、Level-2或Level-1-2。
对于不同的情况,请选择不同的处理方式:
¡ 如果链路两端设备的IS-IS Level不匹配,请在IS-IS视图下使用is-level命令修改设备的IS-IS级别,或者在接口视图下使用isis circuit-level命令修改接口的Level级别。
¡ 如果链路两端设备的IS-IS Level匹配,请执行步骤10。
请执行display isis命令查看“Network entity”字段,检查链路两端设备的区域地址是否匹配。“Network entity”的格式为X…X.XXXX.XXXX.XXXX.00,前面的“X…X”是区域地址,中间的12个“X”是交换机的System ID,最后的“00”是SEL。
¡ 如果链路两端的设备建立Level-1的邻居关系,则它们必须在同一区域内。如果链路两端的设备建立的是Level-2邻居关系,则无需检查区域地址是否一致。
当建立Level-1邻居的两端设备区域地址不同时,请在IS-IS视图下使用network-entity命令修改设备的区域地址。
¡ 如果链路两端区域地址匹配,请执行步骤11。
请执行display current-configuration interface-type interface-number | include isis命令检查链路两端设备IS-IS接口的认证方式。
a. 如果两端认证类型不匹配,请在链路两端设备的IS-IS接口视图下执行isis authentication-mode命令,将两端设置为相同的认证类型。
b. 如果认证方式相同的情况下,IS-IS仍然无法建立邻居关系,请将两端设置为相同的认证密码。
如果故障依然存在,请执行步骤12。
(12) 如果故障仍然未能排除,请收集如下信息,并联系技术支持人员。
¡ 上述步骤的执行结果。
¡ 设备的配置文件、日志信息、告警信息。
模块名:ISIS-MIB
· isisAdjacencyChange (1.3.6.1.2.1.138.0.17)
· ISIS/3/ISIS_NBR_CHG
设备学习不到IS-IS路由。
本类故障的常见原因主要包括:
· IS-IS协议和其它路由协议发布相同的路由,并且其他协议的优先级高于IS-IS协议。
· 引入的外部路由优先级低,没有被优选。
· 引入的外部路由类型不同,没有被优选。
· IS-IS开销值类型不匹配。
· IS-IS邻居没有正常建立。
· 两台设备的System ID配置相同。
· LSP报文认证不匹配。
· 设备底层故障或者链路故障,造成LSP报文丢失。
· LSP长度超过了设备可以接收的LSP的最大长度。
本类故障的诊断流程如图1-2所示。
图1-2 设备学习不到IS-IS路由的故障诊断流程图
(1) 检查IS-IS路由表是否正确。
请执行display isis route命令,查看IS-IS路由表。
¡ 如果IS-IS路由表中存在指定的路由,请执行display ip routing-table ip-address [ mask | mask-length ] verbose命令查看IP路由表中是否存在协议优先级比IS-IS高的路由。
- 如果存在协议优先级比IS-IS高的路由,请根据网络规划调整配置。
- 如果不存在协议优先级比IS-IS高的路由,请执行步骤7。
¡ 如果IS-IS路由表中不存在指定的路由,请执行步骤2。
(2) 检查指定的IS-IS路由是否发布。
(3) 在发布指定路由的设备上,执行display isis lsdb verbose local命令,查看本地产生的LSP报文中是否携带了指定路由。
¡ 如果LSP报文中没有携带指定的路由,请检查IS-IS配置是否正确,例如接口是否使能IS-IS。如果指定的路由是IS-IS引入的外部路由,请执行display ip routing-table protocol protocol verbose命令查看该路由的“State”字段,当“State”字段的取值中包含“Inactive”时,说明外部路由处于非激活状态,这种情况下,IS-IS不会将此路由发布出去。请检查外部路由的配置,使该路由的“State”取值包含“Active”和“Adv”。
¡ 如果LSP报文中携带了指定的路由,请执行步骤3。
(4) 检查指定的IS-IS路由的开销类型是否一致。
(5) 多台设备通过路由引入的方式发布到达同一目的地的路由,并希望这些外部路由形成等价路由的场景中,需要检查IS-IS引入路由的开销类型是否一致。不同的开销类型的路由开销值不同,具体如下:
¡ 如果开销类型为external,那么IS-IS通过LSP发布引入的外部路由时,该路由的开销值为原有开销值+64。
¡ 如果开销类型为internal,那么IS-IS通过LSP发布引入的外部路由时,该路由的开销值为原有开销值。
(6) 缺省情况下,我司设备引入的外部路由的开销类型为external。如果其他厂商设备引入外部路由的开销类型与我司缺省情况不同,会导致到达同一目的地的路由开销不同。邻居设备会优选开销最小的路由。对于这种情况,请修改引入外部路由的开销类型,保证各厂商设备引入外部路由的开销类型相同。修改我司设备引入外部路由的开销类型的步骤如下:
a. 在发布指定路由的设备上,执行display current-configuration configuration isis命令检查IS-IS引入外部路由的配置。
b. 通过import-route命令修改引入外部路由的开销类型。
(7) 上述情况外的其他情况,请执行步骤4。
(8) 检查IS-IS的数据库是否同步。
(9) 在学习不到IS-IS路由的设备上,执行display isis lsdb命令,查看是否收到发布指定路由的设备的LSP报文。
¡ 如果LSDB数据库中不存在指定的LSP报文,请排查是否存在链路故障。如果不存在链路故障,请通过display isis命令查看“LSP length receive”字段的取值,判断指定的LSP报文长度是否超过了设备可以接收的LSP报文的最大长度。当“LSP length receive”字段的取值超过了设备可以接收的LSP报文的最大长度时,请在生成LSP的设备上通过lsp-length originate命令将生成LSP报文的最大长度配置为该区域内所有IS-IS接口MTU的最小值。
¡ 如果LSDB数据库中存在指定的LSP报文,但“Seq Num”字段值与发布该LSP的设备上执行display isis lsdb local verbose命令查看到的“Seq Num”字段值不一致,并且Seq Num持续增加,说明网络中存在另一设备的System ID与发布该路由的设备的System ID相同。请排查并修改网络中设备的System ID配置。
¡ 如果LSDB数据库中存在指定的LSP报文,但“Seq Num”字段值与发布该LSP的设备上执行display isis lsdb local verbose命令查看到的“Seq Num”字段值不一致,并且始终保持不变,可能是在传输过程中因为链路故障等原因导致LSP报文被丢弃,请排查设备的底层链路以及中间链路是否存在故障。
¡ 如果LSDB数据库中存在指定的LSP报文,并且Seq Num与发布该LSP的设备上通过display isis lsdb local verbose命令显示的Seq Num一致,请执行步骤5。
(10) 检查IS-IS开销值类型是否匹配。
(11) 分别在发布路由的设备和学习不到路由的设备上,执行display isis命令,查看“Cost style”的取值,检查两端的IS-IS开销值类型是否匹配。只有开销值类型相同时,才能学到路由。
¡ 如果链路两端设备的IS-IS开销值类型不匹配,请在IS-IS视图下执行cost-style命令修改配置。
¡ 如果两端设备的IS-IS开销值类型匹配,请执行步骤6。
(12) 检查IS-IS邻居是否正常建立。
(13) 在路径上的每一台设备上执行display isis peer命令,查看IS-IS邻居是否都正常建立。
¡ 如果存在邻居没有正常建立的情况,请参见“IS-IS邻居无法建立”排除故障。
¡ 如果不存在邻居未能正常建立的情况,请执行步骤7。
(14) 如果故障仍然未能排除,请收集如下信息,并联系技术支持人员。
¡ 上述步骤的执行结果。
¡ 设备的配置文件、日志信息、告警信息。
无
无
IS-IS路由反复增删。
本类故障的常见原因主要包括:
· IS-IS邻居震荡。
· MPLS LSP隧道震荡。
· 在建立IS-IS邻居的两台设备上引入了相同的外部路由,而且引入的外部路由的优先级低于IS-IS协议的优先级低。
· 两台设备配置的System ID相同。
本类故障的诊断流程如图1-3所示。
图1-3 IS-IS路由震荡的故障诊断流程图
(1) 检查路由震荡的情况。
执行display ip routing-table ip-address verbose命令,查看路由震荡的具体情况,具体步骤如下:
¡ 如果路由震荡的前后,“TunnelID”字段发生了变化,请检查MPLS LSP隧道是否存在震荡。
执行display mpls lsp verbose命令,通过“Last Chg Time”字段查看LDP的LSP最近一次状态变化的时间。如果最近一次变化的时间距离执行display mpls lsp verbose命令的时间较近,说明MPLS LSP隧道存在震)。
对于这种情况,请参考LDP LSP震荡的定位思路或TE Tunnel由Up突然变Down的定位思路,排查LSP震荡问题。
¡ 如果路由的“Cost”或者“Interface”字段发生变化,请检查该路由路径上的IS-IS邻居是否在震荡。
¡ 如果在路由表中某条IS-IS路由的Age字段频繁置为0并重新计数,导致该路由时有时无,请执行display isis lsdb verbose命令来查找携带该路由的LSP,并记录此LSP报文的LSPID。然后,执行display isis lsdb verbose lsp-id命令查看这条LSP的更新情况。
- 如果LSP中始终包含指定的路由,请检查该路由路径上的IS-IS邻居是否震荡。
- 如果发现LSP的“Seq Num”字段值不断增加,同时LSP更新前的内容和LSP更新后的内容差异很大,请检查网络中是否存在两台配置了相同System ID的设备。
- 如果发现LSP的“Seq Num”字段值不断增加,同时在LSP更新前后,指定的路由时有时无,请定位生成该LSP的设备,并在该设备上执行步骤2。
¡ 如果路由的“Protocol”字段发生变化,请执行步骤2。
(2) 检查IS-IS引入外部路由的配置。
如果指定的路由是作为外部路由引入到IS-IS的,在引入该路由的设备上,执行display ip routing-table ip-address verbose命令,查看路由震荡的具体情况,具体步骤如下:
¡ 如果路由表中处于“Active”状态的路由是IS-IS路由,而不是IS-IS引入的外部路由,说明网络中其他IS-IS设备发布了相同的路由。请根据网络规划修改路由协议的优先级,或者,在引入外部路由的IS-IS设备上配置路由过滤策略,控制下发到IP路由表的路由。
¡ 对于其它情况,请执行步骤3。
(3) 如果故障仍然未能排除,请收集如下信息,并联系技术支持人员。
¡ 上述步骤的执行结果。
¡ 设备的配置文件、日志信息、告警信息。
无
无
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!