display current-configuration | include 10.220.129.231
nat static outbound 172.16.0.4 vpn-instance 1tdcrrn5gp8bpau3rcvqbjofbv 10.220.129.231 vpn-instance external_vpn
RBM_P<H3C>display session table ipv4 vpn-instance 1tdcrrn5gp8bpau3rcvqbjofbv destination-ip 10.104.105.16
Slot 2 in chassis 1:
Initiator:
Source IP/port: 172.16.0.4/30832
Destination IP/port: 10.104.105.16/2048
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: 1tdcrrn5gp8bpau3rcvqbjofbv/-/-
Protocol: ICMP(1)
Inbound interface: Route-Aggregation1.1016
Source security zone: 5r97vqo5ne8es82adn6mi8cpen
Initiator:
Source IP/port: 172.16.0.32/38760
Destination IP/port: 10.104.105.16/2514
DS-Lite tunnel peer: -
VPN instance/VLAN ID/Inline ID: 1tdcrrn5gp8bpau3rcvqbjofbv/-/-
Protocol: UDP(17)
Inbound interface: Route-Aggregation1.1016
Source security zone: 5r97vqo5ne8es82adn6mi8cpen
RBM_P<H3C>display session table ipv4 vpn-instance external_vpn destination-ip 10.104.105.16
Slot 2 in chassis 1:
为什么在“external”的实例中没有关于10.104.105.16的会话,看流量应该是从1tdcrrn5gp8bpau3rcvqbjofbv实例到external实例转发的呀
根因完整分析:外网 VPN 无对应会话、仅内网 VPN 存在会话
一、先梳理你的配置逻辑
plaintext
nat static outbound 172.16.0.4 vpn-instance 1tdcrrn5gp8bpau3rcvqbjofbv 10.220.129.231 vpn-instance external_vpn
这条是跨 VPN 静态源 NAT:
源 VPN:1tdcrrn5gp8bpau3rcvqbjofbv(内网业务 VPN)
内网源地址:172.16.0.4
转换后公网地址:10.220.129.231
出外网 VPN:external_vpn
业务流向:
内网终端 (172.16.0.4/32) → 内网 VPN → 防火墙做源 NAT → external_vpn → 目的 10.104.105.16
二、核心问题:为什么 display session table 分开查两个 VPN 看不到完整双向会话
1. H3C 防火墙会话表存储规则(关键)
防火墙会话表条目归属「发起方入域 / 入 VPN」,不是按出 VPN 分开存储:
流量从 1tdcrrn5gp8bpau3rcvqbjofbv 发起,入接口、入 VPN 是内网 VPN;
整条会话只存在在内网 VPN 的会话视图里;
在 external_vpn 视图下查目的 IP,不会显示这条会话,不是没有跨 VPN 转发,是查询视角问题。
会话表里一条条目包含完整双向信息:
发起侧(内网 VPN):源 172.16.x.x → 目的 10.104.105.16
回复侧(外网 VPN):源 10.104.105.16 → NAT 转换后的 10.220.129.231
整条会话只挂载在发起 VPN 1tdcrrn5gp8bpau3rcvqbjofbv,external_vpn 下无独立条目。
2. 你查询命令的局限
plaintext
display session table ipv4 vpn-instance external_vpn destination-ip 10.104.105.16
这条命令只筛选入 VPN 为 external_vpn、目的 IP=10.104.105.16 的会话;
而回程流量是响应流量,会话发起方在内网 VPN,所以这条查询结果为空,不代表没有转发。
三、如何验证跨 VPN NAT 转换是否生效
方式 1:不加 VPN 实例,全局查完整会话(推荐)
plaintext
display session table ipv4 destination-ip 10.104.105.16 verbose
verbose 会打印:
转换后的源 IP(10.220.129.231)
出接口、出 VPN(external_vpn)
双向五元组、NAT 转换标记
方式 2:只看 NAT 转换表,确认静态 NAT 已生成映射
plaintext
display nat static session vpn-instance 1tdcrrn5gp8bpau3rcvqbjofbv
能看到 172.16.0.4 <-> 10.220.129.231 的动态映射条目,说明 NAT 正常工作。
方式 3:单独匹配转换后的公网 IP,在外网 VPN 查询回程
回程流量五元组视角(external_vpn 侧):
源 IP:10.104.105.16,目的 IP:10.220.129.231
执行:
plaintext
display session table ipv4 vpn-instance external_vpn source-ip 10.104.105.16 destination-ip 10.220.129.231
这条就能在 external_vpn 视图抓到同一条会话的回程匹配。
四、补充区分两个易混淆场景
源 NAT 跨 VPN(你当前场景)
会话归属发起内网 VPN,外网 VPN 查原内网源 IP 无结果,查转换后公网 IP 才有结果。
目的 NAT 入站(外网主动访问映射地址)
会话归属 external_vpn,在内网 VPN 查不到,在外网 VPN 可查到。
五、一句话总结现象原因
会话表以流量发起时的入 VPN 实例作为归属索引,跨 VPN 源 NAT 产生的整条会话只存在内网业务 VPN 1tdcrrn5gp8bpau3rcvqbjofbv;
你在外网 VPN external_vpn 用内网原始目的 IP 10.104.105.16 过滤,匹配不到归属该 VPN 的发起会话,所以输出为空,流量转发和 NAT 本身无异常。
暂无评论
从external_vpn实例中查不到会话,最可能的原因是流量在1tdcrrn5gp8bpau3rcvqbjofbv实例内就被处理并终结了,没有实际进入external_vpn实例。下面我为你分析几种常见的原因。
流量被VPN实例内部处理:这是最可能的原因。如果目的IP 10.104.105.16 的路由在1tdcrrn5gp8bpau3rcvqbjofbv实例内存在,流量就会在实例内直接被转发,不会进入external_vpn实例。
NAT转换影响会话表项:你配置的nat static outbound发生在external_vpn实例侧。如果NAT转换没有成功触发,或转换后的流量没有成功建立会话,external_vpn中自然就没有记录。
安全策略阻断:防火墙在处理报文时,会先匹配安全策略,只有被“允许”的流量才会创建会话。如果从1tdcrrn5gp8bpau3rcvqbjofbv到external_vpn(或反之)的安全策略未放行,流量会被丢弃,也就不会在external_vpn中生成会话。
流量未经过防火墙:虽然你在防火墙上看到了1tdcrrn5gp8bpau3rcvqbjofbv实例的会话,但这只能说明请求报文到达了防火墙。需要确认响应报文也经过了防火墙,否则会话可能不完整。
未开启会话统计:如果设备开启了硬件快速转发功能,通过display session table命令可能查不到会话统计信息。可尝试开启session statistics enable后再查看。
建议按以下顺序操作,逐步定位问题:
检查VPN实例路由表:
分别查看两个VPN实例的路由表:
确认目的IP 10.104.105.16 的路由存在于哪个VPN实例中。
检查NAT转换是否生效:
查看NAT会话表,确认转换是否发生:
同时检查nat static outbound配置是否正确。
检查安全策略:
抓包分析:
检查会话统计功能:
执行display session statistics,确认会话统计功能已开启。若未开启,可使用session statistics enable命令开启。
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论