linux derruba o pacote ao tentar direcioná-lo - por quê?

1

Eu rastreio pacotes usando alvos LOG para todas as cadeias de todas as tabelas e a última cadeia em que vejo meu pacote é a cadeia POSTROUTING da tabela 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

Como fora do link , eu esperava que o pacote aparecesse na cadeia FORWARD da tabela mangle, mas nunca chega lá. A única coisa entre eles é a tabela de roteamento.

# 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

Para que o pacote seja roteável via 10.1.1.1. (Esse sistema também pode pingar 10.1.1.2.)

iptables (todas as cadeias ACCEPT) tem apenas estas regras (exceto para logging no fim):

-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

Mas essas regras não devem corresponder: O destino é 10.1.1.2 e não é ESP ...

Alguma dica?

Atenciosamente, Steffen

    
por Steffen Heil 20.05.2012 / 17:29

1 resposta

1

Eu acho que o seu problema é o rp_filter. Você tem um pacote com a fonte 10.2.1.2 que foi recebida na interface eth0. Sua tabela de rotas informa que a rede 10.2.1.2 é acessada via eth3 (rota padrão). Eu suponho que você não tenha um erro de digitação.

Se o problema for o rp_filter, os pacotes são descartados antes do FORWARD.

rp_filter significa "filtro de caminho inverso", geralmente ativado por padrão. Apenas os pacotes que chegam da interface certa (para as rotas) são permitidos.

sysctl -w net.ipv4.conf.all.rp_filter=0
    
por 21.05.2012 / 04:49