Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 05 Jul 2000 02:08:26 -0700
From:      Doug Barton <DougB@gorean.org>
To:        Brian Dean <bsd@bsdhome.com>
Cc:        Greg Lehey <grog@lemis.com>, Samuel Tardieu <sam@inf.enst.fr>, current@FreeBSD.ORG
Subject:   Re: DHCP does not honor default router?
Message-ID:  <3962FB0A.2A8FADF4@gorean.org>
References:  <Pine.BSF.4.21.0007042240200.274-100000@vger.bsdhome.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Brian Dean wrote:
> 
> On Tue, 4 Jul 2000, Doug Barton wrote:
> 
> >       I updated my dhclient script to handle this case, since it
> > happens on the roadrunner network as well. I can send you the patch
> > if you want, but I have a lot of other hacks in my script so it
> > might be confusing.  Starting right around line 106 of the default
> > script, I have:
> 
> A hook is already provided for this kind of thing.  You can create a
> separate program called /etc/dhclient-exit-hooks, which get run at
> various times by dhclient-script.

	I'm aware of this, I actually helped develop it. :)

> Since /etc/dhclient-exit-hooks is
> sourced by /sbin/dhclient-script, you have access to all of its
> internal variables, such as '$reason', '$old_ip_address',
> '$new_ip_address', etc.
> 
> Thus, you don't have to maintain a separate /sbin/dhclient-script like
> you do now.

	My motivation for maintaining a seperate script is that at one time I
was working on rewriting it to be more... sane. Unfortunately I couldn't
get obrien behind me at the time, and I've since lost interest in
flogging that horse. That said, there are some things that are easier to
handle _in_ the script than outside of it, mostly due to timing issues.
In this particular case, when the script actually reaches the point
where a total flush is needed, everything after it depends on the new
routes being in place, so I'd effectively have to duplicate most of the
script in the exit-hooks script if I went that route. That's one of the
reasons the dhclient-script exists, instead of having that all be hidden
in the client binary.

> Also, if you run a firewall, you should re-instantiate your rules with
> the new IP address here as well. 

	That really depends on how your firewall rules are written, although I
suppose it couldn't hurt. 

> I notice you also flush the routing table.  Is that necessary - it
> appears that dhclient-script does this when it's needed?

	Yes, it _appears_ to, but given the right (or wrong) combination of
input from the server the code that does that could get missed. In my
particular case, the !#@*&$ dhcp server doesn't return the information
necessary to set the $old_routers variable, so the 'route delete default
$router' never happens. I suspect that the original poster is seeing the
same kind of problem. 
 
> I found this exit hook feature by looking at the source for
> dhclient-script, but, oddly enough, it is even documented in the man
> page.

	I'm going to assume that you meant that in a helpful way, and just say,
"thanks." :)

Doug
-- 
        "Live free or die"
		- State motto of my ancestral homeland, New Hampshire

	Do YOU Yahoo!?


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3962FB0A.2A8FADF4>