ฉันมีสองช่องทางอินเทอร์เน็ตและเกตเวย์บน freebsd เมื่อฉันเปลี่ยนช่องด้วยคำroute change default chan2
สั่งคำสั่งnetstat -nr
จะแสดงเส้นทางเริ่มต้นที่เปลี่ยนไป แต่traceroute
แสดงให้เห็นว่าแพ็คเก็ตผ่านเส้นทางเก่า Chan1
ตัวอย่าง:
$netstat -nr
Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire
default xxx.xxx.183.54 US 0 8432 em3
$sudo route change default xxx.xxx.144.125
change net default: gateway> xxx.xxx.144.125
$netstat -nr
Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire
default xxx.xxx.144.125 US 2 16450 em3
แต่
$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
1 xxx.xxx.183.53 (xxx.xxx.183.53) 0.527 ms 0.415 ms 0.483ms
ทั้งหมดทำงานได้ถ้าฉันเรียกใช้ชุดค่าผสมต่อไปนี้:
$ sudo เส้นทางเดลเริ่มต้น
$ sleep 10
$ sudo route เพิ่มค่าเริ่มต้น xxx.xxx.144.125
netstat -rnf inet
หรือไม่
arp -d -a
และ / หรือตารางเส้นทางroute flush
ก่อนเพิ่มเส้นทางเริ่มต้นใหม่ อาจเป็นไปได้ว่าพื้นที่เคอร์เนล / ผู้ใช้กำลังให้คำปรึกษาข้อมูลเก่า
uname -a
ควรแสดง)