菜鸟科技网

华为debug命令

在使用 debug 命令之前,请务必阅读以下重要原则

华为debug命令-图1
(图片来源网络,侵删)

⚠️ 重要警告:使用 debug 的黄金法则

  1. 生产环境慎用:在业务高峰期或关键生产设备上,绝对避免使用 debug,它会使 CPU 占用率飙升,可能导致设备处理数据包能力下降、丢包、甚至瘫痪。
  2. 非必要不使用debug 是最后的手段,应首先尝试使用 displaypingtracert 等非侵入性命令进行诊断。
  3. 最小化原则:如果必须使用,请精确地调试你关心的功能,避免使用 debugging all 这样的宽泛命令。
  4. 随时准备停止:在输入 debug 命令后,应时刻关注设备的 CPU 和内存使用率,一旦达到预期目的或发现问题,立即停止 debug
  5. 做好备份:在进行任何可能导致配置变更的操作(包括开启 debug)前,建议备份当前配置。

如何开启和关闭 Debug

debug 命令本身不会立即生效,它需要配合 debugging 命令来开启,使用 undo debuggingundo terminal monitor 来关闭。

基本语法

# 进入系统视图
system-view
# 开启某个功能的调试信息
debugging [功能模块] [具体参数]
# 关闭所有调试信息(最常用、最安全的关闭方式)
undo debugging all
# 或者,关闭终端的实时信息输出(如果调试信息打印到终端)
undo terminal monitor

常用 Debug 命令示例

以下是一些常见的应用场景和对应的 debug 命令,这些命令需要在相应的视图下执行。

场景 1:调试 OSPF 路由协议

当你怀疑 OSPF 邻居关系无法建立或路由信息不正确时,可以调试 OSPF 的报文交互。

# 进入系统视图
system-view
# 开启 OSPF 报文调试(LSA、Hello、DBD 等都会打印)
debugging ospf packet
# 开启 OSPF 事件调试(邻居状态变化等)
debugging ospf event
# 开启 OSPF LSA 调试
debugging ospf lsa
# 停止所有 OSPF 调试
undo debugging ospf

场景 2:调试 BGP 路由协议

当你怀疑 BGP 邻居关系(Session)问题或路由通告/接收有问题时。

华为debug命令-图2
(图片来源网络,侵删)
# 进入系统视图
system-view
# 开启 BGP 事件调试(邻居状态机变化、错误等)
debugging bgp event
# 开启 BGP 报文调试(Open、Update、Keepalive、Notification 等)
debugging bgp packet
# 停止所有 BGP 调试
undo debugging bgp

场景 3:调试数据转发

当你怀疑特定数据包没有被正确转发时,可以调试数据包的转发过程,这通常很消耗资源,请谨慎使用。

# 进入系统视图
system-view
# 调试所有数据包的转发过程(极其消耗性能,仅在实验室环境使用)
debugging forwarding packet
# 调试特定源/目的 IP 地址的数据包转发
# 假设源IP为 192.168.1.100, 目的IP为 10.1.1.1
debugging forwarding packet source-ip 192.168.1.100 destination-ip 10.1.1.1
# 停止所有数据转发调试
undo debugging forwarding

场景 4:调试 DHCP 服务

当客户端无法获取 IP 地址时,可以调试 DHCP 服务器的交互过程。

# 进入系统视图
system-view
# 开启 DHCP 服务器调试
debugging dhcp server packet
# 开启 DHCP 服务器事件调试
debugging dhcp server event
# 停止所有 DHCP 调试
undo debugging dhcp

场景 5:调试 NAT 地址转换

当内网用户无法访问外网时,可以调试 NAT 的转换过程。

# 进入系统视图
system-view
# 开启 NAT 表项调试
debugging nat session
# 开启 NAT 报文调试
debugging nat packet
# 停止所有 NAT 调试
undo debugging nat

场景 6:调试二层接口(如 STP、MAC 地址)

# 进入系统视图
system-view
# 调 spanning tree protocol (STP) 事件
debugging stp event
# 调接口 MAC 地址学习和老化
debugging mac-address all  # 调所有 MAC 地址事件
debugging mac-address interface GigabitEthernet 0/0/1 # 调特定接口
# 停止二层相关调试
undo debugging stp
undo debugging mac-address

如何查看 Debug 输出

debug 命令的输出默认会实时打印到你的终端上,如果信息量太大,屏幕会快速刷新,导致你看不清。

华为debug命令-图3
(图片来源网络,侵删)
  1. 使用 terminal monitor 这个命令用于开启终端的实时信息显示功能,当你通过 Telnet/SSH 登录时,默认是开启的,如果突然看不到输出了,可能是被关闭了。

    # 开启终端实时信息显示
    terminal monitor
    # 关闭终端实时信息显示(可以用来暂停查看,但推荐用 undo debugging all)
    undo terminal monitor
  2. 使用 logfile 命令将日志保存到文件 这是在生产环境中进行复杂故障排查的推荐做法,可以避免信息刷屏,并且方便后续分析。

    # 进入系统视图
    system-view
    # 设置日志文件路径、大小和级别
    # 将日志保存到 /var/log/debug.log,最大 10MB,级别为 Informational (6)
    logbuffer size 10240
    logfile user-debug logfile-size 10240 level 6
    # 开启日志功能
    logfile switch on
    # 现在开始执行你的 debug 命令,所有输出都会被记录到文件中
    debugging ospf packet
    # ... 完成排查后 ...
    undo debugging all
    logfile switch off

如何安全地关闭 Debug

这是最关键的一步。

  1. 首选命令

    undo debugging all

    这个命令会停止所有正在运行的 debug 进程,是安全、彻底的关闭方式。

  2. 备用命令

    undo terminal monitor

    这个命令只是停止在你的终端上显示调试信息,但 debug 进程可能仍在后台运行,继续消耗资源。除非你知道你在做什么,否则不要只使用这个命令。

  3. 检查: 在关闭 debug 后,可以使用 display cpu-usage 命令查看 CPU 占用率是否恢复正常。

步骤 命令/操作 说明
准备 system-view 进入系统视图,评估风险,非必要不操作。
开启 terminal monitor (可选) 确保终端能显示信息。
开启 debugging [具体功能] 精准开启你需要的调试功能。
观察 实时查看终端或日志文件 观察输出,分析问题。
关闭 undo debugging all 立即停止所有调试进程!
验证 undo terminal monitor (可选) 停止终端信息显示。
检查 display cpu-usage 确认设备资源已恢复正常。

再次强调,debug 是一个强大的工具,但必须谨慎使用,对于绝大多数网络问题,熟练掌握 display 系列命令已经足够解决。

分享:
扫描分享到社交APP
上一篇
下一篇