第42篇:NAT 基础:静态 NAT、动态 NAT、PAT

关键词:NAT、静态NAT、动态NAT、PAT、NAPT、地址转换、私网地址、公网地址、华为配置


一、引言

NAT(Network Address Translation,网络地址转换)是企业网络中最常用的功能之一。它的核心价值在于:将私网 IP 地址转换为公网 IP 地址,使得内网主机能够访问 Internet,同时节约了宝贵的公网 IP 资源。

NAT 有三种基本类型:静态 NAT、动态 NAT 和 PAT(端口地址转换,也称 NAPT)。理解这种类型的区别和应用场景,是后续所有 NAT 配置的基础。

二、核心概念

2.1 NAT 产生的背景

问题 说明
IPv4 地址枯竭 公网 IPv4 地址数量约为 43 亿,远远无法满足全球设备需求
安全隔离 内网主机使用私网地址,外部无法直接访问,天然形成一层保护
灵活编址 内网可以使用任意私网地址段,不受运营商分配限制

2.2 私网地址范围

地址段 掩码 可用主机数
10.0.0.0 ~ 10.255.255.255 /8 约 1677 万
172.16.0.0 ~ 172.31.255.255 /12 约 104 万
192.168.0.0 ~ 192.168.255.255 /16 约 6.5 万

2.3 NAT 三种类型对比

NAT 类型 地址映射关系 端口映射 适用场景
静态 NAT 一对一固定映射 不涉及 内网服务器对外提供服务
动态 NAT 一对一变映射(地址池) 不涉及 内网主机轮流使用公网地址
PAT(NAPT) 多对一/多对多 使用端口区分 企业上网(最常用)

2.4 NAT 基本术语

术语 中文名称 说明
Inside Local 私网本地地址 内网主机实际配置的私网 IP
Inside Global 公网全局地址 内网主机对外呈现的公网 IP
Outside Local 外网本地地址 外网主机在 NAT 设备上看到的地址(通常等于其真实地址)
Outside Global 外网全局地址 外网主机的真实公网 IP

三、技术细节

3.1 静态 NAT

静态 NAT 建立私网地址与公网地址之间的固定一对一映射,不随时间改变。

# 场景:内网服务器 192.168.1.100 固定映射为公网 203.0.113.10

# Step 1: 定义静态映射(在系统视图下创建)
[HUAWEI] nat static global 203.0.113.10 inside 192.168.1.100

# Step 2: 在出接口启用该静态映射(不同版本命令略有差异)
[HUAWEI] interface GigabitEthernet0/0/1
[HUAWEI-GigabitEthernet0/0/1] nat static enable
# 较新版本可直接在接口下写:
# [HUAWEI-GigabitEthernet0/0/1] nat static global 203.0.113.10 inside 192.168.1.100

# 验证
<HUAWEI> display nat static
 Static Nat Information:
  Global IP/Port : 203.0.113.10
  Inside IP/Port : 192.168.1.100
 Total : 1
# 官方回显字段较多(含协议、掩码等),具体以设备版本为准

注意:静态 NAT 不会节约 IP 地址,每台对外提供服务的内网设备都需要一个独立的公网 IP。

3.2 动态 NAT

动态 NAT 从预定义的公网地址池中动态分配公网 IP 给内网主机。当内网主机发起连接时,设备从地址池中取出一个空闲的公网 IP 进行映射;连接结束后释放。

# 场景:内网 192.168.1.0/24 网段,使用 203.0.113.10~203.0.113.20 作为地址池

# Step 1: 定义 ACL,匹配需要做 NAT 的内网流量
[HUAWEI] acl 2000
[HUAWEI-acl-basic-2000] rule 5 permit source 192.168.1.0 0.0.0.255

# Step 2: 定义 NAT 地址池(仅定义地址段;PAT 与否由 nat outbound 的 no-pat 关键字决定)
[HUAWEI] nat address-group 1
[HUAWEI-nat-address-group-1] section 0 203.0.113.10 203.0.113.20

# Step 3: 定义 NAT 转换规则:地址池 + no-pat(只做地址转换、不做端口复用 = 传统动态 NAT)
[HUAWEI] interface GigabitEthernet0/0/1
[HUAWEI-GigabitEthernet0/0/1] nat outbound 2000 address-group 1 no-pat

# 说明:去掉 no-pat 关键字即端口复用模式(PAT,见 3.3 节);
# S 系列传统 NAT 在出接口视图下发(部分新版本也支持系统视图下发 nat outbound,
# 语法相同);同一业务 ACL 的 NAT 规则在系统视图与接口视图二选一,不要重复下发

# 验证
<HUAWEI> display nat session all
<HUAWEI> display nat address-group

