Traccio i pacchetti usando target LOG per tutte le catene di tutte le tabelle e l'ultima catena in cui vedo il mio pacchetto è la catena POSTROUTING della tabella 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
A parte http://inai.de/images/nf-packet-flow.png , mi aspettavo che quel pacchetto apparisse nella catena FORWARD della tabella mangle, ma non ci arrivava mai. L'unica cosa tra queste è la tabella di routing.
# 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
Quindi quel pacchetto dovrebbe essere instradabile tramite 10.1.1.1. (Tale sistema può anche eseguire il ping 10.1.1.2.)
iptables (tutte le catene ACCEPT) ha solo queste regole (ad eccezione della registrazione alla fine):
-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
Ma queste regole non dovrebbero corrispondere: la destinazione è 10.1.1.2 e non è ESP ...
Qualche suggerimento?
Cordiali saluti, Steffen