iptables 重複ポートトラフィック

iptables 重複ポートトラフィック

ポート 8500 に着信するすべての UDP トラフィックをポート 8600 に複製/コピーしたいです。送信元アドレスが変更されないことが重要です。また、両方のポートがアプリケーションからアクセス可能である必要があります (パケットは元のポートに到着する必要があります)。

このソリューション(nftables: 特定の宛先 IP:ポートの UDP パケットを (2 番目の) 宛先 IP:ポートに複製する) は新しいシステムでは動作しますが、残念ながら問題のマシンは RHEL 7 でカーネル 3.10 を実行しており、更新することはできません。

答え1

iptables は十分に新しいようで、mangle次のようなテーブルがあります: (注意: これはテストしていません。VM などで試してください。間違いを犯すと、TEEパケットの循環パスによって CPU コアがすべて占有される可能性があります)

# copy ("TEE") to dummy local IP address 127.0.0.127
iptables -t mangle -A PREROUTING -i {public interface, not lo} -p UDP --dport 8500 -j TEE --gateway 127.0.0.127
# re-redirect things for 127.0.0.127 to 127.0.0.1
iptables -t nat -A PREROUTING -d 127.0.0.127 -p UDP --dport 8500 -j DNAT --to 127.0.0.1:8600

関連情報