1、NAT 基础概念

  • 核心作用:私网地址无法在 Internet 上直接使用和分配,NAT 通过将私有地址与公有地址及端口进行转换,实现私网与公网的通信。
  • 转换示例:
    • 内网用户(10.1.1.1)访问外网 FTP Server(123.3.2.3)时,源 IP 会被替换为公有地址(123.3.2.1)。
    • 外网 FTP Server(123.3.2.3)回应内网用户时,目的 IP 会从公有地址(123.3.2.1)替换为私网地址(10.1.1.1)。
  • 分类:
    • 源 NAT:使内部用户能够访问外部网络,包括地址池方式、出接口地址方式(Easy IP)等。
    • 服务器映射:让外部用户可以访问私网服务器,如静态映射。
    • 地址池特性:当地址池中存在多个公网 IP 地址时,进行 NAT 转换时使用的公网地址是随机的。

2、源 NAT 详细解析

NAT策略

NAT策略是由 条件+动作组成。

源NAT转换 --- 必须引用NAT地址池

不进行NAT转换

源 NAT 类型及特性

源 NAT 类型私网 IP 和公网 IP 的数量对应关系是否转换端口适用场景配置要点
NAT No-PAT一对一否需要固定公网 IP 的场景,如特定服务器对外提供服务创建地址池时指定模式为 no-pat,配置 NAT 策略引用该地址池
NAPT多对一、多对多是大量私网用户共享少量公网 IP 访问外部网络地址池模式选择为 pat,其余配置与 no-pat 类似
出接口地址方式(easy-ip)多对一是公网接口 IP 地址动态获取的情况在 NAT 策略的动作中指定为 source-nat easy-ip
Smart NAT(仅 USG9000 系列支持)一对一(预留 IP 做多对一转换)否(预留 IP 做端口转换)防止用户数量激增导致地址不足创建地址池并设定保留地址,需通过命令行配置 smart-nopat
三元组 NAT(仅 USG9000 系列支持)多对一、多对多是适用于 P2P 应用地址池模式设为 full-cone global,支持端口一致性和外网主动访问

配置示例及说明

NAT No-PAT 配置:该方式代表不进行端口转换,只进行IP地址转换

需求:FW上源NAT,模式为no-pat

将公网IP202.10.1.10--->加入地址池1

将公网IP202.10.2.10--->加入地址池2

创建 NAT 地址池:

[FW]nat address-group nat_address_1
[FW-address-group-nat_address_1]mode no-pat global
[FW-address-group-nat_address_1]section 202.10.1.10

创建 NAT 策略:

[FW]nat-policy
[FW-policy-nat]rule name policy-1
[FW-policy-nat-rule-policy-1]description to_server
[FW-policy-nat-rule-policy-1]source-zone trust
[FW-policy-nat-rule-policy-1]destination-zone Untrust_1
[FW-policy-nat-rule-policy-1]source-address 192.168.1.0 24
[FW-policy-nat-rule-policy-1]destination-address 202.10.1.1 32
[FW-policy-nat-rule-policy-1]action source-nat address-group nat_address_1

防火墙检测流量是否符合安全策略的操作,是发生在检测源NAT策略之前,所以,如果要针对源IP 设置NAT策略,那么应该做源NAT转换前的IP地址 --- 先进行安全策略检测,在进行源NAT转换。

特性:会产生正反两条 server-map 表项,在表项未老化前,外部设备在安全策略放行的情况下可访问内部设备,且命中 server-map 表后仍需安全策略允许。

NAPT 配置:与 no-pat 配置类似,仅在地址池模式选择时为 pat,且不会产生 server-map 表项。

easy-ip 配置:

