Entendendo a origem de alguns pacotes de erro ICMP

1

Na caixa Linux do meu firewall / roteador, muitas vezes eu vejo erros host / porta ICMP inacessíveis como:

    Jan 10 10:11:56 localhost kernel: [80413.542607] firewall-invl: IN=wan OUT=
    MAC=c8:60:00:e1:0f:7c:00:01:5c:22:e0:c1:08:00 SRC=95.37.140.148 DST=my-public-ip 
    LEN=162 TOS=0x00 PREC=0x20 TTL=51 ID=2053 PROTO=ICMP TYPE=3 CODE=1
    [SRC=my-public-ip DST=10.10.10.103 LEN=134 TOS=0x00 PREC=0x00 TTL=48 ID=0 DF 
     PROTO=UDP SPT=4608 8 DPT=13298 LEN=114 ]

Aqui, "my-public-ip" é o IP dinâmico externo atribuído ao iface "wan" pelo ISP. Outro iface, "br0", está conectado à minha LAN 10.0.0.0/24.

Se eu estou lendo isso corretamente, então um host em 95.37.140.148 (Rússia, mts-nn.ru) me envia uma mensagem de host-inacessível ICMP em resposta a uma solicitação da máquina LAN para um 10.10.10.103.

No entanto, isso é muito confuso para mim, já que na cadeia FORWARD há uma regra que bloqueia especificamente tais solicitações (junto com 192.168.0.0/16 e 172.16.0.0/12) de dentro da LAN

    -A FORWARD -d 10.0.0.0/8 -i br0 -j REJECT --reject-with icmp-host-unreachable

Por exemplo, traceroute retorna o correto "! H"

    $ traceroute 10.10.10.103
    traceroute to 10.10.10.103 (10.10.10.103), 30 hops max, 60 byte packets
    1  10.0.0.1 (10.0.0.1)  2.534 ms  2.496 ms  2.499 ms
    2  10.0.0.1 (10.0.0.1)  2.535 ms !H  2.617 ms !H  2.637 ms !H

Então, como faço para entender a entrada de log acima?

    
por Leonid 11.01.2013 / 02:53

1 resposta

1

-A FRENTE -d 10.0.0.0/8 -i br0 -j REJECTO --rejeitar-com icmp-host-inacessível não bloqueia pedidos inacessíveis de host, gera eles em resposta a certas condições.

Felicidades,

Rob

    
por 11.01.2013 / 03:45