默认PAT模式为Address and Port-Dependent Mapping(关心对端地址和端口的转换模式),该模式下相同源地址和端口访问不同目的地址时,可能被转换为不同外部端口,导致回包无法区分主机。建议切换至 Endpoint-Independent Mapping(不关心对端模式):
system-view
nat mapping-behavior endpoint-independent
此模式下,相同源地址和端口号无论目的地址是否相同,均转换为同一外部地址和端口,并通过EIM表项记录映射关系,确保外部主机可通过该地址访问内网主机。
nat mapping-behavior命令用来配置PAT方式出方向动态地址转换的模式。
undo nat mapping-behavior命令用来恢复缺省情况。
【命令】
nat mapping-behavior endpoint-independent [ acl { ipv4-acl-number | name ipv4-acl-name } ]
undo nat mapping-behavior endpoint-independent
【缺省情况】
PAT出方向动态方式地址转换的模式为Address and Port-Dependent Mapping。
【视图】
系统视图
【缺省用户角色】
network-admin
context-admin
【参数】
acl:指定ACL的编号或名称,用于控制需要遵守指定地址转换模式的报文范围。
ipv4-acl-number:ACL的编号,取值范围为2000~3999。
name ipv4-acl-name:ACL的名称,为1~63个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头。为避免混淆,ACL的名称不允许使用英文单词all。
【使用指导】
PAT方式出方向动态地址转换支持两种模式:
· Endpoint-Independent Mapping(不关心对端地址和端口的转换模式):只要是来自相同源地址和源端口号的报文,不论其目的地址是否相同,通过PAT映射后,其源地址和源端口号都被转换为同一个外部地址和端口号,该映射关系会被记录下来并生成一个EIM表项;并且NAT网关设备允许外部网络的主机通过该转换后的地址和端口来访问这些内部网络的主机。这种模式可以很好的支持位于不同NAT网关之后的主机间进行互访。
· Address and Port-Dependent Mapping(关心对端地址和端口的转换模式):对于来自相同源地址和源端口号的报文,若其目的地址和目的端口号不同,由于相同的源地址和源端口号不要求被转换为相同的外部地址和端口号,所以通过PAT映射后,相同的源地址和源端口号通常会被转换成不同的外部地址和端口号。并且NAT网关设备只允许这些目的地址对应的外部网络的主机才可以通过该转换后的地址和端口来访问这些内部网络的主机。这种模式安全性好,但是不便于位于不同NAT网关之后的主机间进行互访。
该配置只对出方向动态地址转换的PAT方式起作用。入方向动态地址转换的PAT方式的转换模式始终为Address and Port-Dependent Mapping。
如果配置了acl参数,则表示只有符合ACL permit规则的报文才采用Endpoint-Independent Mapping模式进行地址转换;如果没有配置acl参数,则表示所有的报文都采用Endpoint-Independent Mapping模式进行地址转换。
【举例】
# 对所有报文都以Endpoint-Independent Mapping模式进行地址转换。
<Sysname> system-view
[Sysname] nat mapping-behavior endpoint-independent
# 仅对FTP和HTTP报文才以Endpoint-Independent Mapping模式进行地址转换,其它报文采用Address and Port-Dependent Mapping模式进行地址转换。
<Sysname> system-view
[Sysname] acl advanced 3000
[Sysname-acl-ipv4-adv-3000] rule permit tcp destination-port eq 80
[Sysname-acl-ipv4-adv-3000] rule permit tcp destination-port eq 21
[Sysname-acl-ipv4-adv-3000] quit
[Sysname] nat mapping-behavior endpoint-independent acl 3000
你遇到的问题,根本原因是 H3C SecPath 防火墙在 PAT 模式下,默认行为会使用“地址+端口”这个组合来标识不同的会话。但当多个内网主机访问同一个外部服务器的同一个服务(比如都访问 8.8.8.8 的 80 端口)时,它们转换后的“公网IP+源端口”组合完全相同,导致防火墙回传数据时无法区分,因此只有一个会话能正常通信。
修改防火墙的NAT映射行为,启用 Endpoint-Independent Mapping(EIM) 模式,是解决这个问题的直接方法。
EIM模式是什么:它被称为“不关心对端地址和端口的转换模式”。开启后,只要内网地址和端口相同,无论它要访问哪个外网服务器,防火墙都会将其转换为同一个固定的“公网IP+源端口”。这样,后续回程数据就能根据这个固定的端口映射准确送回给相应的内网主机,解决了多主机访问冲突的问题。
该模式的额外效果:在这个模式下,外网主机也可以主动通过这个固定的“公网IP+端口”来访问内网主机,实现了简单的NAT穿透。
安全考量:虽然EIM模式增强了连接性,但它也意味着一个内网会话的映射关系可能被多个外网服务器复用。如果你的网络安全策略要求极其严格的访问隔离,需审慎评估启用此模式的风险。
请在防火墙的系统视图下执行以下命令:
暂无评论
同一内网 IP: 端口 → 无论目的 IP / 端口,永远映射到同一公网 IP: 端口容易出现 “多内网 IP 撞同一公网端口”。
nat mapping-behavior address-port-dependent # 全局启用APDM(推荐)
# 或仅对某个地址组生效:
nat address-group 1
mapping-behavior address-port-dependent
quit
nat address-group 1
port-range 1024 65535 # 完整可用端口
block-size 512 # 端口块大小(NAT444场景)
quit
nat port-random enable
nat aging-time tcp-timeout 7200 # TCP 2小时(默认3600)
nat aging-time udp-timeout 120 # UDP 2分钟
# 1. 建端口块组
nat port-block-group 1
local-ip 192.168.1.0 255.255.255.0 # 内网网段
global-ip-pool 202.100.1.1 202.100.1.1 # 公网IP
port-range 1024 65535
block-size 512 # 每主机512端口
quit
# 2. 引用到动态NAT
nat outbound 3000 address-group 1 nat444 dynamic
display nat all # 看地址组、模式、端口范围
display nat session verbose # 看实际映射:内网IP:port → 公网IP:port
display nat statistics # 看端口分配失败计数
display nat mapping-behavior # 确认是EIM还是APDM
private-port 不同,但 public-port 相同 → 冲突nat statistics 有 port allocation failed 计数
nat mapping-behavior address-port-dependent暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论