Problem
Dzisiaj spotkałem ten sam problem: pakiety marsjańskie zalały moje dzienniki jądra. Wszystkie pakiety marsjańskie pochodzą z tego samego publicznego adresu IP eth0
na ten sam publiczny adres IP eth0
(prawdziwe adresy IP i nagłówek są usuwane).
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
Po kilku badaniach zdałem sobie sprawę, że przyczyna jest ukryta w ll header
pakietach marsjańskich.
Teoria
Zakładając, że jest to połączenie Ethernet, ll header
faktycznie pokazuje początkową część ramki Ethernet typu II, która zawiera docelowy adres MAC, źródłowy adres MAC, a identyfikator wskazuje typ pozostałej części pakietu.
Jak widać, pierwsze 6 bajtów to docelowy adres MAC, kolejne 6 bajtów to źródłowy adres MAC i kod z ostatnich 2 bajtów. Wspólne kody to:
08 00
: Pakiety IP
86 dd
: Pakiet IPv6
08 06
: Pakiet ARP
Wyjaśnienie
Wróć do mojego przykładu.
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
To mówi nam,
- odebrano pakiet ze źródłowym i docelowym adresem IP SAME.
- Został wysłany przez
GG:HH:II:JJ:KK:LL
, którego adresu MAC nie znam.
- Jego celem jest
AA:BB:CC:DD:EE:FF
mój własny adres MAC.
- To był pakiet IP (
08 00
).
Jeśli pakiet ma takie same źródłowe i docelowe adresy IP, musi zostać wysłany przez ten sam interfejs sieciowy, ale adresy MAC źródła i miejsca docelowego są różne! Jak to mozliwe
Oczywiste jest zatem, że pakiet pochodzi z Marsa, albo występują problemy z routingiem, komputer w sieci jest skonfigurowany, albo ktoś próbuje sfałszować adresy IP / MAC. Następnym krokiem jest sprawdzenie źródłowego adresu MAC.
tcpdump
na danych serwerach. To powiedziawszy, rozumiem pojęcie pakietu marsjańskiego. Nie rozumiem, dlaczego interfejs uważa za swój własny adres IP.