在H3C安全设备上调试并查看会话,核心思路是:先用 display session table 快速筛选,如果找不到,再用 debugging 命令配合精确的 ACL 来跟踪报文处理流程。
第一步:优先使用 display 命令快速筛查
display 命令对设备性能影响最小,是首选。
# 查看所有IPv4会话的详细信息(推荐)
display session table ipv4 verbose
# 精确筛选指定源和目的IP的会话(最常用)
display session table ipv4 source-ip 192.168.1.100 destination-ip 10.1.1.1 verbose
# 仅根据源IP筛选
display session table source-ip 192.168.1.100
执行 display session table 时,务必加上 verbose 参数,才能看到完整的源/目的IP、端口、协议以及命中的安全策略。
第二步:启用 debugging 调试开关
如果 display 命令查不到预期的会话,说明报文可能在更早的阶段就被丢弃了,需要用 debugging 来跟踪。
1. 开启终端显示功能
这是让调试信息能输出到终端的前提。
<H3C> terminal monitor
<H3C> terminal debugging
2. 创建精确匹配的 ACL
这是调试的关键。必须用 ACL 来限定只捕获你关心的流量,否则海量输出会直接刷屏,影响设备性能。
# 进入高级ACL视图,例如ACL 3000
<H3C> system-view
[H3C] acl advanced 3000
# 规则1:匹配源IP到目的IP的单向流量
[H3C-acl-ipv4-adv-3000] rule 0 permit ip source 192.168.1.100 0 destination 10.1.1.1 0
# 规则2:匹配反向回程流量(如需观察完整交互)
[H3C-acl-ipv4-adv-3000] rule 5 permit ip source 10.1.1.1 0 destination 192.168.1.100 0
[H3C-acl-ipv4-adv-3000] quit
3. 开启调试命令
根据你的排查重点,选择以下一条或多条命令:
# 查看报文从哪个接口进来、往哪个接口出去
<H3C> debugging ip packet acl 3000
# 查看报文是否被某个模块丢弃(非常有用)
<H3C> debugging ip info acl 3000
# 查看报文是否被ASPF(状态检测)丢弃
<H3C> debugging aspf packet acl 3000
# 查看报文是否被安全策略(security-policy)允许或拒绝
<H3C> debugging security-policy packet ip acl 3000
# 查看会话被删除的具体原因
<H3C> debugging session session-table all acl 3000
开启调试后,在终端上执行你的测试操作(如 ping),观察输出的调试信息,其中会包含源/目的IP、端口、协议以及具体的处理动作(如 permitted、denied、dropped 等)。
调试输出解读示例
调试信息会明确告诉你报文的状态。例如,安全策略的调试输出如下:
*Mar 22 10:12:25:381 2011 Sysname pflt/7/Event: -MDC=1;
The packet is permitted.
Packet Info: Src-IP=1.1.1.1, Dst-IP=2.2.2.2, Src-Port=1024, Dst-Port=1025, Protocol=icmp(1)
这表示源IP为 1.1.1.1、目的IP为 2.2.2.2 的 ICMP 报文被策略放行了。如果看到 denied 或 dropped,就说明被拦截了。
关键注意事项
调试后务必关闭:调试会产生大量日志,对设备CPU有影响。排查完成后,务必执行 undo debugging all 关闭所有调试开关。
ACL要精确:ACL 的 source 和 destination 后的掩码建议使用 0(精确匹配),避免匹配过多无用流量。
VPN实例:如果接口绑定了 VPN 实例,ACL 规则中需要增加 vpn-instance 参数,否则可能匹配不到。
暂无评论