这是我的第一个问题,所以我希望我的结构是正确的。
由于这是一个朋友的情况下,我会感谢适当的设置的指导,因为我将无法访问该环境。
简而言之 – 在eth0上有一个公共ip(31.xxx)的服务器A. 它在特定端口上运行服务,侦听udp连接。 公共服务已经被转移到了服务器B,它再次拥有公有IP,但是在完全不同的子网上。 (93.xxx)。
目标是将所有到达服务器A上的旧IP的连接redirect到服务器b上的新IP。 服务器B需要知道报文的原始源IP地址。
我们已经在服务器A上使用了iptables的一些configuration,使用dnat进行prerouting和snat / masquerade进行后台处理,它可以工作,但是服务器B上的服务看到数据包从服务器A上的公共ip进行访问。
我已经读过,应该删除postrouting,而服务器b在返回这样的数据包时应该使用server a作为默认的gw,但是我不认为这是可能的,因为它们在完全不同的networking上。
任何帮助我们如何实现目标是值得赞赏的。
先谢谢你!
我会尽力去做(应该可以,但我没有testing过):
现在,一切都有点棘手,因为它也是UDP。 连接跟踪需要大量的工作。
你可以做的另一件事,更容易:写一个自定义的隧道应用程序,利用这个UDP。 它应该做这样的事情:
当然,这会在UDP数据包上造成一些延迟,但是它会完成这项工作。