第204篇:NAT 在防火墙上的实现差异

关键词

防火墙 NAT、源 NAT、目的 NAT、NAT Server、Easy IP、Smart NAT、NAT No-PAT、ASPF NAT


一、防火墙 NAT 概述

1.1 防火墙 NAT 的定位

防火墙上的 NAT 与普通路由器 NAT 有显著差异:

路由器 NAT:             防火墙 NAT:
  单纯的地址转换           地址转换 + 安全策略联动
  无状态检测              状态检测 + 会话跟踪
  ACL 控制               安全策略 + NAT 策略分离
  不感知应用层             支持 ASPF + 应用层 NAT

防火墙 NAT 的核心优势在于:
  1. NAT 与安全策略协同工作
  2. 具备完整的会话跟踪
  3. 支持应用层协议检测(ALG)
  4. 支持 NAT 日志留痕(等保合规)

1.2 NAT 分类

防火墙 NAT 按方向分为两大类:

源 NAT(Source NAT):
  转换源 IP 地址,通常用于内网用户访问外网
  将私网 IP 转换为公网 IP

目的 NAT(Destination NAT):
  转换目的 IP 地址,通常用于外网用户访问内网服务器
  将公网 IP 转换为私网服务器 IP

NAT Server(服务器映射):
  目的 NAT 的一种特殊形式
  将公网 IP:端口映射到内网服务器

二、源 NAT 的实现

2.1 源 NAT 类型

类型 说明 适用场景
Easy IP 直接使用接口的公网 IP 做 NAT 小型企业、ADSL 拨号
NAT 地址池 从公网地址池中分配地址 大中型企业
Smart NAT 一个 IP 做 NAT,其余做 No-PAT 需要保留源端口场景
NAT No-PAT 不做端口转换,只做 IP 转换 专线互连、VPN
三元组 NAT 转换源 IP + 源端口 + 协议 安全要求高的场景

2.2 Easy IP 配置

# Easy IP:直接使用接口地址做 NAT
nat-policy
 rule name Easy_IP_NAT
  source-zone trust
  destination-zone untrust
  source-address 10.0.0.0 mask 255.255.255.0
  action source-nat easy-ip              # 使用出接口地址
!
# 流量示例:
# 内网 10.0.0.1:12345 → 8.8.8.8:80
# 转换后 202.1.1.1:2048 → 8.8.8.8:80(出接口地址 = 202.1.1.1)

2.3 NAT 地址池配置

# NAT 地址池
nat address-group 1
 mode pat                          # 端口地址转换模式(默认)
 section 0 202.1.1.10 202.1.1.100  # 公网地址池
!
nat-policy
 rule name Pool_NAT
  source-zone trust
  destination-zone untrust
  source-address 10.0.0.0 mask 255.255.255.0
  action source-nat address-group 1
!
# PAT(Port Address Translation)模式:
# 多个内网用户共享公网 IP,通过端口区分
# 10.0.0.1:12345 → 202.1.1.10:2048
# 10.0.0.2:12345 → 202.1.1.10:2049

2.4 NAT No-PAT 配置

# No-PAT:不做端口转换,只做 IP 地址映射
nat address-group 2
 mode no-pat                        # 不做端口转换
 section 0 203.0.113.10 203.0.113.20
!
nat-policy
 rule name No_PAT_NAT
  source-zone trust
  destination-zone dmz
  source-address 10.0.0.0 mask 255.255.255.0
  action source-nat address-group 2 no-pat
!
# 用于企业专线互连等不需要端口转换的场景

三、目的 NAT(服务器映射)

3.1 NAT Server 配置

# 将公网 IP 映射到内网 Web 服务器
nat server www_server protocol tcp global 202.1.1.1 80 inside 10.0.1.100 80
nat server ssh_server protocol tcp global 202.1.1.1 2222 inside 10.0.1.200 22

# 或者配置地址池映射(一对一映射)
nat server mail_server global 202.1.1.2 inside 10.0.1.101

3.2 多端口映射示例

# 一个公网 IP 映射多个内网服务
nat server Web_Server protocol tcp global 202.1.1.1 80 inside 10.0.1.10 80
nat server Web_SSL protocol tcp global 202.1.1.1 443 inside 10.0.1.10 443
nat server FTP_Server protocol tcp global 202.1.1.1 21 inside 10.0.1.20 21
nat server RDP_Server protocol tcp global 202.1.1.1 3389 inside 10.0.1.30 3389

# 访问方式:
# http://202.1.1.1 → 10.0.1.10:80
# https://202.1.1.1 → 10.0.1.10:443
# ftp://202.1.1.1 → 10.0.1.20:21
# RDP: 202.1.1.1:3389 → 10.0.1.30:3389

3.3 安全策略与 NAT Server 的协同

