我正在将旧服务器移至新服务器,但我会保留旧服务器以进行数据库复制和负载平衡等。每台服务器都有一个带有静态 IP 的单独互联网连接,它们通过本地以太网连接进行连接。我在旧服务器上运行 Ubuntu 8.04 32 位,在新服务器上运行 Debian 6.0 64 位。两台服务器上都安装了 shorewall 防火墙。有些室外设备会定期向旧服务器 IP 地址的端口 43597 发送数据。我可以运行网络服务的多个实例,该服务负责从服务器上的不同端口上的设备接收数据。
问题是:
我如何在新服务器上运行该服务并将与旧服务器的连接重定向到该服务器,并且新设备仍然可以连接到新服务器的 IP 地址,最好是在同一端口和同一服务上?直到所有设备都更新以发送到新服务器。
我试过使用 Shorewall基因转移酶规则,但似乎新服务器的默认路由应该更改为以太网连接,这会破坏其他事情。
我还发现了重新定位实用,但还没有尝试过。
我不知道,对于这种情况,是否有最佳实践或简单的解决方案?
提前致谢。
解决了
我最终通过在旧服务器上的 shorewall masq 文件顶部添加以下行来使其工作:
+eth1 0.0.0.0/0 192.168.1.1 tcp 43597
答案1
- 设置 Squid 反向代理
- 使用 redir 实用程序
- 使用 netfilter,你需要两个都DNAT 和 SNAT。
答案2
如果您有智能交换机/路由器,您很可能可以在其中完成此操作(必须具有第 3 层功能才能动态更改数据包)。除此之外,Erik 提供的解决方案非常棒。
您可能希望考虑在将来使用主机名而不是 IP,因为这是 DNS 存在的主要原因之一:这样您就可以在将来抽象出 IP,而不会影响各种其他事物。