Better way to get interface assigned to default route?

Markie mark.cullen at
Sat Sep 4 17:11:17 PDT 2004

----- Original Message -----
From: "Remko Lodder" <remko at>
To: "Markie" <mark.cullen at>
Sent: Saturday, September 04, 2004 11:17 PM
Subject: Re: Better way to get interface assigned to default route?

| Markie wrote:
| > Suggesting I do `dhclient fxp1`? That's exactly my problem though :-)
| > uses /sbin/dhclient-script to do all of it's work, right?
| > tries to figure out the interface... or something to do with a default
| > route by doing that netstat -rn command.
| >
| > dhclient-script snippet...
| > ----
| > if [ x$alias_subnet_mask != x ]; then
| >   alias_subnet_arg="netmask $alias_subnet_mask"
| > fi
| >
| > # Get the interface to which our default route is bound to.
| > if [ -x /usr/bin/netstat ]; then
| >        if_defaultroute=`/usr/bin/netstat -rn \
| >                | /usr/bin/grep "^default" \
| >                | /usr/bin/awk '{print $6}'`
| > else
| >         if_defaultroute="x"
| > fi
| >
| > if [ x$reason = xMEDIUM ]; then
| >   eval "ifconfig $interface $medium"
| >   eval "ifconfig $interface inet -alias $medium" >/dev/null
| >   sleep 1
| >   exit_with_hooks 0
| > fi
| > ---
| >
| > See it? Basically I am after some sort of command that might be able to
| > the interface with the default route assigned but quicker than
netstat -rn
| > since I have alot of routing table entries. Like I said, if there's no
| > other way I will just have to fix it so it's if_defaultroute = "fxp1".
| >
| > I've already had to make some changes to the script to get it to work
| > my modem anyway so it won't hurt me :-) I was just wondering if there
| > any other nice way of doing it so that say if I changed the internet
| > interface to a vx card I wouldn't have to try and remember to change
| > to vx0 (I _will_ forget I made the change :-)
| >

Hi Remko :-)

| Well, how come there is a default route if you use dhcp afterwards? my
| default route is delivered through dhcp.. so i cannot reside on a
| default entry because i dont have any... That's why i think that the
| default grep is a little bit weird actually, since most hosts dont have
| any routes at all at that point in time and then start dhclient <iface>

I'm no expert on it all, but... the command is in the code and it's
certainly executing that command :-) I see it in top taking up alot of CPU
time every few minutes! I imagine it's doing it every few minutes because
my modem likes to send dhcp updates frequently, so if my connection drops
or ip changes I don't have to wait an hour... day...however long for the
interface to be updated.

| And to be  more exact:
| in /etc/rc.conf i have
| ifconfig_em0="DHCP" which starts ``dhclient em0'' for me... i never used
| dhclient-script, and didn't read it carefully yet to understand it.

Yeah, I have ifconfig_fxp1="DHCP" :-) dhclient uses dhclient-script to do
all of it's work, I guess you could call dhclient a wrapper of sorts?

Like I said, I had to make some changes to this script, although I have
never execute it directly, to stop FreeBSD from locking up on an IP address
change and to actually even get it to be able to communicate with my modem
(ADSLNation X-Modem CE), something along the lines of deleting the default
route straight after it had added it, and then readding it; don't ask me
why this solved the problem but it did! If anyone is interested in that I
can mail the changes I made and describe my setup or something. Infact, to
back that up further here's a snippet from the dhclient-script man page :-D


       dhclient-script - DHCP client network configuration script

       The  DHCP  client  network configuration script is invoked from time
       time by dhclient(8).

I guess you probably just don't notice because you have a fast machine and
not many routing table entries?

| Perhaps this explains a bit...
| or i just dont get the question yet { have a long weekend, tired etc ;) }

:-) No worries, I am very grateful for your reply!

| Cheers dude!
| --
| Kind regards,
| Remko Lodder                   |remko at
| Reporter DSINet                |remko at
| Projectleader Mostly-Harmless  |remko at

More information about the freebsd-questions mailing list