Masalah
Saya mengalami masalah yang sama hari ini, di mana paket-paket Mars membanjiri log kernel saya. Semua paket martian berasal dari alamat IP publik eth0
yang sama dengan alamat IP publik yang sama eth0
(IP dan header asli dihapus).
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
Setelah beberapa penelitian, saya menyadari alasan tersembunyi di ll header
paket Mars.
Teori
Dengan asumsi ini dalam koneksi Ethernet, ll header
sebenarnya menunjukkan bagian awal dari Frame Tipe II Ethernet, yang berisi alamat tujuan MAC, alamat sumber MAC, dan ID menunjukkan jenis bagian sisa paket.
Seperti yang Anda lihat, 6 byte pertama adalah alamat MAC tujuan, 6 byte berikutnya adalah alamat MAC sumber, dan kode dalam 2 byte terakhir. Kode umum adalah:
08 00
: Paket IP
86 dd
: Paket IPv6
08 06
: Paket ARP
Penjelasan
Kembali ke contoh saya.
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
Ini memberitahu kita,
- ada paket yang diterima dengan sumber SAMA dan alamat IP tujuan.
- Itu dikirim oleh
GG:HH:II:JJ:KK:LL
, yang merupakan alamat MAC yang saya tidak tahu.
- Tujuannya adalah
AA:BB:CC:DD:EE:FF
, yang merupakan alamat MAC saya sendiri.
- Itu adalah paket IP (
08 00
).
Jika suatu paket memiliki sumber dan tujuan alamat IP yang sama, itu harus dikirim oleh antarmuka jaringan yang sama, tetapi MAC untuk sumber dan tujuan berbeda! Bagaimana mungkin?
Dengan demikian, jelas bahwa paket tersebut berasal dari Mars, baik ada beberapa masalah perutean, mesin dalam jaringan dikonfigurasi, atau seseorang mencoba untuk menipu alamat IP / MAC. Langkah selanjutnya adalah memeriksa alamat MAC sumber yang dimaksud.
tcpdump
di server yang bersangkutan. Yang mengatakan, saya mengerti konsep paket Mars. Apa yang saya tidak mengerti, adalah mengapa sebuah antarmuka akan mempertimbangkan IP sendiri.