Subject: Re: Local IP addresses changing
To: Andrew Brown <atatat@atatdot.net>
From: Erik E. Fair <fair@clock.org>
List: tech-net
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.

Two things:

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.

	Erik <fair@clock.org>