Better way to get interface assigned to default route?

Remko Lodder remko at
Sat Sep 4 16:13:12 PDT 2004


Markie forgot, and forwared this to the list, i forgot and didn't notice 
  it until now that it also had been sent to the list by Markie. So, i 
will 'reply' this message to the Questions list as well just to keep you 
guys and the archive updated.


Remko Lodder wrote:

> Markie wrote:
>> Suggesting I do `dhclient fxp1`? That's exactly my problem though :-) 
>> That
>> uses /sbin/dhclient-script to do all of it's work, right? dhclient-script
>> 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 2>&1
>>   sleep 1
>>   exit_with_hooks 0
>> fi
>> ---
>> See it? Basically I am after some sort of command that might be able 
>> to get
>> 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 
>> with
>> my modem anyway so it won't hurt me :-) I was just wondering if there was
>> 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 that
>> to vx0 (I _will_ forget I made the change :-)
> 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>
> 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.
> Perhaps this explains a bit...
> or i just dont get the question yet { have a long weekend, tired etc ;) }
> 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