限制:在不做端口转换的情况下,每个内网主机占用一个公网 IP。如果地址池为 11 个地址(203.0.113.10~20),最多同时支持 11 台内网主机访问外网。

3.3 PAT(端口地址转换 / NAPT)

PAT 是 NAT 的最常用形态。它通过将私网 IP + 源端口号组合映射为公网 IP + 端口号,使得多个内网主机可以共享一个(或几个)公网 IP。

# 场景:内网 192.168.1.0/24 所有主机共享一个公网 IP 上网

# Step 1: 定义 ACL 匹配内网流量
[HUAWEI] acl 2000
[HUAWEI-acl-basic-2000] rule 5 permit source 192.168.1.0 0.0.0.255

# Step 2: 定义 NAT 地址池(单个公网 IP)
[HUAWEI] nat address-group 1
[HUAWEI-nat-address-group-1] section 0 203.0.113.10 203.0.113.10

# Step 3: 在出接口应用 PAT(不带 no-pat 关键字,默认端口复用)
[HUAWEI] interface GigabitEthernet0/0/1
[HUAWEI-GigabitEthernet0/0/1] nat outbound 2000 address-group 1

# 验证 Session 表(三台内网主机共享同一公网 IP,用不同公网端口区分)
<HUAWEI> display nat session protocol tcp
 NAT Session Table Information:
  Protocol      : TCP(6)
  SrcAddr Port  : 192.168.1.100 1025     ← 转换前(私网)
  DestAddr Port : 8.8.8.8 443
  Time To Live  : 120 s
  NAT-Info
  New SrcAddr   : 203.0.113.10           ← 转换后源(公网 IP)
  New SrcPort   : 52345                  ← 转换后源端口
  Protocol      : TCP(6)
  SrcAddr Port  : 192.168.1.101 2048
  DestAddr Port : 8.8.8.8 443
  Time To Live  : 120 s
  NAT-Info
  New SrcAddr   : 203.0.113.10
  New SrcPort   : 52346
  Protocol      : TCP(6)
  SrcAddr Port  : 192.168.1.102 3072
  DestAddr Port : 8.8.8.8 443
  Time To Live  : 120 s
  NAT-Info
  New SrcAddr   : 203.0.113.10
  New SrcPort   : 52347
 Total : 3
# ① 三条会话公网地址相同(203.0.113.10),仅靠公网端口 52345/52346/52347 区分 —— 这就是 PAT 的本质
# ② 回显字段与格式以设备版本为准

3.4 PAT 的端口分配机制

参数 说明
公网 IP 数量 地址池中配置的公网 IP 数量
每个 IP 可用端口 TCP/UDP 各 65536 个端口,减去保留端口
理论并发连接数 公网 IP 数 × 可用端口数 × 2(TCP + UDP)
实际并发连接数 受设备性能和端口池配置限制

以 1 个公网 IP 为例:理论最大约 12 万并发连接(TCP 6 万 + UDP 6 万),实际华为设备单 IP 通常支持数万到数十万条 NAT Session,取决于设备型号。

3.5 三种 NAT 类型对比总结

对比维度 静态 NAT 动态 NAT PAT(NAPT)
映射方式 一对一固定 一对一动态 多对一(含端口)
IP 节约 不节约 部分节约 高度节约
配置复杂度 简单 中等 中等
对外访问 外部可直接访问 外部不可直接访问 外部不可直接访问
典型场景 服务器发布 特殊业务需求 企业上网(最常用)

四、实战配置/案例分析

4.1 案例一:企业 NAT 综合配置

需求:某企业有如下要求: - 研发部(192.168.10.0/24)和行政部(192.168.20.0/24)需要访问 Internet - 内部 Web 服务器(192.168.100.10)需要对外提供 HTTP 服务,映射为公网 IP 203.0.113.50 - 公网出口 IP 为 203.0.113.1

# ===== 静态 NAT:Web 服务器对外发布 =====
[HUAWEI] nat static global 203.0.113.50 inside 192.168.100.10
[HUAWEI] interface GigabitEthernet0/0/1
[HUAWEI-GigabitEthernet0/0/1] nat static enable

# ===== PAT:内网上网(用出接口 IP 作为 NAT 公网地址 = Easy IP)=====
[HUAWEI] acl 3000
# 匹配研发部和行政部
[HUAWEI-acl-adv-3000] rule 5 permit ip source 192.168.10.0 0.0.0.255
[HUAWEI-acl-adv-3000] rule 10 permit ip source 192.168.20.0 0.0.0.255
# 排除 Web 服务器流量(避免重复 NAT)
[HUAWEI-acl-adv-3000] rule 15 deny ip source 192.168.100.10 0

[HUAWEI] interface GigabitEthernet0/0/1
[HUAWEI-GigabitEthernet0/0/1] nat outbound 3000
# 不指定 address-group 时,自动使用接口 IP(203.0.113.1)做 PAT

