NAT Server 与目的Nat

目的NAT:数据到达NAT设备之后,更换IP头部的目的地址,用的比较多的是NAT Server

产生背景

Server Map 类型 是否需要经过安全策略检查?
ASPF(动态通道) 不需要(直接放行)
NAT Server(静态端口映射) 需要
NAT No-PAT(一对一 IP 映射) 需要

三种 Server Map 表的"反向"区别

特性 NAT Server NAT No-PAT ASPF
产生时机 静态:配置完成后立即生成,永久存在。 动态:内网主机首次访问外网触发后生成,有老化时间。 动态:在多通道协议(如FTP)协商过程中动态生成。
"反向"表的作用 为"出"服务:允许内网服务器主动访问外网时,直接使用表项进行源地址转换,无需额外的源NAT策略。 为"入"开门:在表项有效期内,允许外网主机使用相同的五元组信息主动访问内网主机。 为"回"放行 :为已通过安全策略的会话,开辟一条临时的数据通道,临时允许外部主机向内网发起连接
表项内容 正向Any -> 公网IP:端口 [内网IP:端口] 反向内网IP [公网IP] -> Any 正向内网IP:端口 <-> 公网IP:端口 反向外网主机:端口 <-> 内网IP:端口 单向动态外网服务器IP:端口 <-> 内网客户端IP:动态端口
本质目的 双向地址转换蓝图,打通出入通道,简化配置。 动态地址映射快照,加速回包转换,并临时允许反向访问。 临时通道许可证,解决特定协议的兼容性问题。

❓ 为什么NAT Server会产生"反向"的Server Map?

NAT Server 产生反向表,主要是为了 简化配置,让内网服务器访问外网更便捷

NAT Server 本身就是为了让外部能够访问内部而设计的,但它也考虑到了内网(Trust)区域的这台服务器本身可能也有访问外网(Untrust)的需求。如果没这张反向表,就需要额外再为这台服务器配置一个源 NAT(NAT Outbound)策略。而反向表默认被创建,使得内部服务器访问外部时,能直接匹配它来进行源地址转换:

bash 复制代码
Nat Server Reverse, 10.1.1.2[1.1.1.1] -> any

这意味着,仅通过一条 nat server 命令,防火墙就为服务器"出入"两个方向都打通了地址转换通道,简化了管理员的配置工作量。

当然,如果你不想要这个行为(比如希望强制服务器所有对外访问也必须通过严格的源NAT策略来管控),可以在配置 nat server 命令时,加上 no-reverse 参数来禁止生成反向表。

❓ 为什么ASPF不会产生"反向"的Server Map?

ASPF 不产生反向表,最核心的原因是:压根不需要,因为会话表(Session Table)已经完成了这个工作

对于FTP这类多通道协议,ASPF的工作流程是:

  1. 建立控制通道 :内网客户端访问外网FTP服务器,通过安全策略检查,建立控制通道,并生成会话表(Session Table)

  2. 协商数据通道:服务器通过控制通道告知客户端即将使用的数据通道端口。

  3. 创建动态通道:ASPF 捕获到这个端口信息,动态生成一个临时的 Server Map 表。

    • 这个临时表的作用是告诉防火墙:"稍后会有一个从外网发起的连接,它的目的地址和端口是X,这是合法的,直接进来吧。"(这就是你理解的"反向")
  4. 数据通信 :当服务器向客户端发起数据通道连接时,由于它匹配了ASPF生成的Server Map,报文被允许通过。防火墙会根据这个报文,为这条临时的数据通道也创建一个会话表(Session Table)

    • 一旦这个数据通道的会话表建立,服务器的后续回包就能直接匹配这个会话表进行转发,ASPF Server Map 的临时使命就完成了。

因此,ASPF 产生的临时 Server Map 不是为了创建一个"永久反向通道",而是作为"敲门砖",用来触发建立一条新会话。它的生命周期极短,不像NAT Server那样需要常驻来为两个方向服务。

**************************************************************************************************************

**************************************************************************************************************

有关server map表跟session表的一些思考总结

场景 第一个包(首包) 后续包(同一连接) 长期/新连接
NAT Server 匹配 Server Map(静态) 匹配 Session 表 新连接再次匹配 Server Map
ASPF 匹配 Server Map(动态临时) 匹配 Session 表 新连接(如另一个数据通道)再次匹配新的 Server Map

关键点 :无论哪种 Server Map,一旦首包创建了会话(Session),后续所有属于该连接的报文都会直接走 Session 表,不会再查 Server Map。

Session 表完全能够支撑双向流量的来回传递,这正是状态化防火墙的核心能力。


1️⃣ NAT Server:首包走 Server Map,后续走 Session

