Linux 正在缓存已建立连接的路由和 IP 信息。不对称路由问题

Linux 正在缓存已建立连接的路由和 IP 信息。不对称路由问题

我们有以下设置:

  1. 客户端 (10.10.0.2)
  2. 平衡器(eth1:10.11.0.3,eth2:10.12.0.1)
  3. 网络服务器(eth1:10.11.0.4、eth2:10.12.0.2 和 eth1:10.11.0.3 参见下文)
  4. 伪装路由器将 10.10 路由到 10.11。

每个都运行 ubuntu 18

TCP 连接从客户端通过平衡器到达网络服务器。

当 SYN 数据包到达平衡器 (10.11.0.3) 时,我对 Web 服务器的 IP (10.12.0.2) 进行 DNAT,它完美路由,出现在 Web 服务器上。

在网络服务器上,我对该数据包进行 DNAT 到 10.11.0.3(与平衡器相同的 IP,但附加到网络服务器)。

为了使 Web 服务器将 10.11.0.3 识别为本地且不与平衡器的 10.11.0.3 冲突,我在 Web 服务器上过滤 ARP 请求(谁拥有 10.11.0.3)。最后,我想让回复数据包从 eth1 10.11.0.3 直接发送到客户端。然而,数据包是从 eth2 发出的,因为连接已建立并且所有内容都已缓存,因此数据包会到达 eth2。

如果我运行以下设置:

客户端->平衡器->中介->网络服务器,我可以在中介处进行所有数据包修改,并且它可以完美地工作。如果网络服务器位于执行重整的同一台计算机上,则我无法重整回复数据包。

知道如何克服这个问题吗?

相关内容