Problema
Oggi ho riscontrato lo stesso problema, in cui i pacchetti marziani hanno inondato i miei log del kernel. Tutti i pacchetti marziani provengono dallo stesso indirizzo IP pubblico eth0
o allo stesso indirizzo IP pubblico di eth0
(gli IP e l'intestazione reali vengono rimossi).
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
Dopo alcune ricerche, ho capito che il motivo è nascosto nei ll header
pacchetti marziani.
Teoria
Supponendo che ciò avvenga in una connessione Ethernet, ll header
mostra effettivamente la parte iniziale di un frame di tipo II Ethernet, che contiene l'indirizzo MAC di destinazione, l'indirizzo MAC di origine e un ID indica il tipo della parte restante del pacchetto.
Come vedi, i primi 6 byte sono l'indirizzo MAC di destinazione, i successivi 6 byte sono l'indirizzo MAC di origine e un codice negli ultimi 2 byte. I codici comuni sono:
08 00
: Pacchetti IP
86 dd
: Pacchetto IPv6
08 06
: Pacchetto ARP
Spiegazione
Torna al mio esempio.
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
Questo ci dice
- è stato ricevuto un pacchetto con l'indirizzo IP di origine e destinazione SAME.
- È stato inviato da
GG:HH:II:JJ:KK:LL
, che è un indirizzo MAC che non conosco.
- La sua destinazione è
AA:BB:CC:DD:EE:FF
, che è il mio indirizzo MAC.
- E 'stato un pacchetto IP (
08 00
).
Se un pacchetto ha gli stessi indirizzi IP di origine e destinazione, deve essere inviato dalla stessa interfaccia di rete, ma i MAC per origine e destinazione sono diversi! Come può essere possibile?
Pertanto, è chiaro che il pacchetto proviene da Marte, o ci sono alcuni problemi di routing, una macchina all'interno della rete è configurata o qualcuno sta cercando di falsificare gli indirizzi IP / MAC. Il passaggio successivo consiste nel verificare l'indirizzo MAC di origine in questione.