场景假设
防火墙内网接口
G0/0/0:192.168.1.1/24防火墙外网接口
G0/0/1:203.0.113.2/24(运营商给的家宽公网 IP)内网服务器
192.168.1.100提供 Web 服务(端口 80)内网 PC
192.168.1.10需要上网
1️⃣ NAPT(标准地址池方式)
适用 :内网大量主机共享多个公网 IP (例如运营商给了一个地址池 203.0.113.10 -- 203.0.113.20)。
配置(华为防火墙):
bash
# 定义地址池
nat address-group 1 203.0.113.10 203.0.113.20
# NAT策略:匹配内网→外网流量,使用地址池做源NAT
nat-policy
rule name napt-pool
source-zone trust
destination-zone untrust
source-address 192.168.1.0 24
action source-nat address-group 1
效果 :PC 192.168.1.10 访问百度时,源 IP 被随机替换为地址池中的某个 IP(如 203.0.113.15),同时随机分配源端口。
安全策略必须配置(放行内网→外网):
bash
security-policy
rule name permit-internet
source-zone trust
destination-zone untrust
source-address 192.168.1.0 24
action permit
2️⃣ Easy IP(最常用)
适用:中小型网络,只有一个公网 IP(接口 IP 本身)。
配置:
bash
nat-policy
rule name easy-ip
source-zone trust
destination-zone untrust
source-address 192.168.1.0 24
action source-nat easy-ip // 直接使用出接口IP
效果 :PC 上网时,源 IP 被替换为接口 IP 203.0.113.2,端口随机。
优点:无需地址池,配置简单,自动适应接口 IP 变化(如 PPPoE 拨号)。
安全策略同上:允许 trust → untrust。
3️⃣ NAT Server(端口映射)
适用:让外网用户访问内网 Web 服务器(服务器没有公网 IP)。
配置:
bash
# 将公网IP 203.0.113.2 的 80 端口映射到内网 192.168.1.100 的 80 端口
nat server protocol tcp global 203.0.113.2 80 inside 192.168.1.100 80
效果 :外网用户访问 http://203.0.113.2 时,防火墙把目的地址改为 192.168.1.100:80,然后转发。
安全策略必须配置(允许外网 → 内网 Web 服务):
bash
security-policy
rule name permit-web
source-zone untrust
destination-zone trust
destination-address 192.168.1.100 32 // 注意:目的地址必须是转换后的内网地址
service http
action permit
常见错误:安全策略的目的地址写成公网 IP
203.0.113.2,这是错误的。因为包到达防火墙后先做 NAT(目的地址变成内网 IP),然后再匹配安全策略。安全策略需要匹配 NAT 后的地址。
验证命令(华为)
bash
display nat session all // 查看当前 NAT 会话
display nat server // 查看 NAT Server 配置
display security-policy rule all // 查看安全策略