freebsdに2つのインターネットチャネルとゲートウェイがあります。コマンド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 route del default
$ sleep 10
$ sudo route add default xxx.xxx.144.125
FreeBSD 8.2-RELEASE FreeBSD 8.2-RELEASE#0:金4月15日12:45:40 MSD 2011 root@grs.ru:/ usr / src / sys / amd64 / compile / IXI_8_2_PF_x64 amd64
—
Taron
最初のルーティングテーブルのゲートウェイとtracerouteの最初のホップが同じではありません(.53と.54)-これをコピーして貼り付けるか、再入力しましたか?の完全な出力も投稿できます
—
James O'Gorman 2013
netstat -rnf inet
か?
私のGW(.54)から実行されているtraceroute、.53はIPファーストプロバイダーのデバイスです。
—
タロン2013
新しいデフォルトルートを追加する前に、ARPキャッシュ
—
inetplumber 2013
arp -d -a
やルーティングテーブルをクリアしてくださいroute flush
。おそらく、カーネル/ユーザー空間が古いデータを調べています。
uname -a
か(表示する必要があります)?