Как направить пакеты, пункт назначения которых находится в ipset, на интерфейс nat

Как направить пакеты, пункт назначения которых находится в ipset, на интерфейс nat

У меня есть интерфейс с именем em2, который является интерфейсом nat. Я хочу направить все пакеты, пункт назначения которых находится в ipset с именем test, на 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 ничего не получил.

Связанный контент