Я отслеживаю пакеты, используя цели LOG для всех цепочек всех таблиц, и последней цепочкой, в которой я вижу свой пакет, является цепочка POSTROUTING таблицы mangle:
mangle_PREROUTING: IN=eth0 OUT= MAC=00:16:3e:0f:01:00:00:16:3e:0f:02:00:08:00
SRC=10.2.1.2 DST=10.1.1.2 LEN=84 TOS=0x00 PREC=0x00 TTL=63 ID=60912 PROTO=ICMP
TYPE=0 CODE=0 ID=41230 SEQ=1
Что касается http://inai.de/images/nf-packet-flow.png, я ожидал, что этот пакет появится в цепочке FORWARD таблицы mangle, но он туда не доходит. Единственная вещь между ними - таблица маршрутизации.
# ip rule list
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
# ip route list
default via 192.168.178.100 dev eth3
10.1.1.0/24 dev eth1 proto kernel scope link src 10.1.1.1
10.1.2.0/24 dev eth2 proto kernel scope link src 10.1.2.1
10.5.0.0/24 dev eth0 proto kernel scope link src 10.5.0.1
192.168.178.0/24 dev eth3 proto kernel scope link src 192.168.178.1
Таким образом, этот пакет должен быть маршрутизируемым через 10.1.1.1. (Эта система также может пинговать 10.1.1.2.)
В iptables (все цепочки ACCEPT) есть только эти правила (за исключением регистрации в конце):
-t raw -A PREROUTING -j MARK --set-xmark 0x0/0xffffffff
-t mangle -A PREROUTING -s 10.1.1.0/24 -d 10.2.1.0/24 -j MARK --set-xmark 0x1/0xffffffff
-t mangle -A PREROUTING -p esp -j MARK --set-xmark 0x1/0xffffffff
Но эти правила не должны совпадать: пункт назначения 10.1.1.2, а не ESP ...
Есть намеки?
С наилучшими пожеланиями, Штеффен