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.