在华为设备上使用 debugging命令时,设置过滤条件至关重要。这能帮你精准捕获特定流量,避免被海量信息淹没,同时减轻设备性能压力。
下面我将通过具体场景,为你说明如何设置过滤条件,并提供详细的华为命令解析。
核心过滤方法概览
过滤目标 |
核心方法 |
关键命令/参数 |
特定协议类型 |
使用 debugging packet filter按协议层过滤 |
debugging packet filter L2 { application|link },debugging packet filter L3 { transport|ipv4|application } |
特定流量方向 |
使用 debugging packet filter按流量方向过滤 |
debugging packet filter { ingress|egress } |
特定对等体 |
在 debugging命令中直接指定对等体IP地址 |
debugging bgp packet update receive peer <ip-address> |
特定路由前缀 |
结合路由策略(Route-Policy)和前缀列表(ip ip-prefix)标记路由,再过滤 |
ip ip-prefix, route-policy, apply community, if-match community |
基于组件和进程 |
使用 debug log filter进行高级过滤 |
debug log filter filterid [ process processid|comp compid ] filtercond |
输出到文件 |
将调试信息输出到文件,提高可靠性 |
debug log output file on |
常用过滤配置示例
1. 精准监控发往/来自特定对等体的BGP更新
这是最直接的方法,在 debugging命令中直接指定对等体的IP地址。
# 进入系统视图和诊断视图
<HUAWEI> system-view
[HUAWEI] diagnose# 监控从对等体10.1.1.2接收到的BGP更新报文
[HUAWEI-diagnose] debugging bgp packet update receive peer 10.1.1.2# 监控向对等体10.1.1.2发送的BGP更新报文
[HUAWEI-diagnose] debugging bgp packet update send peer 10.1.1.2# (强烈推荐)设置调试超时自动关闭,例如10分钟
[HUAWEI-diagnose] debugging timeout 10
关键命令解析:
debugging bgp packet update receive peer 10.1.1.2: 此命令仅监控从指定对等体(10.1.1.2)接收到的BGP更新报文。
debugging bgp packet update send peer 10.1.1.2: 此命令仅监控向指定对等体(10.1.1.2)发送的BGP更新报文。
debugging timeout 10: 此命令设置调试功能在10分钟后自动关闭,这是防止忘记关闭调试而影响设备性能的重要安全措施。
2. 监控特定路由前缀的更新(高级方法)
如果想监控特定的路由前缀(无论来自哪个对等体),可以结合路由策略为其标记一个团体属性,然后调试这个团体属性。
# 创建前缀列表,匹配感兴趣的路由(例如192.168.1.0/24)
[HUAWEI] ip ip-prefix PREFIX_192.168.1.0 index 10 permit 192.168.1.0 24
# 创建路由策略,为匹配的路由添加一个唯一的团体属性值(例如999:999)
[HUAWEI] route-policy MARK_DEBUG permit node 10
[HUAWEI-route-policy] if-match ip-prefix PREFIX_192.168.1.0
[HUAWEI-route-policy] apply community 999:999 additive
[HUAWEI-route-policy] quit
# 在BGP入方向应用路由策略(此策略应在路由注入BGP的地方应用)
[HUAWEI] bgp 100
[HUAWEI-bgp] peer 10.1.1.2 route-policy MARK_DEBUG import
# 创建团体过滤器,匹配之前设置的团体属性
[HUAWEI] ip community-filter 1 permit 999:999
# (在诊断视图中)开启调试并尝试过滤(具体命令可能因设备平台和版本而异,建议查阅设备特定文档)
[HUAWEI] diagnose
[HUAWEI-diagnose] debug log filter 1 comp <BGP_Component_ID> filtercond 999:999 on
关键命令解析:
ip ip-prefix: 创建前缀列表,用于匹配感兴趣的路由。
route-policy+ if-match ip-prefix+ apply community: 创建路由策略,为匹配前缀列表的路由添加一个唯一的团体属性(如999:999)作为“标记”
ip community-filter: 创建团体属性过滤器,匹配之前标记的团体属性。
debug log filter: 这是一个强大但复杂的命令,用于设置Debugging信息的过滤规则,仅输出包含特定条件(如团体属性值)的信息。使用前最好查阅设备的特定型号文档或咨询华为技术支持,因为其参数和可用性可能因平台和版本而异 。
3. 按协议类型和流量方向过滤
使用 debugging packet filter可以按协议层和方向进行过滤。
# 过滤链路层协议报文的调试信息
<HUAWEI> debugging packet filter L2 link
# 过滤IPv4协议报文的调试信息
<HUAWEI> debugging packet filter L3 ipv4
# 过滤入接口的协议报文调试信息
<HUAWEI> debugging packet filter ingress
# 过滤出接口的协议报文调试信息
<HUAWEI> debugging packet filter egress
关键命令解析:
debugging packet filter L2 link: 此命令过滤链路层协议报文的调试信息。
debugging packet filter L3 ipv4: 此命令过滤IPv4协议报文的调试信息。
debugging packet filter ingress: 此命令过滤入接口的协议报文调试信息。
debugging packet filter egress: 此命令过滤出接口的协议报文调试信息 。
设置后,可执行 display debugging packet all查看终端将打印哪些协议报文的调试信息。
4. 将调试输出重定向到文件
默认情况下,Debugging信息输出到信息中心。当输出速率很高时,为避免信息中心丢包,可输出到文件。
# 进入诊断视图并设置Debugging信息输出到文件
<HUAWEI> system-view
[HUAWEI] diagnose
[HUAWEI-diagnose] debug log output file on
关键命令解析:
debug log output file on: 此命令配置设备将Debugging信息输出到缓冲区,再写入文件(文件名通常为 ssp_debug_chassis%d_slot%d_loc%d.log),这可以提高可靠性,避免高速调试信息被信息中心丢弃 。
重要注意事项
1.性能影响: debugging命令会大量消耗设备CPU和内存资源,严禁在生产环境长时间开启。务必使用 debugging timeout <minutes>设置超时自动关闭 。
2.精准过滤: 尽量使用最具体的过滤条件(如指定对等体IP),避免使用宽泛的 debugging ... all命令。
3.检查设备支持: 不同型号的华为设备或不同版本的VRP系统,其调试命令的参数和支持的过滤方式可能略有差异。最可靠的方法是查阅对应设备型号和软件版本的官方命令参考。
4.谨慎使用高级过滤: debug log filter等高级过滤功能非常强大,但也比较复杂,使用前务必查阅相关文档。
5.及时关闭: 获取所需信息后,立即使用 undo debugging all关闭所有调试功能。
总结
在华为设备上精确捕获特定流量,关键在于分层、分维度地设置过滤条件:
1.最直接方法:在 debugging命令中直接指定对等体IP地址(peer <ip-address>),这是最快且高效的方式 。
2.高级方法:对于复杂需求(如监控特定路由前缀),可结合路由策略和团体属性进行标记,并尝试使用 debug log filter等高级命令进行过滤(需谨慎,并查阅设备文档) 。
3.基础过滤:使用 debugging packet filter按协议类型(L2, L3)和方向(ingress, egress)进行基础过滤 。
4.保障措施:始终设置 debugging timeout并考虑将输出重定向到文件(debug log output file on),以确保设备稳定性和信息完整性 。
希望这些信息和示例能帮助你在华为设备上更精准、更安全地使用 debugging命令进行故障排查。