1

我在玩 NLB。一个特点是它可以保留客户端源IP。我测试了它并且它有效。但是,有没有人想知道它是如何工作的?

假设我的家用 PC 是 HTTP 请求的客户端,它位于公共 IP 1.1.1.1 后面

NLB 在公共端的 IP 为 2.2.2.2。目标组中真正的 webserver 是私有 IP 192.168.0.10 的实例。该实例也在公有子网中,它的弹性 IP 为 2.2.2.10。

我通过服务器上的数据包捕获 (tcpdump) 确认我看到来自 1.1.1.1 的请求。我看到响应也回到了 1.1.1.1。但是,我家用 PC 的 Wireshark 会显示往返 2.2.2.2 的流量,而不是 2.2.2.10……这怎么可能?

从路由的角度来看,服务器会收到来自 1.1.1.1 的请求,并将响应发送回给它。响应将遍历 IGW,而不是 NLB,因此在 Internet 上时将具有 2.2.2.10。我的电脑会拒绝连接,因为响应来自不同的 IP (2.2.2.10) 而不是原始 IP (2.2.2.2)。

NLB 是否以某种方式与 IGW 相关联,在这种情况下,IGW 会知道 SNAT 对 2.2.2.2 而不是 2.2.2.10 的响应?

谢谢,迪凡

4

0 回答 0