ฉันกำลังทดสอบการเปลี่ยนแปลงเครือข่ายและต้องการส่ง ping จากกล่อง Ubuntu โดยใช้อินเทอร์เฟซจำลองเป็นที่อยู่ต้นทาง ฉันใช้ -ฉัน
และดูเหมือนว่าถูกต้อง:
10.90.90.90
เป็นที่อยู่ของอินเทอร์เฟซจำลองและ 10.80.20.22
เป็นที่อยู่อีเธอร์เน็ต
$ ปิง 10.0.10.156 -I 10.90.90.90
PING 10.0.10.156 (10.0.10.156) จาก 10.90.90.90 : 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 10.0.10.156: icmp_seq=1 ttl=64 เวลา=30.2 ms
64 ไบต์จาก 10.0.10.156: icmp_seq=2 ttl=64 เวลา=27.6 ms
อย่างไรก็ตามเมื่อฉันวิ่ง tcpdump
ที่ปลายทางของ ping ฉันเห็นว่าแพ็กเก็ตกำลังมาถึงพร้อมกับที่อยู่อีเธอร์เน็ตหลักของต้นทาง ไม่ใช่ที่อยู่ที่ระบุไว้ จาก...
$ sudo tcpdump icmp -n
tcpdump: เอาต์พุต verbose ถูกระงับ ใช้ -v หรือ -vv สำหรับการถอดรหัสโปรโตคอลแบบเต็ม
กำลังฟัง eth0, ประเภทลิงก์ EN10MB (Ethernet), ขนาดการดักจับ 262144 ไบต์
12:14:10.980956 IP 10.80.10.22 > 10.0.10.156: คำขอเสียงสะท้อน ICMP, id 1, seq 12, ความยาว 64
12:14:10.980988 IP 10.0.10.156 > 10.80.10.22: ICMP echo reply, id 1, seq 12, length 64
ปิงโกหกฉันทำไม