我在freebsd上有两个Internet通道和Gateway。当我使用命令切换频道时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默认
$睡眠10
$ sudo路由添加默认xxx.xxx.144.125
FreeBSD 8.2-发布FreeBSD 8.2-发布#0:Fri Apr 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优先提供商的设备。
—
Taron
在添加新的默认路由之前,请清除ARP缓存
—
inetplumber
arp -d -a
和/或路由表route flush
。内核/用户空间可能正在查询过时的数据。
uname -a
应显示)?