วันจันทร์, กันยายน 14, 2552

เมื่อศุกร์ที่ผ่านมา มีเพื่อนเดินมาถามว่าทำไมเวลาสร้าง default route เป็น PPP หลายๆ session แล้วจึง ping ได้แค่ interface เดียว คือ interface แรกที่ ping ก่อนเข้าไปดูก็คิดว่าเป็นแค่ปัญหา packet ถูก drop ใน ฺBRAS เพราะ packet เข้าและออกคนละ interface กัน ซึ่งเป็นผลจาก routing caching ใน kernel ทำให้ BRAS เห็นว่าเป็น spoofing IP เพราะ source IP มาจาก interface ที่ไม่ถูกต้อง มันเลย drop ซะ

แต่พอเข้าไปดูจริงๆ มีแต่ ICMP request ไม่เจอ reply แฮะ เออ...มันหายไปไหน หาทุก interface ก็ไม่เจอ firewall ก็ไม่ได้ block ลองค้นๆ ดูก็เป็นเพราะค่า rp_filter นี่เอง ที่ทำหน้าที่ป้องกัน IP spoofing ใน kernel นั่นเอง มันเลย block reply ไม่ให้ออกมาเลย ถ้าจะยอมให้มันออกมาได้ (ซึ่งจริงๆ ก็ไม่ควร) ก็ใช้คำสั่งนี่ซะ

sysctl -w net.ipv4.conf.INTERFACE.rp_filter=0

โดยเปลี่ยน INTERFACE ให้เป็นชื่อ interface ที่จะปิดความสามารถนี้ คราวนี้มันก็จะออกมาได้แล้ว