Linux rilascia il pacchetto quando tenta di instradarlo - perché?


1

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

Risposte:


1

Penso che il tuo problema sia il filtro rp. Hai un pacchetto con sorgente 10.2.1.2 che è stato ricevuto nell'interfaccia eth0. La tabella del percorso indica che la rete 10.2.1.2 viene raggiunta tramite eth3 (percorso predefinito). Suppongo che tu non abbia un refuso.

Se il problema è rp_filter, i pacchetti vengono eliminati prima di FORWARD.

rp_filter significa "filtro percorso inverso", generalmente abilitato per impostazione predefinita. Sono consentiti solo i pacchetti che provengono dall'interfaccia corretta (in accordo con le rotte).

sysctl -w net.ipv4.conf.all.rp_filter=0
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.