ปัญหา
ฉันพบปัญหาเดียวกันวันนี้ที่แพ็คเก็ตมาร์ตินท่วมบันทึกเคอร์เนลของฉัน แพ็กเก็ต martian ทั้งหมดมาจากที่อยู่eth0
IP สาธารณะเดียวกันกับที่อยู่ IP สาธารณะเดียวกันของeth0
(IP จริงและส่วนหัวถูกลบ)
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
หลังจากการวิจัยฉันรู้ว่าเหตุผลนั้นซ่อนอยู่ในll header
แพ็คเก็ตของดาวอังคาร
ทฤษฎี
สมมติว่านี้ในการเชื่อมต่ออีเธอร์เน็ตll header
จริง ๆ แล้วแสดงส่วนเริ่มต้นของเฟรม Ethernet Type II ซึ่งประกอบด้วยที่อยู่ MAC ปลายทางปลายทางที่อยู่ MAC แหล่งที่มาและรหัสบ่งชี้ชนิดของส่วนที่เหลือของแพ็คเก็ต
อย่างที่คุณเห็น 6 ไบต์แรกคือที่อยู่ MAC ปลายทาง, 6 ไบต์ถัดไปคือที่อยู่ MAC ต้นทางและรหัสใน 2 ไบต์สุดท้าย รหัสทั่วไปคือ:
08 00
: แพ็คเก็ต IP
86 dd
: IPv6 Packet
08 06
: ARP Packet
คำอธิบาย
กลับไปที่ตัวอย่างของฉัน
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
สิ่งนี้บอกเราว่า
- มีแพ็กเก็ตที่ได้รับพร้อมกับแหล่งที่มาเดียวกันและที่อยู่ IP ปลายทาง
- มันถูกส่งโดย
GG:HH:II:JJ:KK:LL
ซึ่งเป็นที่อยู่ MAC ที่ฉันไม่รู้
- ปลายทางคือ
AA:BB:CC:DD:EE:FF
ที่อยู่ MAC ของฉันเอง
- มันเป็นแพ็กเก็ต IP (
08 00
)
หากแพ็กเก็ตมีที่อยู่ IP ต้นทางและปลายทางเดียวกันจะต้องส่งโดยเครือข่ายอินเทอร์เฟซเดียวกัน แต่ MAC สำหรับแหล่งที่มาและปลายทางนั้นแตกต่างกัน! เป็นไปได้อย่างไร?
ดังนั้นจึงเป็นที่ชัดเจนว่าแพ็คเก็ตมาจากดาวอังคารทั้งที่มีปัญหาการเราต์เครื่องในเครือข่ายมีการกำหนดค่าหรือมีคนพยายามที่จะปลอมแปลงที่อยู่ IP / MAC ขั้นตอนต่อไปคือการตรวจสอบที่อยู่ MAC ของปัญหา