场景:外网用户 1.2.3.4:12345 访问 203.0.113.2:80(映射到 10.0.0.1:80

首包到达防火墙(TCP SYN):

  1. 防火墙查找会话表 → 未命中(因为这是一个新连接)。

  2. 查找 Server Map → 命中静态 NAT Server 表项:203.0.113.2:80 → 10.0.0.1:80

  3. 执行 DNAT(目的地址转换):目的 IP 改为 10.0.0.1,目的端口保持 80

  4. 检查安全策略(允许通过后)。

  5. 创建会话表项,记录这个连接的五元组及转换信息。

  6. 转发报文。

后续同连接的报文(同一个 TCP 连接,比如后续的 SYN-ACK、ACK、数据包):

  1. 防火墙查找会话表 → 命中(因为已经有了该连接的会话)。

  2. 直接使用会话表中的转换信息,不再查找 Server Map

  3. 转发。

为什么不能一直走 Server Map?

Server Map 是静态的、无状态的。它只告诉防火墙"如何转换地址",但不知道这个连接是否已经建立、处于什么状态。会话表则维护了连接的状态(如 TCP 序列号、老化时间等),并且查找速度极快。如果每个包都查 Server Map,不仅效率低,而且无法实现状态跟踪(比如 TCP 攻击防御、连接老化等)。


2️⃣ ASPF:首包(数据通道)走临时 Server Map,后续走 Session

场景:内网客户端经过 FTP 控制通道协商后,外网服务器主动发起数据通道连接(从服务器 20 端口到客户端某个高位端口)

  • 控制通道已经建立,会话表里有控制通道的会话。

  • 数据通道的第一个报文(外网服务器 → 内网客户端,TCP SYN,源端口 20,目的端口 34567):

  1. 防火墙查找会话表 → 未命中(因为这是一个新的连接,目的端口 34567 不是平时允许的)。

  2. 查找 Server Map → 命中 ASPF 动态生成的临时表项(该表项是在控制通道协商时由 ASPF 提前创建的,记录了允许这个数据通道的五元组)。

  3. 由于该 Server Map 自带"放行"属性(绕过安全策略检查)。

  4. 立即为该数据通道创建会话表项

  5. 转发报文。

此后该数据通道的所有后续报文(同一连接的后续包):

  1. 查找会话表 → 命中。

  2. 走会话表,不再查 Server Map。

  • 临时 Server Map 的命运:在创建会话表后,ASPF Server Map 可能很快被删除(或者保留很短的老化时间)。因为它已经完成了"开门"的使命,后续全部由会话表接管。

Session 表里必须同时存储正向和反向两条信息,否则防火墙根本不知道如何处理回程报文。

Session 表里到底有什么?

一个典型的 Session 表项(以 NAPT 为例,内网 192.168.1.100:12345 访问 8.8.8.8:80,防火墙出接口 IP 为 203.0.113.2):

方向 原始源 IP:端口 原始目的 IP:端口 转换后源 IP:端口 转换后目的 IP:端口
正向(内→外) 192.168.1.100:12345 8.8.8.8:80 203.0.113.2:56789 8.8.8.8:80
反向(外→内) 8.8.8.8:80 203.0.113.2:56789 8.8.8.8:80 192.168.1.100:12345

实际上在一个完整的 Session 表项里,正反向信息是成对存储的。当你用任意一端的五元组去查,都能命中同一条 Session 记录。


会产生反向的server map表

可以配置不产生反向的server map表,有些场景,服务器只需要外面能访问进来,不让里面的服务器能出去。

但是内部服务器往往也需要访问外网(服务器升级)一般来说都是TCP流量。


NAT Server也可能会有环路问题

NAT 转换,得是http服务才能匹配,如果是ping的ICMP包,是不会命中Nat Server的,FW1会查询路由,会命中默认路由转发出去,AR1又会根据静态路由转回到FW1。

华为的防环方案


目的NAT

这行命令敲上去会报错的,这与防火墙的流程有关。

目的NAT比较少用,用NAT Server都可以实现。


Smart NAT:NAPT + NOPAT

相关推荐
2401_873479402 小时前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络
7ACE3 小时前
Wireshark TS | TLP 超时时间
网络·网络协议·tcp/ip·wireshark·tcpdump
其实防守也摸鱼3 小时前
CTF密码学综合教学指南--第三章
开发语言·网络·python·安全·网络安全·密码学
其实防守也摸鱼3 小时前
CTF密码学综合教学指南--第四章
网络·笔记·安全·网络安全·密码学·ctf
草履虫君4 小时前
VMware 虚拟机网络性能优化指南:从 11 秒到 4 秒的完整调优实践
服务器·网络·经验分享·性能优化
@insist1234 小时前
信息安全-防火墙技术演进全景:从代理NAT 到下一代及专项防火墙
网络·安全·web安全·软考·信息安全工程师·软件水平考试
优化Henry4 小时前
TDD-LTE站点Rilink=3链路故障处理案例---BBU侧C口“有发光、无收光”的排查与恢复
运维·网络·信息与通信·tdd
浪客灿心4 小时前
Linux网络传输层协议
linux·运维·网络
段一凡-华北理工大学6 小时前
【高炉炼铁领域炉温监测、预警、调控智能体设计与应用】~系列文章06:智能决策:从经验驱动到数据驱动
网络·人工智能·数据挖掘·高炉炼铁·工业智能体·高炉炉温