两次NAT转换不想敲命令行?华为防火墙Web界面点着配完NAT444

接手过一个典型局:出口公网 IPv4 地址紧张,内网用户还全在私网段里,中间隔的城域网自己也是私网地址——私网用户要访问 Internet,得在 CPE 和 CGN 两台设备上各做一次 NAT(也就是 NAT444 场景)。这个拓扑用命令行配,前面已经有人整理过整套脚本;但现场不是人人都熟命令行,好在这套场景华为官方同时给了 Web 网管的操作举例,页面上点着就能配完。本篇把官方 Web 版的每一步页面路径和参数原样搬过来,照着点就行。

场景与数据规划(官方组网需求转述)

A 运营商公网 IPv4 地址匮乏,内部城域网使用私网 IPv4 地址。为满足城域网下的私网用户访问 Internet 的需求、尽量节约公网地址,需要在 CPE 和 CGN 设备上两次使用 NAT。官方示例的接口与地址规划如下(interface1/interface2 分别代表 GE0/0/1 和 GE0/0/2):

设备 接口 规划
CPE GE0/0/1 安全区域:trust,IP 192.168.0.1/24(内网侧)
CPE GE0/0/2 安全区域:untrust,IP 10.1.1.1/24(城域网侧)
CPE NAT 转换 转换方式:Easy IP,出接口 GE0/0/2
CGN GE0/0/1 安全区域:trust,IP 10.1.2.1/24
CGN GE0/0/2 安全区域:untrust,IP 1.1.1.1/24(Internet 侧)
CGN NAT 转换 转换方式 NAPT,地址池 1.1.1.11~1.1.1.20

官方配置思路四步:CPE 基础配置(接口地址+安全区域)→ CPE 上配 NAT 策略把用户私网地址转成运营商私网地址 → CGN 基础配置 → CGN 上配 NAT 策略把运营商私网地址转成公网地址。

CPE 侧:Web 页面操作步骤(官方原文)

第 1 步,配接口地址并加入安全区域。

  • 选择"网络 > 接口"。
  • 在"接口列表"中,单击接口 GE0/0/2 所在行的配置入口,按如下参数配置:安全区域 untrust,IPv4 地址 10.1.1.1/24。
  • 在"接口列表"中,单击接口 GE0/0/1 所在行的配置入口,按如下参数配置:安全区域 trust,IPv4 地址 192.168.0.1/24。
  • 单击"确定"。

第 2 步,配安全策略。

  • 选择"策略 > 安全策略 > 安全策略"。
  • 在"安全策略列表"中,单击"新建",选择"新建安全策略",参数:名称 security_policy,源安全区域 trust,目的安全区域 untrust,源地址 192.168.0.0/24,动作 允许。
  • 单击"确定"。

第 3 步,配出接口方式的源 NAT 策略,让报文的用户私网地址转换成 CPE 的 GE0/0/2 接口地址(即 Easy IP 方式)。

  • 选择"策略 > NAT策略 > NAT策略 > NAT策略"。
  • 在"NAT 策略列表"中,单击"新建",按组网规划配置:源安全区域 trust、目的安全区域 untrust、源地址 192.168.0.0/24,转换方式选择出接口地址(Easy IP),出接口 GE0/0/2。
  • 单击"确定"。

第 4 步,配缺省路由(官方假设 CPE 连接城域网的下一跳为 10.1.1.2)。

  • 选择"网络 > 路由 > 静态路由",单击"新建":目的地址/掩码 0.0.0.0/0.0.0.0,下一跳 10.1.1.2。

CGN 侧:Web 页面操作步骤(官方原文)

第 1 步,配接口地址并加入安全区域。

  • 选择"网络 > 接口"。
  • GE0/0/2:安全区域 untrust,IP 地址 1.1.1.1/24。
  • GE0/0/1:安全区域 trust,IP 地址 10.1.2.1/24。
  • 单击"确定"。

第 2 步,配安全策略。

  • 选择"策略 > 安全策略 > 安全策略",单击"新建",选择"新建安全策略":名称 security_policy,源安全区域 trust,目的安全区域 untrust,源地址 10.1.1.0/24,动作 允许。
  • 官方特别注明:这里的源地址是 CPE 侧 NAT 转换的出接口 IP 地址网段,别填成用户原始网段。

第 3 步,配 NAT 地址池和源 NAT 策略,把运营商私网地址转换成公网地址。

  • 选择"策略 > NAT策略 > NAT策略 > 源转换地址池",在"源转换地址池列表"中单击"新建",按组网规划配置地址池 1.1.1.11~1.1.1.20(NAPT 方式),单击"确定"。
  • 选择"策略 > NAT策略 > NAT策略 > NAT策略",单击"新建":源安全区域 trust、目的安全区域 untrust、源地址 10.1.1.0/24,转换方式选刚建的地址池。
  • 单击"确定"。

第 4 步,配路由(官方假设 CGN 连 Internet 的下一跳为 1.1.1.2,连 CPE 的下一跳为 10.1.2.2)。

  • 选择"网络 > 路由 > 静态路由",单击"新建":目的地址/掩码 0.0.0.0/0.0.0.0,下一跳 1.1.1.2。
  • 再新建一条:目的地址/掩码 10.1.1.1/255.255.255.255,下一跳 10.1.2.2。这条 32 位明细路由是给回程流量指路的,指向 CPE 转换后的出接口地址。

配套的还有两端终端:Server 侧配置 IP 2.2.2.2/32,且 Server 上需要有到 CGN 地址池地址的路由;PC 侧配置地址并指定网关(官方说明 PC 配置方法与操作系统有关,从略)。

配完后设备上的配置脚本(官方原文,供逐行核对)

页面点完不放心,可以和官方给的整机脚本对一遍。CPE:

#                                                                               
 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:

#                                                                               
 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 的会话。

判读要点:CPE 会话表里源还是用户私网地址、CGN 会话表里源已经变成 10.1.1.1,说明第一跳转换生效;CGN 上再把 10.1.1.1 转进 1.1.1.11~1.1.1.20 地址池,第二跳也就通了。哪一级会话表里看不到条目,问题就出在哪一级的策略或路由上。

容易踩的坑(官方注意事项转述)

  • CGN 安全策略的源地址是 10.1.1.0/24(CPE 转换后网段),不是用户原始的 192.168.0.0/24——两级 NAT 中间"看到"的源已经变过一次,策略匹配要用转换后的网段。
  • CGN 上那条 10.1.1.1/32 的静态明细路由不能省,否则回程流量找不到 CPE。
  • Server 侧必须有到 CGN 地址池(1.1.1.11~1.1.1.20)的路由,否则回包发不回来。
  • 地址池用 NAPT 方式(mode pat),公网地址才能按端口复用,这正是"节约公网地址"的初衷。

两级地址转换这类出口改造,规划清楚每一跳的网段和路由再动手,能少走很多弯路。贵州的企业做出口改造、运营商侧对接,可以找诚鑫致达科技聊聊。各厂商设备的命令与页面参数存在差异,本文步骤与脚本均出自华为官方文档,操作前请核对你的设备型号与软件版本。

源:华为官方文档 USG防火墙6000F-S/security_cfgcase_cgn_0002_22.0_webcopy.md《Web举例:使用NAT444实现私网IPv4用户穿越运营商私网网络访问IPv4 Internet》