In FreeBSD, an ifconfig call seems to delete the default gateway route, even when given the same IP-address (e.g. when updating the netmask only). Is it a bug or a feature?
As fas as I remember Linux doesn't change the default gateway in this case.


In FreeBSD an ifconfig that removes direct connectivity to a subnet also zaps routes containing that subnet (IIRC updating netmasks is reduced to a remove-and-replace). This is a "feature" so as not to confuse your routing configuration by trying to talk to a host it can't reach anymore, though it causes its share of confusion when users encounter disappearing routes.

See also: http://forums.freebsd.org/showthread.php?t=12132

  • 1
    Thanks. This is something to keep in mind when running ifconfig on a remote host. – Eugene Yarmash Jun 14 '10 at 18:58
  • 2
    Oh yes - I've been bitten enough times that I now set a safety reboot (shutdown -r +10) before doing any network-affecting stuff on a remote host. Great if you trust the machine to reboot correctly since if you break something it will come back with its boot-time config pretty quickly :) – voretaq7 Jun 14 '10 at 21:29

I believe this happens because the ifconfig command is actually deleting the old IP and creating the new one, not just changing it. "It's a feature!"


I was looking for a way to keep the route to default gw in place, but since I saw this thread and tried on my own I guess there's no way. The only thing I had to do is set default gw manually right after setting the ip:

sudo ifconfig eth0 subnet
sudo route add default gw

so keep in mind if you're doing this remotely better run both commands with && or you'll get stuck out

sudo ifconfig eth0 subnet && sudo route add default gw

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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