Vấn đề
Tôi đã gặp vấn đề tương tự ngày hôm nay, nơi các gói martian tràn ngập nhật ký kernel của tôi. Tất cả các gói martian là từ cùng một địa chỉ IP công cộng eth0
đến cùng một địa chỉ IP công cộng của eth0
(IP thực và tiêu đề được loại bỏ).
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
Sau một số nghiên cứu, tôi nhận ra lý do được ẩn giấu trong các ll header
gói martian.
Học thuyết
Giả sử điều này trong kết nối Ethernet, ll header
thực sự hiển thị phần đầu của Khung Ethernet loại II, chứa địa chỉ MAC đích, địa chỉ MAC nguồn và ID cho biết loại phần còn lại của gói.
Như bạn thấy, 6 byte đầu tiên là địa chỉ MAC đích, 6 byte tiếp theo là địa chỉ MAC nguồn và mã trong 2 byte cuối. Các mã phổ biến là:
08 00
: Gói IP
86 dd
: Gói IPv6
08 06
: Gói ARP
Giải trình
Quay lại ví dụ của tôi.
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
Điều này cho chúng ta biết,
- có một gói nhận được với địa chỉ IP nguồn và đích.
- Nó được gửi bởi
GG:HH:II:JJ:KK:LL
, đó là một địa chỉ MAC mà tôi không biết.
- Điểm đến của nó là
AA:BB:CC:DD:EE:FF
địa chỉ MAC của riêng tôi.
- Đó là một gói IP (
08 00
).
Nếu một gói có cùng địa chỉ IP nguồn và đích, thì nó phải được gửi bởi cùng một giao diện mạng, nhưng MAC cho nguồn và đích khác nhau! Làm sao chuyện đó có thể xảy ra?
Do đó, rõ ràng gói tin đến từ sao Hỏa, có một số vấn đề về định tuyến, một máy trong mạng được định cấu hình hoặc ai đó đang cố gắng giả mạo địa chỉ IP / MAC. Bước tiếp theo là kiểm tra địa chỉ MAC nguồn được đề cập.