Subject: Re: Local IP addresses changing
To: Andrew Brown <email@example.com>
From: Erik E. Fair <firstname.lastname@example.org>
Date: 08/25/2000 11:00:09
At 9:56 -0700 8/25/00, Andrew Brown wrote:
>>This makes ntpd very unhappy, as it can't reach the remote servers anymore.
>>As a workaround I'm killing and restarting ntpd in my ip-up script, but I'm
>>wondering what the real solution would be.
>a better solution would be for ntpd use an ephemeral port for talking
>to servers, just like ntpdate does, and then to close it after it's
>done with a round of polling. just my opinion.
>im(ns?)ho, ntpd should *also* periodically re-lookup the addresses for
>hostnames that are its peers/servers. i have had several annoying
>situations where a host's address changed, the ntp.conf was correct on
>a client/peer, and the host's time slowly drifted *anyway*. ntpd just
>needs to be restarted, but it's a pain.
1. NTP should get intimate enough with the BIND DNS code to get the
TTL along with the A RR, and should requery the name/address mapping
for all peers when their TTLs expire. The TTL is the maximum time
that such a mapping is guaranteed to be valid. This necessarily means
that NTP should be keeping peering relationships with host names
rather than host addresses...
2. This is a specific case of a more general problem that I saw the
MacOS go through ten years ago. It used to be that MacOS machines
were big & heavy, and "luggable" at best. Then the PowerBooks were
introduced (with a "sleep" mode), and Apple got all the mobility
problems that entails.
First, Apple fixed their OS so that you didn't have to reboot when
you changed IP addresses. However, after that was done,
responsibility to deal passed to the applications and their
developers; most of them were making the same unwarranted assumptions
about addresses and configurations not changing out from under them.
They have to be recoded so that they reinitialize themselves, as
appropriate. This can happen periodically, or because some error is
returned by the network code, or we come up with some event
notification system. Doesn't matter how it's done - we just have to
do it for all user level network code. Want an amusing case to think
about? Think about routed...
Essentially, we need a "mobility/hot swap" project that will rototill
code as appropriate.