宛先が IPset にあるパケットを NAT インターフェースにルーティングする方法

宛先が IPset にあるパケットを NAT インターフェースにルーティングする方法

em2 という名前のインターフェースがあります。これは NAT インターフェースです。宛先が test という名前の ipset にあるすべてのパケットを em2 にルーティングしたいと考えています。

ipsetとポリシールーティングを使用しない場合はうまく機能します

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

しかし、ポリシールーティングとipsetを使用すると

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

問題は、すべてのパケットが em2 に完璧にルーティングされるが、応答パケットを受信できないことです。tcpdump のキャプチャによると、応答パケットが NAT を正しく実行しなかったようです。何を見逃したのでしょうか?

tcpdumpのキャプチャは次のように表示され、10.1.1.14は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)

パケットに 1.1.1.1 の応答があるのを確認できますが、dig では何も取得されませんでした。

関連情報