Problema
Eu encontrei o mesmo problema hoje, onde os pacotes marcianos inundaram meus logs do kernel. Todos os pacotes marcianos são do mesmo endereço IP público de eth0 para o mesmo endereço IP público de eth0 (os IPs reais e o cabeçalho são removidos).
IPv4: martian source x.x.x.x from x.x.x.x, on dev eth0
ll header: 00000000: aa bb cc dd ee ff gg hh ii jj kk ll 08 00
Após algumas pesquisas, percebi que a razão está escondida no ll header dos pacotes marcianos.
Teoria
Assumindo isso em uma conexão Ethernet, ll header na verdade mostra a parte inicial de um Quadro Ethernet Tipo II, que contém o endereço MAC de destino, endereço MAC de origem e um ID indica o tipo da parte restante do pacote.
Como você vê, os primeiros 6 bytes são o endereço MAC de destino, os próximos 6 bytes são o endereço MAC de origem e um código nos últimos 2 bytes. Códigos comuns são:
-
08 00: pacotes IP -
86 dd: Pacote IPv6 -
08 06: Pacote ARP
Explicação
Voltar ao meu exemplo.
IPv4: martian source x.x.x.x from x.x.x.x, on dev eth0
ll header: 00000000: aa bb cc dd ee ff gg hh ii jj kk ll 08 00
Isso nos diz,
- havia um pacote recebido com a mesma fonte e endereço IP de destino.
- Foi enviado por
GG:HH:II:JJ:KK:LL, que é um endereço MAC que eu não conheço. - Seu destino é
AA:BB:CC:DD:EE:FF, que é meu próprio endereço MAC. - Era um pacote IP (
08 00).
Se um pacote tiver os mesmos endereços IP de origem e destino, ele deve ser enviado pela mesma interface de rede, mas os MACs para origem e destino são diferentes! Como isso pode ser possível?
Assim, fica claro que o pacote vem da Mars, ou há alguns problemas de roteamento, uma máquina dentro da rede está configurada ou alguém está tentando falsificar os endereços IP / MAC. O próximo passo é verificar o endereço MAC de origem em questão.