Networking NAT如何处理返回流量

Networking NAT如何处理返回流量,networking,tcp,routing,nat,Networking,Tcp,Routing,Nat,有一个静态NAT规则可以实现以下功能 (对于这个问题,我们假设WAN子网的子网为1.1.1/24) 到端口X上到1.1.1.6的WAN接口的入站流量将被NAT到LAN IP 192.168.0.1 现在这不是1-1NAT规则,只是入站流量的静态NAT。当返回流量发送回客户端时,防火墙是否知道使用1.1.1.6的源IP将流量NAT回客户端 我想一定是吧?由于TCP是一种双向协议,如果客户端在不同的IP上接收到的流量与它发送流量的IP不同,它将丢弃该流量?这取决于NAT的类型 如果是多对一NAT,那

有一个静态NAT规则可以实现以下功能

(对于这个问题,我们假设
WAN子网
的子网为
1.1.1/24

端口X上
1.1.1.6
WAN接口的入站流量将被NAT到
LAN IP 192.168.0.1

现在这不是1-1NAT规则,只是入站流量的静态NAT。当返回流量发送回客户端时,防火墙是否知道使用
1.1.1.6
的源IP将流量NAT回客户端


我想一定是吧?由于TCP是一种双向协议,如果客户端在不同的IP上接收到的流量与它发送流量的IP不同,它将丢弃该流量?

这取决于NAT的类型

如果是多对一NAT,那么这是正确的。出站数据包建立一个记录,用于知道如何处理入站数据包。这是最常见的NAT类型,也是典型家庭网络中使用的类型


如果是一对一的NAT,那么任何发送到1.1.1.6(在您的示例中)的入站数据包都会被发送到192.168.0.1。

静态1:1 NAT定义了哪个内部地址转换为哪个外部地址,所以NAT路由器没有什么需要弄清楚的;它已在配置中提供给路由器。它只需转换外部源数据包上的目标地址,以及内部源数据包上的源地址;一个简单的、静态的表查找


当NAT不是静态的或1:1时,它会变得更复杂。然后NAT路由器需要动态构建表,并为表条目创建超时。

因此,即使没有明确的出站NAT规则,基于入站NAT,返回的数据包也会将源IP NAT设置为1.1.1.6?在一对一NAT的情况下,是的。如果您有少量的公共IP地址,则可以对所有正常机器使用多对一地址,但对执行服务器功能的机器使用多对一地址。对于那些具有一对一NAT和专用公共IP地址的用户,客户端可以启动入站连接,就像使用端口转发时一样——就像所有端口基本上都被转发一样。还有一种允许的多对一NAT,您可能不希望转发的数据包也被转发。例如,如果只有一个内部客户端正在使用特定端口,它可能会将绑定到该端口的每个数据包(无论源IP地址如何)NAT到该客户端。(有关更多信息,请参阅。)好的-但在我最初的问题中,它不是1-1 NAT,只是一个静态入站NAT。因此,在这种情况下,返回数据包的源IP不会被NAT到1.1.1.6,而是被NAT到任何存在的出站NAT规则(可能是所有客户端的默认值),返回数据包的源IP会被NAT到任何出站数据包创建的反射规则所说的。对于多对一NAT,出站数据包创建/刷新临时反射规则,以允许将应答NAT到正确的目的地。问题是-这不是1-1 NAT,而是静态NAT,因此基于入站NAT,返回的数据包源IP是否会被NAT到1.1.1.6?正如我所写,NAT路由器将需要动态创建表,您将配置超时,或者路由器在清除表项时使用其默认超时。有些人还将监视TCP会话何时正确终止,但当一方或另一方在没有通知的情况下消失时仍需要超时。该表的查找方式与1:1 NAT相同,但它只是没有预先配置,条目将在某个时候被清除。很抱歉,在我的评论中,这是肯定的还是否定的?是的,因为内部主机发起了对话,NAT路由器将创建NAT表条目。当外部流量进入路由器时,表项将告诉路由器是哪个内部主机发起了对话,它将重置超时计数器,并且内部主机应答将不会创建新的表项,而是在该过程中使用它第一次与外部主机联系时创建的上一个表项,正在重置超时计数器。来自外部的流量已命中1.1.1.6上的WAN接口,并已被NAT'ted为192.168.0.1。然后,该LAN设备发送一个返回数据包,但是对于从192.168.0.1到1.1.1.6的流量,没有静态NAT规则。但是防火墙是否知道根据原始流量将NAT流量来源为1.1.1.6。