NAT与智能选路

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 policysource-zone trustdestination-zone Untrust_1source-address 192.168.1.0 mask 255.255.255.0destination-address 202.10.1.1 mask 255.255.255.255action 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-routeno-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 产生的表项略过安全策略检测。

          本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
          如若转载,请注明出处:http://www.pswp.cn/pingmian/91696.shtml
          繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91696.shtml

          如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

          相关文章

          【05】VisionMaster入门到精通——圆查找

          文章目录1 运行参数先检测出多个边缘点然后拟合成圆形,可用于圆的定位与测量 1 运行参数 先检测出多个边缘点然后拟合成圆形,可用于圆的定位与测量——运行参数 扇环半径——圆环ROI的内外圆半经; 边绿类型 最强——只检测扫描范围内梯度最…

          p5.js 用 beginGeometry () 和 endGeometry () 打造自定义 3D 模型

          点赞 关注 收藏 学会了 在 p5.js 的 3D 绘图中,这两个函数是一对 “黄金搭档”: beginGeometry():像一个 “3D 模型的开关”,调用它之后,你画的所有简单 3D 形状(比如球体、圆锥)都会被 “…

          (9)NMPC非线性模型预测控制及机械臂ROS控制器实现

          前言 本篇介绍Nonlinear Model Predictive Control,非线性模型预测控制,MPC是一种现代先进的控制方法,而NMPC特指对非线性模型的控制,其核心思想是在每个控制周期内利用系统的非线性模型及损失函数,预测未来一段时间内…

          达梦数据库备份与还原终极指南:从基础到增量策略实战

          第一部分:备份与还原核心原理 一、备份还原本质解析数据存储机制 数据存储在物理文件页中(最小单位4K-32K)有效数据页 文件描述页 已分配使用页日志优先原则:操作先写REDO日志再更新数据文件三大核心操作操作作用关键特性备份复…

          设计模式篇:在前端,我们如何“重构”观察者、策略和装饰器模式

          设计模式篇:在前端,我们如何“重构”观察者、策略和装饰器模式 引子:代码里“似曾相识”的场景 作为开发者,我们总会遇到一些“似曾相识”的场景: “当这个数据变化时,我需要通知其他好几个地方都更新一…

          Node.js 服务可以实现哪些功能

          以下是 Node.js 服务可以实现的 100 个功能,涵盖 Web 开发、工具链、系统集成、自动化等方向,按类别分类整理:一、Web 开发相关 RESTful API 服务GraphQL 服务实时聊天应用(WebSocket/Socket.IO)博客/CMS 系统电子商务…

          如何安装和使用 Cursor AI 编辑器

          在软件开发领域,几乎每天都有新工具涌现,找到最适合您工作流程的工具可能会改变游戏规则。Cursor 是一款 AI 驱动的代码编辑器,其革命性的 API 管理插件 EchoAPI 就是其中的代表。它们强强联手,承诺在一个强大的平台内简化您的编码…

          LangChain框架概念及简单的使用案例

          一、LangChain介绍LangChain是一个强大的用于开发大模型应用程序的框架,为开发提供丰富的工具和组件,使得构造复杂的自然语言处理变得更加高效和便捷。它允许开发者将大语言模型与其他数据源工具集成,从而创建出能处理各种任务的智能体应用&a…

          安卓audio 架构解析

          audio_port_handle_t • 定义:audio_port_handle_t标识音频设备(如扬声器、耳机)或虚拟端口(如远程 submix)。它在设备连接或策略路由时由AudioPolicyManager分配,例如通过setDeviceConnectionState()动态注…

          GitHub 上 Star 数量前 8 的开源 MCP 项目

          原文链接:https://www.nocobase.com/cn/blog/github-open-source-mcp-projects。 MCP 这个词真正被广泛提起,是在 2025 年年初,尤其是在 AI 工具开发圈。3 月,一场围绕 “MCP 是否能成为未来标准协议” 的争论彻底点燃了讨论热度…

          【数据结构与算法】数据结构初阶:排序内容加餐(二)——文件归并排序思路详解(附代码实现)

          🔥个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》、《数据结构与算法》、C语言刷题12天IO强训、LeetCode代码强化刷题 🍉学习方向:C/C方向 ⭐️人生格言:为天地立心,为生民立命,为…

          Jetson Orin NX/NANO+ubuntu22.04+humble+MAVROS2安装教程

          MAVROS2目前不是官方提供的标准,主要区别还是通信机制的不同,以及API接口的区别,在使用的过程中,根据对应的版本安装即可,此处进提供简易的二进制安装方法,源码安装暂不提供,前去使用mavros即可…

          Ubuntu 安装 ns-3 教程

          Ubuntu 安装 ns-3最全 教程 1. 环境更新 sudo apt update sudo apt install git2. Ns3 最低依赖要求 2.1 安装依赖 安装依赖网址:根据自己安装的版本安装对应依赖。 https://www.nsnam.org/wiki/Installation Ubuntu/Debian/Mint 以下软件包列表在 Ubuntu 22.…

          《林景媚与命运解放者》

          《林景媚与命运解放者》——当数据库成为命运的主宰,谁将成为人类自由意志的解放者?《林景媚数据库宇宙》系列第十二部第一章:解放者的召唤公元 2098 年,随着“命运终结者”的威胁被解除,PostgreSQL Quantum Engine&am…

          linux编译基础知识-头文件标准路径

          &#x1f4c2; ​​1. 系统路径结构差异​​ 要查看 GCC 的默认头文件搜索路径&#xff0c;可通过以下方法操作&#xff08;以 Linux 环境为例&#xff09;&#xff1a; ​​1. 查看 C 语言头文件路径​​ gcc -v -E -xc - < /dev/null 2>&1 | grep -A 100 "#in…

          离线语音芯片有哪些品牌和型号?

          离线语音芯片的品牌有很多&#xff0c;型号也有很多&#xff0c;因为离线语音芯片的市场很大&#xff0c;几乎所有的想要语音控制的产品都可以通过增加一颗离线语音芯片来实现语音控制的能力&#xff0c;今天主要提到的就是离线语音芯片品牌厂家之一的唯创知音。唯创知音发展历…

          Linux 软件包管理

          Linux 软件包管理 分析 RPM 包 Linux 发行版本以 RHEL 为代表的发行版本&#xff0c;使用rpm包管理系统&#xff1a; RHEL (Red Hat Enterprise Linux&#xff09;Fedora&#xff08;由原来的RedHat桌面版本发展而来&#xff0c;免费版本&#xff09;CentOS&#xff08;RHEL的…

          使用 Vue 3.0 Composition API 优化流程设计器界面

          &#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

          2025Nacos安装Mac版本 少走弯路版本

          https://github.com/alibaba/nacos 一开始看网上文章&#xff0c;随便下了一个最新的3.0.2&#xff0c;然后出现很多错误 密钥等等问题&#xff0c;最后启动了&#xff0c;但是打不开链接&#xff1a;http://localhost:8848/nacos 然后开始找问题日志&#xff0c;/.nofollow/…

          sifu mod制作 相关经验

          sifu mod制作一遍流程数据传递后拆开是ok的&#xff0c;没必要合并 断片不能使用原材质不然导入ue里没法片段选择 效果拔群 带自动权重就会有跟随骨骼的效果&#xff0c;空顶点组会跟随父级的原点 这个选负的会抵消胶囊的碰撞效果 应用并刷新布料模拟&#xff08;相当于工程图的…