[FW]nat-policy
rule name policy_1
source-zone trust
destination-zone Untrust_1
source-address 192.168.1.0 mask 255.255.255.0
destination-address 202.10.1.1 mask 255.255.255.255
action source-nat easy-ip

 特殊现象及解决

  • 现象:短时间内访问多个不同目标时,使用相同的 NAT 地址。
  • 原因:NAT No-PAT 会产生正反两条 server-map 表项,导致该现象。
  • 示例:
  • [EW]display firewall server-map
    2025-08-0207:03:28.160 Current Total Server-map:2
    Type:No-Pat Reverse,ANY->202.10.1.10[192.168.1.1],Zone:---
    Protocol:ANY,TTL:---,Left-Time:---,Pool:0,Section:0
    Vpn:public
    Type:No-Pat,192.168.1.1[202.10.1.10]->ANY,Zone:--- Protocol:ANY,TTL:360,Left-Time:358,Pool:0,Section:0
    Vpn: public
    

    Smart NAT

    聪明的NAT 逻辑:假设该方式下,NAT地址池存在N个IP地址,其中1个会被指定为预留地址,另外N-1个地址 构成地址族1,进行NO-PAT转换,而预留的1个进行NAPT转换,优先使用no-pat转换方式,只有该地 址被使用完,才会进行NAPT转换,一般被用于防止用户数量激增的情况。

      [FW]nat address-group 1
      [FW-address-group-1]mode no-pat global 
      [FW-address-group-1]section 202.10.1.10 202.10.1.10
      [FW-address-group-1]smart-nopat 202.10.1.20  ---设定保留地址,该命令只能通过命令行配置,
      无法通过web界面配置
      [FW-address-group-1]route enable
      rule name policy
       source-zone trust
       destination-zone Untrust_1
       source-address 192.168.1.0 mask 255.255.255.0
       destination-address 202.10.1.1 mask 255.255.255.255
       action source-nat address-group 1

      三元组NAT

      设备在进行NAT转换时,需要关注的是源IP、目的IP、源端口、目的端口以及协议五个参数。 三元组NAT仅关注源IP、源端口和协议。 三元组NAT是针对于P2P应用。(peer to peer)

      P2P客户端首先会在P2P服务端进行交互,留存自己的信息,IP+端口。当某个客户端想要找另一个 客户进行文件下载时,服务器会将对端客户的信息下放给该客户端,两个客户端直接进行通讯。

      存在防火墙时,对P2P业务的影响: 1、PC1没有主动访问PC2,不存在会话表和server-map表项,则PC2正常情况下无法主动访问到PC1 2、因为P2P业务需要周期性去向服务器注册信息,而经过防火墙NAT后,信息刷新,会影响P2P业务正常运行

      三元组NAT解决上述问题:

      对外呈现端口一致性:

      PC1一旦访问了P2P服务器,则在一段时间内,PC1再次访问P2P服务器或其他业务时,防火墙 会将端口转换为与第一次相同的端口。

      支持外网主动访问:

      无论PC1是否主动访问过PC2,只要PC2获取了PC1经过NAT转换后的地址和端口,都可以主动 访问。

      且防火墙上即使没有安全策略,也允许此类报文的通过。

      逻辑:通过利用类似no-pat机制和server-map表项来实现。并非是真正的no-pat机制。

      [FW]nat address-group aa
      [FW-address-group-aa]mode full-cone global  --- 三元组NAT方式
      [FW-address-group-aa]section 202.10.1.10 
      [FW-address-group-aa]route enable
      

      三元组NAT分为两种:

      1、本地三元组:server-map表项中包含zone,只有该区域中的主机可以访问内部主机

      2、全局三元组:server-map表项中不包含zone,任何区域中的主机可以访问内部主机

      默认需要受到安全策略控制,但是该功能可调整。

      [FW]firewall endpoint-independent filter enable   --- 开启端点无关过滤功能 --- 开启后,此时的server-map表项不再受到安全策略控制

      多出口场景下的源NAT技术

      为什么出口要分部在不同的安全区域?

      将防火墙上连接不同ISP的出接口加入到不同的安全区域,然后基于不同的安全区域关系来配置不同 的源NAT策略。

      3、目的 NAT(NAT Server)

      概念及特点

      • 是一种特殊的目的 NAT,用于实现外部用户对私网服务器的访问,需要公网 IP 地址。
      • 建议:不要将防火墙的公网接口 IP 地址配置为 NAT Server 的公网 IP 地址,若必须使用,需指定协议和端口避免冲突。

      配置示例

      [FW]nat server global 1.1.1.1 inside 10.1.1.1
      nat server 0 protocol tcp global 1.1.1.1 9980 inside 10.1.1.1 www
      
      • 配置后会生成静态的 server-map 表项,正向用于公网访问私网转换,反向用于内部服务器主动访问公网转换。

      NAT Server配置完成后,会生成server-map表项。不过与源NAT不同,NAT Server产生的server map表项是静态的。即该表项一致会存在。

      正向 --- 任何公网PC访问,都会进行转换

      反向 --- 当内部服务器主动访问公网时,进行转换,不需要单独为该服务器配置源NAT策略

      配置目的NAT的安全策略时,策略的目的地址应配置为服务器的私网地址(即转换后的地址),端口也 相同逻辑 --- 原因是因为FW处理过程中,目的NAT处于安全策略匹配之前匹配。

      当外部PC发送的流量成功经过FW,并产生会话表信息后,服务器的影响报文会直接匹配会话表进行 转发,不会去查找server-map表项。

      nat server 0 protocol tcp global 1.1.1.10 9980 inside 10.1.1.1 www unr-route---unr-route参数代表UNR路由,即配置黑洞路由信息

      允许服务器使用公网地址上网 选项,出于安全考虑,如果服务器无主动访问外网需求,则不建议开启。

      nat server 0 protocol tcp global 1.1.1.10 9980 inside 10.1.1.1 www no-reverse 
      unr-route
                      no-reverse  --- 代表不允许服务器使用公网地址上网
      

      安全策略配置

      • 策略的目的地址应配置为服务器的私网地址(转换后的地址),因为 FW 处理过程中,目的 NAT 处于安全策略匹配之前。
      • 示例:
        名称 0
        描述 服务器映射(0)引入
        源安全区域 any
        目的安全区域 trust
        目的地址地区 10.1.1.1
        服务 TCP:src-port0-65535,dst-port80
        动作 允许
        

      多出口场景下的 NAT Server

      在防火墙作为出口网关,双出口,双ISP接入公网时,NAT Server需要一分为二。让一个私网服务器 向两个ISP发布两个不同的公网地址。

      • 方法一:将不同 ISP 的公网接口划分到不同安全区域,配置 NAT Server 时携带 zone 参数。
        [FW]nat server zone Untrust_1 protocol tcp global 11.0.0.10 9980 inside 192.168.1.1 80
        [FW]nat server zone Untrust_2 protocol tcp global 12.0.0.10 9980 inside 192.168.1.1 80
        
      • 方法二:将不同 ISP 的公网接口划分到相同安全区域,配置时关闭内部服务器使用公网地址上网功能。
        [FW]nat server protocol tcp global 12.0.0.10 9980 inside 192.168.1.1 80 no-reverse
        [FW]nat server protocol tcp global 11.0.0.10 9980 inside 192.168.1.1 80 no-reverse
        

      一定一定注意,报文是否会出现来回路径不一致问题 --- 该问题是所有的多出口场景都需要考虑的问题。

      为了确保流量走向来回路径一致,故防火墙增加了源进源回功能。即请求报文从某条链路进入,响 应报文依然沿着某条路径返回,而不再需要查找路由表来确定出接口

      • 路径一致性:开启源进源回功能,确保请求和响应报文路径一致。
        [FW-GigabitEthernet1/0/1]redirect-reverse next-hop 11.0.0.2
        [FW-GigabitEthernet1/0/1]gateway 11.0.0.2
        [FW-GigabitEthernet1/0/2]redirect-reverse next-hop 12.0.0.2
        [FW-GigabitEthernet1/0/2]gateway 12.0.0.2
        

      4、静态目的 NAT

      模式及配置

      静态 1 对 1(地址到地址模式):

      创建目的 NAT 地址池:

      [FW]destination-nat address-group nat01
      [FW-dnat-address-group-nat01]section 192.168.1.2 192.168.1.3
      

      创建 NAT 策略:

        1. [FW]nat-policy
          [FW-policy-nat]rule name policy_nat01
          [FW-policy-nat-rule-policy_nat01]source-zone untrust
          [FW-policy-nat-rule-policy_nat01]destination-address range 12.0.0.10 12.0.0.11
          [FW-policy-nat-rule-policy_nat01]action destination-nat static address-to-address address-group nat01
          
        2. 公网地址和私网地址的绑定关系是按照顺序执行的
        3. 其他模式:
          • 静态 1 对 1(端口到端口模式):将公网端口与私网端口一对一映射。
          • 静态 1 对多(端口到地址模式):通过公网地址的不同端口映射不同私网地址的同一端口。
          • 静态多对 1(地址到端口模式):通过不同公网地址的相同端口映射内网相同地址的不同端口。

        特点

        • 不会产生 server-map 表项,公网与私网地址的绑定关系按顺序执行。

        5、双向 NAT

        概念

        • 同时改变报文的源 IP 和目的 IP,由源 NAT+NAT Server 共同实现,针对同一条数据流。

        分类及配置

        • 域间 NAT:
          • NAT Inbound(外网访问内网):源 NAT 与 NAT Server 配合。
          • NAT Outbound(内网访问外网):直接使用 NAT Outbound。
        • 域内 NAT:源地址和目的地址属于相同安全区域,需域内 NAT 和 NAT Server 配合。

        示例(NAT Inbound + NAT Server)

        安全策略 

        security-policy rule name untrust_to_trust
        source-zone untrust
        destination-zone trust
        destination-address 192.168.1.1 mask 255.255.255.255
        service http
        service https
        action permit
        

         NAT Server:

          [FW]nat server protocol tcp global 202.1.1.10 9980 inside 192.168.1.1 80
          

           源 NAT:创建地址池 nat01(IP 为 192.168.1.10),并配置 NAT 策略引用该地址池。

          处理机制

          • 防火墙先进行目的 NAT,然后进行安全策略判断,最后进行源 NAT 处理。

          该场景中,明明目的NAT已经可以完成任务,为何还需要使用双向NAT机制。

          秘密在于私网服务器对回应报文的处理方式上。

          如果是双向NAT,则服务器会直接发送ARP报文来查询目的地,完成转发,此时防火墙代替回复ARP报文,将连接私网服务器的接口的MAC地址发送给服务器。

          而这样的好处就是服务器不再需要网关。 --- >前提:私网服务器必须与防火墙处于相同网段。

          6、域内 NAT + NAT Server

          适用场景

          • 服务器和访问终端处于防火墙相同接口下,内网用户通过公网域名访问内部服务器。

          问题及解决

          • 问题:来回路径不一致,去时经过 NAT 转换,回程未经过,导致报文被丢弃。
          • 解决思路:将源 IP 地址替换为公网 IP 地址,使服务器将报文发送给 FW,再由 FW 恢复目的 IP 后转发给 Client。

          7、NAT 相关重要机制

          • 安全策略与 NAT 策略顺序:防火墙先检测安全策略,再进行源 NAT 转换;目的 NAT 在安全策略匹配之前进行。
          • 黑洞路由:部分 NAT 类型(如 No-PAT、Smart NAT)建议开启,防止路由环路,通过route enable命令配置。
          • server-map 表项:不同 NAT 类型产生的 server-map 表项特性不同,如 NAT No-PAT 产生的表项略过 NAT 策略匹配,ASPF 产生的表项略过安全策略检测。
          Logo

          北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

          更多推荐