03-ND故障处理手册
本章节下载: 03-ND故障处理手册 (243.16 KB)
设备无法学习到ND表项,导致设备无法正常转发流量。
本类故障的常见原因主要包括:
· 内存不足导致无法学习到ND表项。
· 接口物理层未正常Up。
· 接口下配置的IPv6地址与对端接口不在同一网段。
· ND报文未上送到CPU。
· 单板存在故障。
· CPU繁忙导致ND报文被丢弃。
本类故障的诊断流程如图1-1所示。
图1-1 ND表项学习失败的故障诊断流程图
(1) 通过display memory-threshold命令查看是否由于内存不足导致无法学习到ND表项。
<Sysname> display memory-threshold
Memory usage threshold: 100%
Free-memory thresholds:
Minor: 96M
Severe: 64M
Critical: 48M
Normal: 128M
Early-warning: 256M
Secure: 304M
Current free-memory state: Normal (secure)
¡ 若系统当前内存使用状态(Current free-memory state)为“Normal”或“Normal (secure)”,请继续执行第(2)步。
¡ 若系统当前内存使用状态(Current free-memory state)为“Minor”、“Severe”、“Critical”或“Normal (early-warning)”,请检查设备内存的使用情况并排查内存不足问题。
依次检查如下配置:
a. 通过display interface命令查看接口是否处于UP状态。如果接口没有处于UP状态,请排查物理接口故障问题。
b. 通过display ipv6 fib ipv6-address命令查看IPv6 FIB表项的信息,ipv6-address为ND表项的IPv6地址。如果不存在对应的IPv6 FIB表项,则说明可能路由管理模块发生故障,关于路由模块的故障排查,请参见“三层技术-IP路由类故障处理”手册。如果IPv6 FIB表中存在且转发的下一跳地址不是直连下一跳地址,则需检查设备与转发下一跳地址的连接情况。
c. 通过display ipv6 interface命令查看接口的的IPv6地址:
- 本端接口的IPv6地址是否与对端接口在同一网段。如果两端接口的IPv6地址不在同一网段,请在接口视图下执行ipv6 address命令修改两端的IPv6地址,使其在同一网段。
- 本端接口的IPv6地址是否与对端接口的IPv6地址发生冲突。如果两端接口的IPv6地址发生冲突,请在接口视图下执行ipv6 address命令修改两端的IPv6地址,使冲突消失。
- 查看对端接口是否为转发的下一跳所在的接口。
d. 通过ping ipv6命令检查链路是否存在故障。
(3) 检查IPv6报文是否正常收发。
a. 先通过debugging ipv6 packet命令打开IPv6的报文调试信息开关,再通过ping ipv6命令查看设备是否正常发送和接收IPv6报文。
<Sysname> debugging ipv6 packet
<Sysname> ping ipv6 -c 1 1::2
Ping6(56 data bytes) 1::1 --> 1::2, press CTRL+C to break
*Apr 26 11:37:33:402 2022 Sysname IP6FW/7/IP6FW_PACKET: -MDC=1;
LocalSending, version = 6, traffic class = 0,
flow label = 0, payload length = 64, protocol = 58, hop limit = 64,
Src = 1::1, Dst = 1::2,
prompt: Output an IPv6 Packet.
*Apr 26 11:37:33:402 2022 Sysname IP6FW/7/IP6FW_PACKET: -MDC=1;
Sending, interface = GigabitEthernet2/0/1, version = 6, traffic class = 0,
flow label = 0, payload length = 64, protocol = 58, hop limit = 64,
Src = 1::1, Dst = 1::2,
prompt: Sending the packet from local interface GigabitEthernet2/0/1.
以上信息表示设备在接口GigabitEthernet2/0/1上成功发送一个IPv6报文。
*Apr 26 11:37:33:402 2022 Sysname IP6FW/7/IP6FW_PACKET: -MDC=1;
LocalSending, version = 6, traffic class = 224,
flow label = 0, payload length = 32, protocol = 58, hop limit = 255,
Src = 1::1, Dst = ff02::1:ff00:2,
prompt: Output an IPv6 Packet.
*Apr 26 11:37:33:402 2022 Sysname IP6FW/7/IP6FW_PACKET: -MDC=1;
Sending, interface = GigabitEthernet2/0/1, version = 6, traffic class = 224,
flow label = 0, payload length = 32, protocol = 58, hop limit = 255,
Src = 1::1, Dst = ff02::1:ff00:2,
prompt: Sending the packet from local interface GigabitEthernet2/0/1.
56 bytes from 1::2, icmp_seq=0 hlim=64 time=19.336 ms
--- Ping6 statistics for 1::2 ---
1 packet(s) transmitted, 1 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 19.336/19.336/19.336/0.000 ms
<Sysname>*Apr 26 11:37:33:421 2022 Sysname IP6FW/7/IP6FW_PACKET: -MDC=1;
Receiving, interface = GigabitEthernet2/0/1, version = 6, traffic class = 0,
flow label = 0, payload length = 64, protocol = 58, hop limit = 64,
Src = 1::2, Dst = 1::1,
prompt: Received an IPv6 packet.
以上信息表示设备接收到IPv6报文。
*Apr 26 11:37:33:421 2022 Sysname IP6FW/7/IP6FW_PACKET: -MDC=1;
Delivering, interface = GigabitEthernet2/0/1, version = 6, traffic class = 0,
flow label = 0, payload length = 64, protocol = 58, hop limit = 64,
Src = 1::2, Dst = 1::1,
prompt: Delivering the IPv6 packet to the upper layer.
以上信息表示设备将接收到的IPv6报文上送到CPU处理。
%Apr 26 11:37:33:422 2022 Sysname PING/6/PING_STATISTICS: -MDC=1; Ping6 statistics for 1::2: 1 packet(s) transmitted, 1 packet(s) received, 0.0% packet loss, round-trip min/avg/max/std-dev = 19.336/19.336/19.336/0.000 ms.
- 若设备成功的发送和接收了IPv6报文,请继续执行第(4)步。
- 若设备没有成功的发送和接收IPv6报文,请执行第b步。
b. 通过debugging ipv6 error命令用来打开IPv6报文的错误调试信息开关,根据表1-1中的内容确认设备无法成功发送或接收IPv6报文的原因。
表1-1 debugging ipv6 error命令输出信息描述表
字段 |
描述 |
Number of IPv6 fragments exceeded the threshold. |
分片报文的数量超过了限制 |
Number of IPv6 reassembly queues exceeded the threshold. |
重组队列的数量超过了限制 |
Invalid IPv6 packet. |
IPv6报文非法 |
Failed to process the hop-by-hop extension header. |
处理报文中逐跳扩展头失败 |
Failed to process the hop-by-hop option. |
处理报文中逐跳选项失败 |
The packet was discarded by services. |
业务禁止报文 |
The packet was administratively discarded. |
IPv6报文被管理禁止 |
(4) 确认是否有单板发生故障。下面以slot1为例,通过display system internal nd statistics命令查看该单板的ND统计信息。
<Sysname> system-view
[Sysname] probe
[Sysname-probe] display system internal nd statistics slot 1
Entry statistics:
Valid : 1 Dummy : 0
Packet : 1 OpenFlow : 0
Long static : 0 Short static : 0
Temp node : 0 Rule : 0
Static statistics:
Short : 0 Long interface : 0
Long port : 0
Process statistics:
Input : 7 Resolving : 11
Error statistics:
Memory : 0 Sync : 0
Packet : 0 Parameter : 0
Anchor : 0 Get address : 0
Refresh FIB : 0 Delete FIB : 0
Realtime Sync : 0 Temp node : 0
Exceed limit : 0 Refresh rule : 0
Delete rule : 0 Smooth rule start : 0
Smooth rule end : 0 RA : 0
Origin : 0 Final RA : 0
a. 如果“input”字段不为0,请执行第(5)步。如果“input”字段为0,请排查相关单板的故障。
b. 收集“Error statistics”字段中的内容,发送给H3C技术支持工程师。
(5) 确认是否由于CPU繁忙导致ND报文被丢弃。通过view命令查看系统目录/proc/kque下的ND的相关内容,确认ND报文的丢弃情况及丢弃原因。
[Sysname-probe] view /proc/kque | in ND
0: dd0e0a00 ARP_SEND 1024/0/0/0 (0x4b515545)
0: dd0e6d00 ND_TIMER 1024/0/5/0 (0x4b515545)
0: dd0e6e00 ND_SINGLEEVENT 1/0/0/0 (0x4b515545)
0: dd0e6f00 ND_MACNOTIFYEVENT 1/0/0/0 (0x4b515545)
0: dcec4000 ND_RULE 4096/0/0/0 (0x4b515545)
0: dcec4200 ND_MICROSEGMENT 2048/0/0/0 (0x4b515545)
0: dcec4300 ND_MACNOTIFY 2048/0/0/0 (0x4b515545)
0: dcec4400 ND_MAC_EVENT 1/0/0/0 (0x4b515545)
0: d2da7800 OVERLAY_VNDEL 1/0/0/0 (0x4b515545)
0: ca5f3800 FIB6NDHRQ 1/0/0/0 (0x4b515545)
0: ca3f7600 ND_VSISUP_PKT 4096/0/0/0 (0x4b515545)
0: ca3f7400 NDSNP_PKT 4096/0/0/0 (0x4b515545)
0: ca3f7700 NDRAPG_PKT 4096/0/0/0 (0x4b515545)
0: ca3f7800 ND_EVENT 8192/0/1/0 (0x4b515545)
0: ca3f7900 ND_PKT 4096/0/1/0 (0x4b515545)
查看以上Probe信息中的“ND_PKT”字段,该字段取值表示“depth/cursize/max/drops”:
¡ “depth”为队列的容量,为固定值。
¡ “cursize”为当前队列的长度。
¡ “max”为队列的历史最大长度。
¡ “drops”为队列中丢弃的ND报文的个数。
当“drops”不为0且“max”的值与“depth”相同时,说明因CPU繁忙导致ND报文被丢弃。如果“drops”为0,请执行第(6)步。
(6) 收集ND进程的具体信息。执行display mdc命令显示MDC的相关信息,获取MDC的编号。通过display process命令查看MDC编号对应的ND进程的进程编号,根据进程编号通过view命令显示ND进程的具体信息,然后将具体信息发送给H3C技术支持工程师。
[Sysname-probe] display process name knd/1
Job ID: 55763
PID: 55763
Parent JID: 2
Parent PID: 2
Executable path: -
Instance: 0
Respawn: OFF
Respawn count: 1
Max. spawns per minute: 0
Last started: Tue Apr 26 11:32:31 2022
Process state: sleeping
Max. core: 0
ARGS: -
TID LAST_CPU Stack PRI State HH:MM:SS:MSEC Name
55763 0 0K 115 S 0:0:13:490 [kND/1]
“knd/1”中的1表示MDC的编号为1,以上显示信息中的“PID”取值表示ND进程的进程编号为55763。然后,请执行view命令显示55763号ND进程的具体信息。
[Sysname-probe] view /proc/55763/stack
[<c04c9cd4>] kepoll_wait+0x274/0x3c0
[<e2021612>] nd_Thread+0x62/0x100 [system]
[<c043f1b4>] kthread+0xd4/0xe0
[<c0401daf>] kernel_thread_helper+0x7/0x10
[<ffffffff>] 0xffffffff
(7) 请收集如下信息,并联系H3C技术支持工程师。
¡ 上述步骤的执行结果。
¡ 设备的配置文件、日志信息、告警信息。
无
无
设备收到对端设备发送到NS报文后,不回应NA报文。
本类故障的常见原因主要包括:
· 接口收到的NS报文的目的IPv6地址不是本机IPv6地址。
· 对端设备触发了源MAC地址固定的ND攻击检测功能。
· 对端设备触发了ND Detection功能。
本类故障的诊断流程如图1-2所示。
图1-2 不回应NS报文故障诊断流程图
(1) 查看ND报文信息,确认ND报文是否已上送。
a. 先通过debugging ipv6 packet命令用来打开ND的报文调试信息开关,再使用对端设备向本端发送NS报文。
<Sysname> debugging ipv6 packet
*Apr 26 13:33:34:897 2022 Sysname IP6FW/7/IP6FW_PACKET: -MDC=1;
Receiving, interface = GigabitEthernet2/0/1, version = 6, traffic class = 0,
flow label = 0, payload length = 64, protocol = 58, hop limit = 64,
Src = 1::2, Dst = 1::1,
prompt: Received an IPv6 packet.
- 如果“Dst”不是本机IPv6地址,请检查对端设备的路由表和转发表。
- 如果“Dst”是本机IP,请执行b。
b. 通过debugging ipv6 error命令用来打开ND的错误调试信息开关,根据表1-2中的内容确认设备不回应ND报文的原因。
表1-2 debugging ipv6 error命令输出信息描述表
字段 |
描述 |
Number of IPv6 fragments exceeded the threshold. |
分片报文的数量超过了限制 |
Number of IPv6 reassembly queues exceeded the threshold. |
重组队列的数量超过了限制 |
Invalid IPv6 packet. |
IPv6报文非法 |
Failed to process the hop-by-hop extension header. |
处理报文中逐跳扩展头失败 |
Failed to process the hop-by-hop option. |
处理报文中逐跳选项失败 |
The packet was discarded by services. |
业务禁止报文 |
The packet was administratively discarded. |
IPv6报文被管理禁止 |
(2) 以本端接口接口GigabitEthernet2/0/1为例,通过display ipv6 nd source-mac命令显示检测到的源MAC地址固定的ND攻击检测表项,查看对端设备的MAC是否被加入攻击表项中。
<Sysname> display ipv6 nd source-mac interface gigabitethernet 2/0/1
Source MAC VLAN ID Interface Aging time (sec) Packets dropped
23f3-1122-3344 4094 GE2/0/1 10 84467
¡ 如果存在源MAC地址固定的ND攻击检测表项,且表项的MAC地址是对端设备的MAC地址,请根据业务情况通过ipv6 nd source-mac threshold命令配置源MAC地址固定的ND报文攻击检测阈值。
¡ 如果不存在对端设备MAC地址对应的源MAC地址固定的ND攻击检测表项,请执行(3)。
(3) 通过display ipv6 nd detection statistics命令显示ND Detection丢弃ND报文的统计信息,查看对端设备是否触发了ND Detection功能。
<Sysname> display ipv6 nd detection statistics
ND packets dropped by ND detection:
Interface Packets dropped
GE2/0/1 78
¡ 如果与对端设备相连的接口丢弃的报文不为0,请检查ND Detection相关配置。
¡ 如果与对端设备相连的接口丢弃的报文为0,请执行(4)。
(4) 通过display system internal nd statistics命令显示各单板的ND统计信息,收集“Error statistics”字段中的内容,发送给H3C技术支持工程师。
(5) 以slot1为例,通过display system internal nd statistics命令显示各单板的ND统计信息,确认是否有单板发生故障。
[Sysname-probe] display system internal nd statistics slot 1
Entry statistics:
Valid : 1 Dummy : 0
Packet : 1 OpenFlow : 0
Long static : 0 Short static : 0
Temp node : 0 Rule : 0
Static statistics:
Short : 0 Long interface : 0
Long port : 0
Process statistics:
Input : 7 Resolving : 11
Error statistics:
Memory : 0 Sync : 0
Packet : 0 Parameter : 0
Anchor : 0 Get address : 0
Refresh FIB : 0 Delete FIB : 0
Realtime Sync : 0 Temp node : 0
Exceed limit : 0 Refresh rule : 0
Delete rule : 0 Smooth rule start : 0
Smooth rule end : 0 RA : 0
Origin : 0 Final RA : 0
¡ 通过“Input”字段查看单板是否正常的接收ND报文。
¡ 收集“Error statistics”字段中的内容,发送给H3C技术支持工程师。
(6) 请收集如下信息,并联系H3C技术支持工程师。
¡ 上述步骤的执行结果。
¡ 设备的配置文件、日志信息、告警信息。
无
无
设备已有ND表项但无法正常转发流量。
本类故障的常见原因主要包括:
· 平台ND表项参数异常。
· 平台ND表项没有成功下发驱动。
本类故障的诊断流程如图1-3所示。
图1-3 已有ND表项但无法转发流量故障诊断流程图
(1) 通过display system internal adj6 entry命令查看ND表项是否成功建立。
[Sysname-probe]display system internal adj6 entry 1::2 interface gigabitethernet 2/0/1
ADJ6 entry:
Entry attribute : 0x0
Service type : Ethernet
Link media type : Broadcast
Action type : Forwarding
Entry flag : 0x4
Forward type : 0x0
Slot : 0
MTU : 1500
Driver flag : 2
Sequence No : 17
Physical interface : GE2/0/1
Logical interface : N/A
Virtual circuit information : 65535
ADJ index : 0xdc780c38
Peer address : ::
Reference count : 0
Reference Sequence : 3
MicroSegmentID : 0
Nexthop driver[0] : 0xffffffff
Nexthop driver[1] : 0xffffffff
Driver context[0] : 0xffffffff
Driver context[1] : 0xffffffff
Driver context[2] : 0xffffffff
Driver context[3] : 0xffffffff
Driver context[4] : 0xffffffff
Driver context[5] : 0xffffffff
Link head information(IPv6) : 68cb9c3f020668cb978f010686dd
Link head information(MPLS) : 68cb9c3f020668cb978f01068847
以接口GigabitEthernet2/0/1,对端IPv6地址为1::2为例:
¡ 如果“Action type”字段为“Forwarding”,则代表设备正常转发来自1::2的流量,设备无故障。
¡ 如果“Action type”字段为“Drop”,则代表没有成功建立ND表项。
- 如果“Driver flag”字段为“4”,代表驱动资源不足,请检查驱动的使用情况。
- 如果“Driver flag”字段不为“4”,请继续执行第(2)步。
(2) 通过debugging system internal adj6命令并指定hardware参数打开IPv6邻接表下驱动调试功能,然后通过ping ipv6命令触发ND表项的学习,查看ND表项是否成功下发到驱动。
[Sysname-probe] debugging system internal adj6 hardware
[Sysname-probe] ping ipv6 -c 1 1::2
Ping6(56 data bytes) 1::1 --> 1::2, press CTRL+C to break
56 bytes from 1::2, icmp_seq=0 hlim=64 time=2.868 ms
--- Ping6 statistics for 1::2 ---
1 packet(s) transmitted, 1 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 2.868/2.868/2.868/0.000 ms
<Sysname>*Apr 26 16:06:42:412 2022 Sysname IP6PMTU/7/IP6PMTU_DBG: -MDC=1; Binding socket to PMTU succeeded
*Apr 26 16:06:42:412 2022 Sysname IP6FW/7/IP6FW_PACKET: -MDC=1;
LocalSending, version = 6, traffic class = 0,
flow label = 0, payload length = 64, protocol = 58, hop limit = 64,
Src = 1::1, Dst = 1::2,
prompt: Output an IPv6 Packet.
*Apr 26 16:06:42:412 2022 Sysname IP6FW/7/IP6FW_PACKET: -MDC=1;
Sending, interface = GigabitEthernet2/0/1, version = 6, traffic class = 0,
flow label = 0, payload length = 64, protocol = 58, hop limit = 64,
Src = 1::1, Dst = 1::2,
prompt: Sending the packet from local interface GigabitEthernet2/0/1.
*Apr 26 16:06:42:413 2022 Sysname IP6FW/7/IP6FW_PACKET: -MDC=1;
LocalSending, version = 6, traffic class = 224,
flow label = 0, payload length = 32, protocol = 58, hop limit = 255,
Src = 1::1, Dst = ff02::1:ff00:2,
prompt: Output an IPv6 Packet.
*Apr 26 16:06:42:413 2022 Sysname IP6FW/7/IP6FW_PACKET: -MDC=1;
Sending, interface = GigabitEthernet2/0/1, version = 6, traffic class = 224,
flow label = 0, payload length = 32, protocol = 58, hop limit = 255,
Src = 1::1, Dst = ff02::1:ff00:2,
prompt: Sending the packet from local interface GigabitEthernet2/0/1.
*Apr 26 16:06:42:414 2022 Sysname IP6FW/7/IP6FW_PACKET: -MDC=1;
Receiving, interface = GigabitEthernet2/0/1, version = 6, traffic class = 224,
flow label = 0, payload length = 32, protocol = 58, hop limit = 255,
Src = 1::2, Dst = 1::1,
prompt: Received an IPv6 packet.
*Apr 26 16:06:42:414 2022 Sysname ADJ6/7/ADJ6_HARDWARE: -MDC=1;
====Start ADJLINK Add====
*Apr 26 16:06:42:414 2022 Sysname ADJ6/7/ADJ6_HARDWARE: -MDC=1;
--------------New Entry-------------
Service type : Ethernet
Link media type : Broadcast
Action type : Forwarding
IPv6 address : 1::2
Route interface : GE2/0/1
Port interface : N/A
Slot : 0
MTU : 1500
VLAN id : 65535
Second VLAN id : 65535
Physical interface : GE2/0/1
Logical interface : N/A
Vrf index : 0
VSI index : -1
VSI link ID : 65535
Usr ID : -1
MAC address : 68cb-9c3f-0206
Link head length(IPv6) : 14
Link head length(MPLS) : 14
Link head information(IPv6) : 68cb9c3f020668cb978f010686dd
Link head information(MPLS) : 68cb9c3f020668cb978f01068847
Nexthop driver
[0]: 0xffffffff [1]: 0xffffffff
Driver context
[0]: 0xff
*Apr 26 16:06:42:414 2022 Sysname ADJ6/7/ADJ6_HARDWARE: -MDC=1;
====End ADJLINK Operate====
Result : 0x0, Reference flag : 0x0, Syn flag : 0x0
*Apr 26 16:06:42:415 2022 Sysname IP6FW/7/IP6FW_PACKET: -MDC=1;
Receiving, interface = GigabitEthernet2/0/1, version = 6, traffic class = 0,
flow label = 0, payload length = 64, protocol = 58, hop limit = 64,
Src = 1::2, Dst = 1::1,
prompt: Received an IPv6 packet.
*Apr 26 16:06:42:415 2022 Sysname IP6FW/7/IP6FW_PACKET: -MDC=1;
Delivering, interface = GigabitEthernet2/0/1, version = 6, traffic class = 0,
flow label = 0, payload length = 64, protocol = 58, hop limit = 64,
Src = 1::2, Dst = 1::1,
prompt: Delivering the IPv6 packet to the upper layer.
%Apr 26 16:06:42:416 2022 Sysname PING/6/PING_STATISTICS: -MDC=1; Ping6 statistics for 1::2: 1 packet(s) transmitted, 1 packet(s) received, 0.0% packet loss, round-trip min/avg/max/std-dev = 2.868/2.868/2.868/0.000 ms.
*Apr 26 16:06:42:417 2022 Sysname IP6PMTU/7/IP6PMTU_DBG: -MDC=1; Unbinding PMTU from socket succeeded
¡ 如果“Result”字段为“0x0”,则代表ND表项成功下发到驱动,请继续执行第(3)步。
¡ 如果“Result”字段不为“0x0”,则代表ND表项没有下发到驱动,请检查硬件资源的使用情况。
(3) 请执行如下命令,并收集显示信息,发送给H3C技术支持工程师。
¡ 执行debugging system internal adj6命令并指定notify参数。
¡ 通过debugging system internal ipv6 fib prefix命令。
(4) 请收集如下信息,并联系H3C技术支持工程师。
¡ 上述步骤的执行结果。
¡ 设备的配置文件、日志信息、告警信息。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!