On Tue, 29 Nov 2005, Ian D. Leroux wrote:

Greetings,

My machine's ip address is assigned by DHCP, and whenever it changes
ntpd stops functioning and must be restarted.  I gather this behavior
will be changed in some future ntpd version, but in the meantime I had
added a line to my /etc/dhclient-exit-hooks to restart ntpd every time a
new address was obtained:

# [...] setup variables for ipcheck

if [ -n "$new_ip_address" ]; then
 # [...] run ipcheck to update my dyndns
 /etc/rc.d/ntpd restart
fi

This seemed work fine on 5.4, but on 6.0 it gives problems at boot.
Specifically, I get repeated "bad file descriptor" errors after my
network address is assigned, and running ps after the boot completes
shows that there are two ntpd processes running.  Killing one of them
stops the file descriptor errors.  My interpretation of this (for what
it's worth) is that an ntpd process gets started before dhclient gets a
chance to configure the address (perhaps when the interface initially
comes up) and then when the address is assigned the /etc/rc.d/ntpd
restart starts a second process, but somehow fails to stop the first
one.  For now I've removed that line from dhclient-exit-hooks, which
avoids the problems at boot time.

I have the feeling that I'm not doing the Right Thing here.  So is there
an accepted (or at least known-good) way of automatically managing the
restart of ntpd on address change?  Have I found a bug in rc.d worth
investigating? Or should I just stick to manual restarts until ntpd
stops needing them?

Thanks,

Ian D. Leroux

I needed to solve that same problem and came up with the same solution you did. I saw it work under 5.4 several times when my ISP did maintenance on my upstream router. I've kept the same setup under 6 and haven't noticed any problems yet. I've been fortunate enough to keep my IP address leased since my upgrade to 6, so I haven't truly tested this under 6. Eventually my ISP will do something to make me lose my lease, and if I have any problems then, I'll post.

I run pf on this system too. If I don't reset the firewall when I get a new IP address, I lose connectivity. That makes ntpd very upset. Here's what I'm doing in dhclient-exit-hooks to solve both problems:

if [ "$old_ip_address" != "$new_ip_address" ]; then
         case "$new_ip_address" in
         10.*)           ;;
         172.1[6-9].* | 172.2[0-9].* | 172.3[0-1].*)     ;;
         192.168.*)      ;;
         *)
logger -t dhclient IP address changed from $old_ip_address to $new_ip_address resetting pf
                 pfctl -Fa -f /etc/pf.conf
                 logger -t restarting ntpd
                 /etc/rc.d/ntpd restart
                 ;;
         esac
fi

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to