Sign up ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I have two Internet channel and Gateway on freebsd. When I switch channel with the command route change default chan2, the command netstat -nr shows changed default route. But traceroute shows that the packets go through the old route chan1.


$netstat -nr 
Routing tables Internet: Destination Gateway  Flags    Refs   Use  Netif Expire
                         default US 0 8432    em3

$sudo route change default 
change net default: gateway>

$netstat -nr
Routing tables Internet: Destination Gateway Flags Refs Use  Netif Expire
                         default   US  2  16450  em3


$ traceroute
traceroute to (, 64 hops max, 52 byte packets
 1 (  0.527 ms  0.415 ms  0.483ms

All works if I run the following combination:

$sudo route del default

$sleep 10

$sudo route add default

share|improve this question
What version are you running (uname -a should show)? – Chris S Jul 9 '13 at 14:45
FreeBSD 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Fri Apr 15 12:45:40 MSD 2011 amd64 – Taron Jul 9 '13 at 16:38
The gateway in your first routing table and the first hop in your traceroute aren't the same (.53 vs .54) - did you copy and paste or re-type this? Can you also post the full output of netstat -rnf inet? – James O'Gorman Jul 10 '13 at 7:52
traceroute running from my GW (.54), .53 is IP first provider`s device. – Taron Jul 10 '13 at 10:33
Clear the ARP cache arp -d -a and/or routing tables route flush before adding the new default route. Possibly the kernel/user space is consulting stale data. – inetplumber Sep 8 '13 at 20:11

1 Answer 1

If you use route change command, you need to restart network service to apply the changes, e.g.:

$ sudo /etc/rc.d/netif restart
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.