4.2 案例二:NAT Session 表故障排查

故障现象:内网部分用户反映间歇性无法上网,但 ping 公网 IP 正常。

# Step 1: 查看 NAT Session 数量(number 只输出条数统计)
<HUAWEI> display nat session number
 Total session : 49850
# 会话数量逼近设备规格上限时,新的连接将无法正常建立(回显以设备版本为准)

# Step 2: 查看长连接占用情况(官方语法需带参数,如 all,或按协议/地址过滤)
<HUAWEI> display nat session all
# 发现大量 FTP、P2P 类长连接未释放

# Step 3: 临时清理 NAT Session
# 注意:清理会中断现有连接,且表项清除后无法恢复,需在业务低峰执行
<HUAWEI> reset nat session all     # S 系列 V200R010C10 及之后支持 all 参数;框式/NE 为 reset nat session table

# Step 4: 永久方案:针对长连接业务适当缩短老化时间,让 Session 更快释放
[HUAWEI] nat session aging-time tcp 300      # TCP 老化时间 300 秒(S 系列常见缺省 600s)
[HUAWEI] nat session aging-time udp 120      # UDP 老化时间 120 秒(部分版本缺省即 120s)
# FTP 控制/数据连接走独立老化参数(缺省均 120s),不受上面 tcp 参数影响,需缩短时单独配置:
[HUAWEI] nat session aging-time ftp 60
[HUAWEI] nat session aging-time ftp-data 60
# 各协议缺省老化时间随设备版本而异(常见 tcp 600s / udp 120s / ftp 120s),
# 调整值需结合业务评估,命令以实际设备版本命令手册为准

4.3 案例三:NAT 导致 VoIP 通话质量差

故障背景:企业部署了 IP 电话(VoIP),使用 PAT 后通话出现断续、单向无声等问题。

# 根因分析:
# VoIP 使用 RTP/RTCP 传输语音/视频流,端口范围 16384~32767
# 主因:未启用 SIP ALG 时,NAT 仅转换 SIP 信令的地址,SDP 中携带的媒体
#       地址/端口(私网 IP 与 RTP 端口)不会被转换,对端按私网地址发包,媒体流不通
# 次因:语音会话数量多时 NAT Session 占用高;若 UDP 老化时间过短,
#       通话静默期间会话被回收同样会导致断流(华为建议语音业务增大老化时间)

# 解决方案:
# 1. 不要缩短 UDP 老化时间:华为明确建议语音业务尽量增大 TCP/UDP 会话老化时间,
#    防止通话静默期间会话被回收导致语音中断(老化时间过短反而加剧断流)
[HUAWEI] nat session aging-time udp 300   # UDP 老化时间 300 秒示例(命令以版本手册为准)

# 2. 启用 SIP ALG(应用层网关)
[HUAWEI] nat alg sip enable
# SIP ALG 解析信令 SDP 中携带的媒体地址/端口,自动为对应的 RTP 流(16384~32767)动态创建 NAT 映射
# (官方 ALG 关键字为 dns/ftp/sip/pptp/rtsp,无 rtp;语法:nat alg { all | protocol-name } enable)

# 3. 为 VoIP 流量配置独立的 NAT 地址池(可选)
# 注意:仅定义地址池不会生效,需先用 ACL 匹配 VoIP 网段,再在出接口执行
#   nat outbound <acl号> address-group 2(完整配置示例见 3.3 节)
# 地址池本身没有 PAT 开关,是否做端口复用由 nat outbound 是否带 no-pat 决定
[HUAWEI] nat address-group 2
[HUAWEI-nat-address-group-2] section 0 203.0.113.2 203.0.113.2

五、总结

NAT 类型 映射关系 端口复用 IP 节约 推荐度
静态 NAT 1:1 固定 否 否 特定场景
动态 NAT 1:1 动态 否 部分 较少使用
PAT(NAPT) N:1 是 高度 企业首选
NAT 配置最佳实践 说明
优先使用 PAT 绝大多数上网场景用 PAT,节约 IP
静态 NAT 仅用于服务器发布 对外提供服务的设备才用静态 NAT
合理设置 Session 超时 根据业务调整超时时间
监控 Session 使用率 Session 满会导致新连接无法建立
注意 ALG 兼容性 ALG 可能干扰部分加密协议

思考

  1. PAT 通过端口号区分不同内网主机的连接,如果两台内网主机同时访问同一个外网服务器的同一个端口,NAT 如何区分?
  2. 动态 NAT 和 PAT 的主要区别是什么?什么场景下会选择动态 NAT 而非 PAT?
  3. NAT Session 表满了会发生什么?有什么方法可以增加 Session 容量?

下篇预告:第43篇:企业上网少不了 NAT:Easy-IP 配置