Pacotes sendo descartados após limpar o rp_filter

0

Eu vejo certos pacotes no tcpdump e não consigo rastrear o que está acontecendo com eles. Eu defini rp_filter to 0 e log_martians to 1 em todas as interfaces. Eu habilitei traços no iptables também.

root@sindhu# iptables --list-rules -t raw
-P PREROUTING ACCEPT
-P OUTPUT ACCEPT
-A PREROUTING -p tcp -j TRACE
-A OUTPUT -p tcp -j TRACE

Ainda não vejo nenhum traço pertencente ao pacote que vejo no tcpdump. Eu criei uma regra específica para esses pacotes no iptables, mas a contagem nessa regra não está sendo incrementada. Existe algo que eu estou sentindo falta? Eu tenho depurado isso por 2 dias. Qualquer ajuda seria muito apreciada.

Editar: Adicionando mais detalhes conforme solicitado.

Tcpdump:

03:01:07.625357 IP (tos 0x0, ttl 63, id 6637, offset 0, flags [DF], proto TCP (6), length 60)
    192.168.103.1.33950 > 192.168.100.100.81: Flags [S], cksum 0x29b9 (correct), seq 2582058365, win 29200, options [mss 1460,sackOK,TS val 4467432 ecr 0,nop,wscale 7], length 0
03:01:07.625362 IP (tos 0x0, ttl 63, id 41508, offset 0, flags [DF], proto TCP (6), length 60)
    192.168.103.1.33951 > 192.168.100.100.81: Flags [S], cksum 0x7ddb (correct), seq 2897653386, win 29200, options [mss 1460,sackOK,TS val 4467432 ecr 0,nop,wscale 7], length 0

Iptables:

# iptables --list -vxn 
Chain INPUT (policy ACCEPT 1278 packets, 102705 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
       0        0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:81

Chain FORWARD (policy ACCEPT 42 packets, 2520 bytes)
    pkts      bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 779 packets, 104083 bytes)
    pkts      bytes target     prot opt in     out     source               destination         

# iptables --list -vxn -t nat
Chain PREROUTING (policy ACCEPT 7 packets, 420 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:81

Chain INPUT (policy ACCEPT 1 packets, 60 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
       0        0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:81

Chain OUTPUT (policy ACCEPT 37 packets, 2306 bytes)
    pkts      bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 17 packets, 1146 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
      48     3072 MASQUERADE  all  --  *      vEth0   0.0.0.0/0            0.0.0.0/0           

# iptables --list -vxn -t raw
Chain PREROUTING (policy ACCEPT 1491 packets, 119478 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
       0        0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:81
    2088   169549 TRACE      tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 891 packets, 117135 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
    1236   169357 TRACE      tcp  --  *      *       0.0.0.0/0            0.0.0.0/0   

Como pode ser visto, todas as regras de input / prerouting específicas para o dport 81 possuem 0 contagens de pacotes.

Outras configurações:

# sysctl -a | grep \.rp_filter
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.vEth0.rp_filter = 0

# sysctl -a| grep martians
net.ipv4.conf.all.log_martians = 1

O pacote é destinado a um servidor local em execução na porta 81.

# netstat -at | grep 81
tcp        0      0 *:81                    *:*                     LISTEN     

O endereço de destino do pacote, 192.168.100.100 é o endereço da vEth0 na máquina.

root@cfae:/opt/pep/filesystem# ifconfig vEth0
vEth0     Link encap:Ethernet  HWaddr 0e:c9:59:d9:75:ce  
          inet addr:192.168.100.100  Bcast:192.168.100.255  Mask:255.255.255.0
# ip route get 192.168.100.100 from 192.168.103.1 iif vEth0
local 192.168.100.100 from 192.168.103.1 dev lo  src 192.168.100.100 
    cache <local>  iif vEth0
    
por Sindhura Bandi 22.06.2015 / 10:28

1 resposta

0

Eu encontrei o problema, o quadro ethernet era ruim (no sentido de que o endereço MAC de destino não era vEth0 mac address). Eu não percebi que o tcpdump cheira pacotes antes mesmo do processamento da camada 2.

    
por Sindhura Bandi 25.06.2015 / 07:46