# NAT Server 配置了映射后,仍需放行安全策略
security-policy
 rule name Internet_to_Server
  source-zone untrust
  destination-zone dmz
  destination-address 10.0.1.10 mask 255.255.255.255
  service http
  service https
  action permit
!
# 注意:安全策略中目的地址填内网服务器真实 IP(而非公网 IP)

四、防火墙 NAT 的特殊处理

4.1 NAT + ASPF 应用层处理

防火墙 NAT 与 ASPF 联动处理应用层协议:

FTP 的 NAT 处理:

数据流:
  客户端                        防火墙                        FTP 服务器
    │                            │                              │
    │ PORT 192,168,1,1,10,20     │                              │
    │───────────────────────────→│                              │
    │                            │ 修改 PORT 命令中的私网地址    │
    │                            │ 为公网地址 + 开放临时端口    │
    │                            │                              │
    │ PORT 202,1,1,1,8,0         │                              │
    │                            │─────────────────────────────→│
    │                            │                              │
    │                            │ 服务器连接 202.1.1.1:2048   │
    │                            │ 防火墙翻译为 10.0.0.1:2562  │
    │                            │                              │
    │                         ←数据通道建立成功→               │

ALG(Application Level Gateway)功能:
  # 启用应用层 NAT 检测
  firewall interzone trust untrust
   detect ftp          # FTP 的 NAT ALG
   detect sip          # SIP 的 NAT ALG
   detect h323         # H.323 的 NAT ALG (视频会议)
   detect dns          # DNS 的 NAT ALG(NAT 环境下 DNS 查询)

4.2 NAT 会话表与日志

# 查看 NAT 会话
display firewall session table
  TCP 10.0.0.1:12345 ←→ 202.1.1.1:2048
       → 8.8.8.8:80
  NAT: Source NAT applied

# NAT 日志(Syslog 格式)
<134>1 2024-03-15T10:00:00Z FW NAT - -
  [NAT@32473 src="10.0.0.1" sport="12345"
   nat-src="202.1.1.1" nat-sport="2048"
   dst="8.8.8.8" dport="80"
   protocol="6" action="create"]

# 启用 NAT 日志
firewall log nat-session enable
firewall log nat-session aging-time 300     # 日志老化时间

4.3 NAT 与路由的交互

NAT 对路由的影响:

NAT 前:
  dest=8.8.8.8 → 查路由表 → 出接口 = GigabitEthernet0/0/1(Untrust)

NAT 后:
  src=10.0.0.1 → NAT 转换为 202.1.1.1 → 查路由表 → 出接口 = G0/0/1

需要注意的是:
  NAT 策略通常在路由查询之前或之后执行(取决于设备架构)
  华为防火墙:先查路由,再做 NAT
  → 确保路由可达,否则 NAT 不会执行

五、NAT 部署最佳实践

5.1 选择 NAT 策略的建议

场景                         推荐方案
────────────────────────────────────────────
员工上网                    Easy IP(小型)/ 地址池(大型)
对外服务器                  NAT Server + 目的 NAT
企业互联专线                NAT No-PAT(保留源 IP)
NAT 日志留存                PAT + 地址池(便于溯源)
等保合规                    NAT 日志 + 会话日志
公网 IP 不足                PAT + 端口复用

5.2 NAT 优化配置

# NAT 端口块分配(适用于大规模 PAT)
nat address-group 1
 mode pat                                    # PAT 模式
 port-block-start 1024                        # 起始端口
 port-block-size 1024                         # 每用户端口块
!
# 单用户并发会话限制
nat-policy
 rule name User_Limit
  source-zone trust
  destination-zone untrust
  action source-nat address-group 1
  session-limit per-source-ip 5000            # 单 IP 最多 5000 会话

六、总结

知识点 核心要点
源 NAT 转换源 IP,Easy IP / 地址池 / No-PAT
目的 NAT 转换目的 IP,NAT Server 映射内网服务器
NAT Server 公网 IP:端口 → 内网服务器 IP:端口
ASPF NAT ALG 处理 FTP/SIP 应用层地址
日志要求 等保合规需要完整的 NAT 日志
性能考量 防火墙 NAT 与安全策略联动,性能优于路由器 NAT

七、思考

  1. Easy IP 和 NAT 地址池有什么区别?各适合什么场景?
  2. NAT No-PAT 模式什么时候需要使用?它和 PAT 的区别是什么?
  3. NAT Server 配置后,安全策略中应该填写公网 IP 还是内网 IP 来放行流量?
  4. FTP 的 NAT ALG 解决了什么问题?没有它会发生什么?
  5. 在等保合规场景下,NAT 日志为什么重要?需要记录哪些信息?

下篇预告:第205篇《防火墙双机热备:主备与负载分担》——防火墙高可用方案详解,包括 VRRP、HRP、会话同步等技术。