iptables 将 UDP 数据包重定向到多个目的地

iptables 将 UDP 数据包重定向到多个目的地

可能重复:
如何将 UDP 数据包发送到不同的主机

我在 Amazon 的虚拟私有云中运行一些实例。其中一个实例位于仅 VPN 子网 (10.128.1.0/24) 内,该子网连接到公司网络 (172.16.32.0/24)。我无法控制隧道另一端的任何事情。我只能控制 VPC 中发生的事情。

有一台物理服务器正在通过隧道发送 UDP 数据包,而代理服务器是我尝试通过 iptables 设置的。我将在不同的环境中设置多台应用服务器,它们都需要接收这些 UDP 数据包(在 10.128.5.0/24 子网中)。我第一次设置 iptables 的尝试是:

iptables -t nat -A PREROUTING -s 172.16.32.0/24 -p udp --dport 1360 -j DNAT --to 10.128.5.10:1360 --to 10.128.5.11:1360

问题有两个方面。首先,iptables 不再支持多个--to标志。其​​次,据我所知,它会循环调度目的地,但我需要 UDP 数据包同时到达两个目的地。

问题:鉴于我的限制,我如何接收 UDP 数据包并将其同时发送到两个不同的目的地?如果可能的话,我更愿意将其保存在 iptables 中。

编辑(澄清):我有 UDP 数据包进入代理(服务器 A)。我希望该数据包被另外两台服务器(B 和 C)接收,并且将来可能被其他服务器接收。B 和 C 收到的 UDP 数据包的源地址无关紧要,B 和 C 永远不需要发送任何类型的响应。这严格来说是单向的。这可能吗?如果可以,怎么做?

答案1

如果数据包不是发往任何目标,则必须将其 NAT 到第一个目标,tee以便它继续前往第一个目标,然后再将其 NAT 到第二个目标。

如果数据包已经到达其中一个目标,则只需将tee其发送到其所针对的目标,然后将其 NAT 到另一个目标。

相关内容