绑定远程IP

绑定远程IP

我有两台服务器,希望其中一台服务器能够使用另一台服务器的一些外部 IP。服务器 A 有 20 个 IP,服务器 B 有 5 个,所以我希望 B 使用 A 的 5 个 IP。

我该怎么办呢?我需要创建 5 个从 A 到 B 的 openvpn 隧道吗?我的目标是让服务器 B 拥有 10 个不同的传出 IP。

答案1

好吧,从广义上讲,这是您的选择。我想您可以进行研究,然后根据需要提出后续问题。在本讨论中,A 拥有您想要在 B 上使用的 IP 地址。

网络地址转换

流量被路由到 A。然后 A 执行 SNAT 和 DNAT。不幸的是,这实际上只适用于传入连接。听起来你想出境。不过,您可以通过在 B 上执行 DNAT(将连接发送到 A)然后在 A 上执行 SNAT 和 DNAT 以从正确的 IP 发送连接来实现此目的。

对于一项服务的传入流量,这是两种最简单的方法之一,另一种是代理。对于传出流量,听起来比实际要复杂得多——只有几个iptables命令。

分配工作负载

从 A 生成传出连接。将生成的数据发送回 B。这当然需要一些工作来设置,但它是最具可扩展性的解决方案。完成工作后,您可以根据需要添加服务器 C、D、E 等。

代理

您可以在 A 上设置 HTTP 或 SOCKS 代理。然后从 B 连接到该代理。可以将代理配置为在 A 上的多个 IP 之间分配负载。

OpenSSH的端口转发基本是同样的思路。您可以通过现有连接动态更改端口转发,但我不确定以什么速率 — OpenSSH 可能不适用于您的出站应用程序。

隧道

建造隧道的方法有很多种。要查看的基本隧道是未加密的隧道(如 IPIP 和 GRE)以及加密的隧道(如 OpenVPN 和 IPsec ESP)。

基本上,它们都是这样工作的:您在两台服务器之间设置虚拟链接。然后,您使用普通的内核路由机制来引导链路上的流量,就像使用以太网电缆或串行线路一样。您可以根据需要通过一个链接发送任意数量的地址。

请注意,除非您可以关闭反向路径过滤,否则您必须执行策略路由以确保传出数据包通过链路,而不是直接到达默认网关。

许多隧道都有降低 MTU 的缺点。您应该能够通过减少 TCP MSS 来进行补偿。或者,您也无法降低 MTU,但会产生大量碎片。

建立隧道将使您的 IP 成为 B 上的本地 IP;与下面的专线相同。其他方法则不然。

租用专线

包括在内只是为了完整性,因为在服务器 B 上购买更多 IP 肯定会更便宜,但您可以在服务器之间租用 T1(等)。然后您可以通过它路由流量。

不要作恶

阅读了有关该问题的其余评论后,不被阻止的主要方法是不要辱骂。保持你的请求率尽可能低,尊重robots.txt等等。

相关内容