iptables dupliziert den Portverkehr

iptables dupliziert den Portverkehr

Ich möchte den gesamten UDP-Verkehr, der auf Port 8500 eingeht, auf Port 8600 klonen/duplizieren. Dabei ist es wichtig, dass die Quelladresse nicht geändert wird. Außerdem müssen beide Ports für Anwendungen zugänglich sein (die Pakete müssen weiterhin auf dem ursprünglichen Port ankommen).

Diese Lösung (nftables: UDP-Pakete für bestimmte Ziel-IP:Ports zu einem (zweiten) Ziel-IP:Port duplizieren) funktioniert auf einem neueren System, leider läuft auf der betreffenden Maschine Kernel 3.10 auf RHEL 7 und ich darf ihn nicht aktualisieren.

Antwort1

Da Ihre iptables neu genug zu sein scheinen und Sie die mangleTabelle haben: Etwas wie (Achtung, ich habe das nicht getestet! Versuchen Sie es in einer VM oder ähnlichem, Fehler dabei zu machen TEEist eine gute Möglichkeit, alle Ihre CPU-Kerne zu beanspruchen, indem Sie kreisförmige Pfade für Pakete haben)

# 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

verwandte Informationen