第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 可能干扰部分加密协议 |
思考
- PAT 通过端口号区分不同内网主机的连接,如果两台内网主机同时访问同一个外网服务器的同一个端口,NAT 如何区分?
- 动态 NAT 和 PAT 的主要区别是什么?什么场景下会选择动态 NAT 而非 PAT?
- NAT Session 表满了会发生什么?有什么方法可以增加 Session 容量?
下篇预告:第43篇:企业上网少不了 NAT:Easy-IP 配置