NAT 如何处理 return 流量
How NAT handles return traffic
有一个静态 NAT 规则可以实现以下目的。
(对于这个问题,我们假设 WAN subnet
的子网为 1.1.1.1/24
)
在 port X
到 1.1.1.6
到 WAN interface
的入站流量被 NAT 到 LAN IP 192.168.0.1
。
现在这不是 1-1 NAT 规则,只是入站流量的静态 NAT。当 return 流量被发送回客户端时,防火墙是否知道将 NAT 流量返回到源 IP 为 1.1.1.6
的客户端?
我假设它必须?由于 TCP 是一种双向协议,如果客户端在与它发送流量的 IP 不同的 IP 上收到返回的流量,它会丢弃它吗?
这取决于 NAT 的类型。
如果是 many-to-one NAT,那就对了。出站数据包建立一个记录,用于了解如何处理入站数据包。这是最常见的 NAT 类型,也是典型家庭网络中使用的类型。
它是 one-to-one NAT,那么收到的任何发往 1.1.1.6(在您的示例中)的入站数据包都将被 NAT 到 192.168.0.1。
静态 1:1 NAT 定义了哪个内部地址转换为哪个外部地址,因此 NAT 路由器无需弄清楚;它已经在配置中提供给路由器。它只需要转换外部源数据包的目标地址和内部源数据包的源地址;一个简单的静态 table 查找。
当 NAT 不是静态的或 1:1 时,它会变得更加复杂。然后 NAT 路由器需要即时构建 tables,并为 table 条目创建超时。
有一个静态 NAT 规则可以实现以下目的。
(对于这个问题,我们假设 WAN subnet
的子网为 1.1.1.1/24
)
在 port X
到 1.1.1.6
到 WAN interface
的入站流量被 NAT 到 LAN IP 192.168.0.1
。
现在这不是 1-1 NAT 规则,只是入站流量的静态 NAT。当 return 流量被发送回客户端时,防火墙是否知道将 NAT 流量返回到源 IP 为 1.1.1.6
的客户端?
我假设它必须?由于 TCP 是一种双向协议,如果客户端在与它发送流量的 IP 不同的 IP 上收到返回的流量,它会丢弃它吗?
这取决于 NAT 的类型。
如果是 many-to-one NAT,那就对了。出站数据包建立一个记录,用于了解如何处理入站数据包。这是最常见的 NAT 类型,也是典型家庭网络中使用的类型。
它是 one-to-one NAT,那么收到的任何发往 1.1.1.6(在您的示例中)的入站数据包都将被 NAT 到 192.168.0.1。
静态 1:1 NAT 定义了哪个内部地址转换为哪个外部地址,因此 NAT 路由器无需弄清楚;它已经在配置中提供给路由器。它只需要转换外部源数据包的目标地址和内部源数据包的源地址;一个简单的静态 table 查找。
当 NAT 不是静态的或 1:1 时,它会变得更加复杂。然后 NAT 路由器需要即时构建 tables,并为 table 条目创建超时。