公网IP不够还得私网套私网?华为防火墙两次NAT完整配置拿走就能用

做过园区网或者跟运营商打交道多的同行都见过这种局:出口公网地址紧张,运营商城域网内部自己用的还是私网地址——用户侧一层私网,运营商侧又一层私网,要访问公网就得连做两次 NAT。这种两次 NAT 的架构就是常说的 NAT444。华为 USG 防火墙官方文档里有一个完整的 NAT444 举例:CPE 上做一次 Easy IP,CGN 设备上再做一次 NAPT,两层转换全流程打通,而且原文带完整配置脚本,改改地址就能用。

官方组网长什么样

官方组网需求(照原文转述):CPE 的 GE0/0/1(trust 区,192.168.0.1/24)接用户私网,GE0/0/2(untrust 区,10.1.1.1/24)接运营商私网城域网,NAT 转换方式为 Easy IP;CGN 的 GE0/0/1(trust 区,10.1.2.1/24)接城域网侧,GE0/0/2(untrust 区,1.1.1.1/24)出公网,转换方式为 NAPT,地址池 1.1.1.11-1.1.1.20。

官方配置思路四条:先完成 CPE 的基础配置(接口地址并加入安全区域);在 CPE 上配 NAT 策略,让用户私网地址转换成运营商私网地址;完成 CGN 的基础配置;在 CGN 上配 NAT 策略,让运营商私网地址转换成公网地址。

怎么配(CLI 配置脚本照官方原文)

CPE 侧(用户私网 192.168.0.0/24 出城域网时转成出接口地址):

#
 sysname CPE
#
interface GE0/0/2
 ip address 10.1.1.1 255.255.255.0
#
interface GE0/0/1
 ip address 192.168.0.1 255.255.255.0
#
firewall zone trust
 set priority 85
 add interface GE0/0/1
#
firewall zone untrust
 set priority 5
 add interface GE0/0/2
#
 ip route-static 0.0.0.0 0.0.0.0 10.1.1.2
#
security-policy
  rule name policy_sec_1
    source-zone trust
    destination-zone untrust
    source-address 192.168.0.0 24
    action permit
#
nat-policy
  rule name policy_nat_1
    source-zone trust
    destination-zone untrust
    source-address 192.168.0.0 24
    action source-nat easy-ip
#
return

CGN 侧(运营商私网地址出公网时转成地址池 1.1.1.11-1.1.1.20):

#
 sysname CGN
#
interface GE0/0/2
 ip address 1.1.1.1 255.255.255.0
#
interface GE0/0/1
 ip address 10.1.2.1 255.255.255.0
#
firewall zone trust
 set priority 85
 add interface GE0/0/1
#
firewall zone untrust
 set priority 5
 add interface GE0/0/2
#
 ip route-static 0.0.0.0 0.0.0.0 1.1.1.2
 ip route-static 10.1.1.1 255.255.255.255 10.1.2.2
#
nat address-group address_1
 mode pat
 route enable
 section 0 1.1.1.11 1.1.1.20
#
security-policy
  rule name policy_sec_1
    source-zone trust
    destination-zone untrust
    source-address 10.1.1.0 24
    action permit
#
nat-policy
  rule name policy_nat_1
    source-zone trust
    destination-zone untrust
    source-address 10.1.1.0 24
    action source-nat address-group address_1
#
return

配完怎么验证(官方检查配置结果,原文转述)

  • 内网 PC 可以访问 Server 服务器。
  • 在 CPE 侧选择「监控 > 会话表」,可以查看到源地址为 PC 私网地址的会话。
  • 在 CGN 侧选择「监控 > 会话表」,可以查看到源地址为私网 PC 第一次 NAT 转换后的地址 10.1.1.1 的会话。

三步都过,说明两次转换每一跳都工作了。

几个容易踩的坑

  • CGN 上那条指向 10.1.2.2 的 10.1.1.1/32 主机路由不能漏,它负责把去往 CPE 出接口地址的回程流量引回 CPE,官方脚本里写得明明白白。
  • 两台设备的安全策略源地址不一样:CPE 放行的是 192.168.0.0/24,CGN 放行的是 10.1.1.0/24——官方原文特别注明"此源IP地址为CPE侧NAT转换的出接口IP地址网段",抄的时候别抄串了。
  • 地址池下的 mode pat、route enable 都是官方脚本原文自带的配置,照抄保留即可。
  • 所有接口地址、下一跳、地址池都是官方示例值,替换成自己网络的实际地址时,两台设备要同步改,改完按上面三条验证。

两层 NAT 的排障要点就在"每一跳分开看会话表"。贵州的企业做网络建设、多出口改造,可以找诚鑫致达科技聊聊。各厂商设备的命令与默认行为存在差异,本文步骤与命令均出自华为官方文档,操作前请核对你的设备型号与软件版本。