So leiten Sie Pakete, deren Ziel sich in einem IPset befindet, an eine NAT-Schnittstelle weiter

So leiten Sie Pakete, deren Ziel sich in einem IPset befindet, an eine NAT-Schnittstelle weiter

Ich habe eine Schnittstelle namens em2, die eine NAT-Schnittstelle ist. Ich möchte alle Pakete, deren Ziel sich in einem IP-Set namens Test befindet, an em2 weiterleiten.

Wenn ich IPset und Policy Routing nicht verwende, funktioniert es gut

iptables -A POSTROUTING -t nat -o em2  -j MASQUERADE
ip route add 1.1.1.1 via 10.1.1.13 dev em2

Aber wenn ich Policy Routing und IPset verwende

iptables -A POSTROUTING -t nat -o em2  -j MASQUERADE
ip rule add fwmark 1 lookup 100
ip route add default via 10.1.1.13 dev em2 table 100
ipset create test hash:ip
ipset add test 1.1.1.1
iptables -t mangle -N TEST_ROUTE
iptables -t mangle -A TEST_ROUTE -m set --match-set test dst -j MARK --set-mark 1
iptables -t mangle -A OUTPUT -j TEST
iptables -t mangle -A PREROUTING -j TEST

Das Problem ist, dass alle Pakete einwandfrei an em2 weitergeleitet werden, das Antwortpaket jedoch nicht empfangen werden kann. Laut der Erfassung von tcpdump scheint das Antwortpaket das NAT nicht korrekt ausgeführt zu haben. Was habe ich übersehen?

Die Erfassung von tcpdump zeigt Folgendes: 10.1.1.14 ist die Adresse von em2

18:57:39.696669 IP 10.1.1.14.40169 > 1.1.1.1.53: 28094+ [1au] A? www.google.com. (55)
18:57:39.753114 IP 1.1.1.1.53 > 10.1.1.14.40169: 28094 1/0/1 A 142.250.66.100 (59)
18:57:44.701781 IP 10.1.1.14.40169 > 1.1.1.1.53: 28094+ [1au] A? www.google.com. (55)
18:57:44.745936 IP 1.1.1.1.53 > 10.1.1.14.40169: 28094 1/0/1 A 142.250.66.100 (59)
18:57:49.706916 IP 10.1.1.14.40169 > 1.1.1.1.53: 28094+ [1au] A? www.google.com. (55)
18:57:49.750357 IP 1.1.1.1.53 > 10.1.1.14.40169: 28094 1/0/1 A 142.251.220.4 (59)

Ich kann die Antwort von 1.1.1.1 mit dem Paket sehen, aber Dig hat nichts bekommen.

verwandte Informationen