使用 iptables 缓存 UDP 数据包

使用 iptables 缓存 UDP 数据包

我设置了一台服务器,使用以下命令将某个端口上的所有数据包转发到另一台主机; iptables -t nat -A PREROUTING -p udp --dport PORT -j DNAT --to-destination IP:PORT

由于服务器之间的距离很远,因此会造成相当大的延迟,而且数据几乎总是相同的。我想知道 iptables 是否有某种方法,如果它收到一个 UDP 数据包,它可以缓存响应,然后将其发送回所有相同的请求。

例如,如果服务器在 UDP 数据包中收到“hello”,则它会将其转发到另一台服务器并从该服务器接收“world”(因为该端口上的所有流量都会被转发)。然后我希望它每次收到“hello”时都以“world”进行响应没有再次将其转发到第二台服务器。例如,所有后续请求都被缓存。

希望有人能为我指明正确的方向。谢谢。

答案1

不可以。您无法使用 来实现这一点iptables。您需要编写一个实际的程序来监听这些端口并自行与数据包交互,以及跟踪键:值对以获得即时响应。

相关内容