sorgente marziana del kernel da e verso lo stesso IP


13

Stiamo vedendo a intermittenza kernel: martian sourcevoci di registro per eth0 su un paio dei nostri server. La cosa interessante è che sono da e verso lo stesso IP. Per esempio:

Nov  4 02:20:27 tcffmppr6db09 kernel: martian source 10.153.242.13 from 10.153.242.13, on dev eth0.3171

Questo succede solo su un paio di server. Ce ne sono circa 60 che hanno eth0 configurato allo stesso modo (IP diverso, ovviamente).

Cosa dovrei guardare per rintracciarlo?

MODIFICARE:

Il percorso per questa particolare interfaccia è il percorso predefinito, quindi non credo che si tratti di inviare l'interfaccia sbagliata.

Risposte:


16

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 eth0o 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 headerpacchetti marziani.

Teoria

Supponendo che ciò avvenga in una connessione Ethernet, ll headermostra 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.

Formato frame Ethernet Tipo II [1]

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.


9
estratto da Linux: registra pacchetti marziani sospetti / indirizzi di origine non instradabili

Un pacchetto marziano non è altro che un pacchetto IP che specifica un indirizzo di origine o destinazione riservato per l'uso speciale da Internet Assigned Numbers Authority (IANA).

Ecco alcuni esempi di tali blocchi di indirizzi:

  • 10.0.0.0/8
  • 127.0.0.0/8
  • 224.0.0.0/4
  • 240.0.0.0/4
  • :: / 128
  • :: / 96
  • :: 1/128

Per rintracciarlo hai diverse opzioni. Potresti semplicemente ignorarlo, potresti bloccarlo tramite il tuo firewall, oppure potresti utilizzare tcpdumpo wiresharkanalizzare il contenuto del pacchetto, il che probabilmente ti darà un'idea di ciò che sta causando questo.

Descrizioni e fonti aggiuntive

Un'altra frase che appare quando cerchi questo è la seguente:

Questi sono pacchetti che Linux non si aspetta dalla direzione da cui provengono (ovvero pacchetti da host interni che arrivano sull'interfaccia esterna). La causa è probabilmente una macchina non configurata correttamente sulla LAN. È possibile disattivare la registrazione di quei pacchetti tramite i /proc/sys/net/ipv4/conf/interface/log_martiansquali è documentata /usr/src/linux/Documentation/proc.txt

Non sono riuscito a trovare la fonte originale di questo paragrafo, ma se lo cerchi, si presenta molto, alla lettera! Questo descrive il problema come un pacchetto che è entrato nel sistema su un'interfaccia (NIC) che non è designato per entrare.

Infine, citerei Wikipedia anche su questo argomento, il che afferma anch'esso più o meno lo stesso di quanto sopra.

Un pacchetto marziano è un pacchetto IP che specifica un indirizzo di origine o destinazione che è riservato per l'uso speciale da Internet Assigned Numbers Authority (IANA). Se visualizzati su Internet pubblico, questi pacchetti non possono effettivamente provenire come richiesto o essere consegnati. 1 Tuttavia, alcuni indirizzi riservati possono essere instradati utilizzando multicast o su reti private, collegamenti locali o interfacce di loopback, a seconda dell'intervallo di utilizzo speciale in cui rientrano. 2

I pacchetti marziani derivano comunemente dallo spoofing dell'indirizzo IP negli attacchi denial of service 3 , ma possono anche derivare da un malfunzionamento delle apparecchiature di rete o da una configurazione errata di un host. 1

Riferimenti


Bella spiegazione però .... l'uso di questi blocchi tende ad essere piuttosto comune soprattutto dietro le reti NAT. Quindi, in base alla tua spiegazione, mi aspetto di vedere questi messaggi in ogni momento. Quindi c'è qualcosa in più nel messaggio del kernel, sarei interessato a sapere cosa.
mdpc,

@mdpc - informazioni aggiuntive descrivono la causa dei pacchetti marziani: quanto è rotta la strategia di routing che causa un pacchetto marziano (finora solo) durante tracepath?
slm

1
Eseguiremo 24 ore tcpdumpsui server in questione. Detto questo, capisco il concetto di un pacchetto marziano. Quello che non capisco è perché un'interfaccia consideri il proprio IP come tale.
theillien,

risposta inutile in effetti.
poige,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.