Troubleshooting “martian source” warnings can be found in the log message

ดูจาก log สาเหตุปัญหาน่าจะอ้าจอิจจาก TID (ในบางกรณี) ที่เขียนไว้เนื่องจากเป็น multiple NIC cards อินเทอร์เฟซ “bond0” แต่เมื่อตรวจสอบแล้วกลับพบว่าไม่ใช้กรณีของปัญหาดังกล่าวครับ มาเริ่มต้นกันเลย

tail -f /var/log/message

หรืออาจจะดูผ่าน syslog web-based ได้เช่นกัน facility=kern (กรณีที่มี Centralized log server)

Jul 17 09:52:49 linuxter1 kernel: [13807.030419] martian source 192.168.1.16 from 192.168.0.21, on dev bond0
Jul 17 09:52:49 linuxter1 kernel: [13807.030423] ll header: ff:ff:ff:ff:ff:ff:34:40:b5:8c:84:11:02:06

Environment:
System: SLED 11 SP2 X86_64
Kernal 3.0.58-0.6.6-default

จากอ้างอิจได้ลองปิด disable “rp_filter” ไปแล้วแต่ยังแสดงข้อผิดพลาด “martian sources” ใน messages log อยู่

vi /etc/sysctl.conf

# Controls source route verification

net.ipv4.conf.default.rp_filter = 1

เปลี่ยน value เท่ากับ 0

# Controls source route verification

net.ipv4.conf.default.rp_filter = 0

โหลดการตั้งค่าปัจจุบัน

sysctl -p

Note : As of April 2012 this fix works for (patched) SLES 10 SP3, SLES 10 SP4 and SLES 11 SP1. Does not work for SLES 11 SP2.

# enable route verification on all interfaces
net.ipv4.conf.all.rp_filter = 1

การตั้งค่าฟิลเตอร์ “net.ipv4.conf.default.rp_filter = 1” ก็เพราะใช้สำหรับในการป้องกันการโจมตีแบบ DDoS (Distributed Denial of Service Attacks) โดยวิธีตรวจสอบเสร็จทางของแพ็คเก็จในทุกอินเทอร์เฟซ (แนะนำเปิดฟิลเตอร์สำหรับเส้นทาง routing ที่ซับซ้อน) หลังจากทำตามขั้นตอนที่กล่าวมาแล้วก็ยังคงแสดงข้อผิดพลาด “martian sources” ใน messages log อยู่

ขั้นตอนถัดมาให้ตรวจสอบ arp แคช

apr -n

ทำการลบ arp (delete specific arp)

arp -d 192.168.0.16

หรือ clearing arp cache

ip -s -s neigh flush all

ใช้เครื่องมือ tcpdump

tcpdump host 192.168.0.16

พบว่าแพ็คเก็จวนลูบถามไปยังเครื่องไอพีแอดเดรส 192.168.0.254 (Gateway) และเครื่อง linuxter1 (ไอพีแอดเดรส 192.168.0.21)

09:55:27.383391 arp who-has 192.168.0.16 tell 192.168.0.254
09:55:28.383285 arp who-has 192.168.0.16 tell 192.168.0.254
09:55:29.383228 arp who-has 192.168.0.16 tell 192.168.0.254
09:55:32.064584 arp who-has 192.168.0.16 tell linuxter1
09:55:33.064575 arp who-has 192.168.0.16 tell linuxter1
09:55:34.064624 arp who-has 192.168.0.16 tell linuxter1

คำถามมีอยู่ว่าไอพีแอดเดรส 192.168.0.16 เป็นอุปกรณ์ใด? ping ไม่เจอะ ถ้าปิดพอร์ต nmap สแกนก็หาไม่เจอะ เมื่อไปตรวจสอบ DHCP server กลับพบไอพีแอดเดรสใน reservations ถึงรู้ว่าเป็นเครื่องปริ้น ที่แพ็คเก็จพยายามส่งเกิดจากมี jobs ค้างที่ CUPS server แต่เครื่องปริ้นเตอร์ไม่ถูกเปิดอยู่ (เลย ping ไม่เจอะ) ทำให้แพ็กเก็จพยายามส่งไปยังเครื่องปริ้นตลอดเวลา หลังจากเปิดเครื่องปริ้นเตอร์ log message ก็จะไม่พบข้อความดังกล่าวแล้ว

หวังว่าคงเป็นประโยชน์เล็กๆ น้อยๆ นะครับเพื่อจะได้แก้ไขปัญหาได้รวดเร็วขึ้น

Reference :
//www.suse.in.th/suse-support-knowledgebase/martian-sources-errors-showing-in-messages-log/
//www.softpanorama.org/Net/Internet_layer/Routing/martian_source.shtml
//www.novell.com/support/kb/doc.php?id=7007649