Hi, Hal--

First, thanks for working on ntpd.

On Nov 17, 2009, at 5:01 PM, Hal Murray wrote:
The current ntpd tries to get 10 ntp servers. The current DNS for things
like 0.pool.ntp.org returns 5 addresses so that's all that ntpd uses.

Is 10 a good number for ntpd to use?  If not, what should it be?

Falseticker detection using the Marzullo's algorithm / "NTP Interval Intersection" algorithm wants at least 4 timesources; 5 is a perfectly reasonable # to use for standard polling interval of 1024 seconds. I set up 3 peers and four different upstream sources when I was running a set of four timeservers (1 internal, and 3 as stratum-2s in the NTP pool), and that did fine for years, even if an upstream server or two disappeared or changed IPs.

Would things be better for the pool project if their DNS servers could return
more addresses and ntpd would only use 5?

There are two main cases to consider: end-user machines, which do not provide time sync to anything else, and NTP servers which provide time to many other machines-- they might be in the pool, published as public stratum-1/2 NTP sources, or private within a company, ISP, or whatever.

People who intend to run a NTP server can and will fiddle and adjust as they see fit, so the main issue to get right is the legions of client machines, WAN routers, firewall boxes, etc which are setup once and never touched again by a human. IMHO, trying to make a 1-line ntp.conf like:

  pool pool.ntp.org     # or maybe vendor.pool.ntp.org

...work as well as possible is likely to provide the most benefit.

Is the pool project happy having a knob so they can select how many servers a system using the pool config line actually gets to use? (If you want to change to 4 or 6, just change the number of servers that you return when
answering a DNS query.)

Sure. Set it up to look for a reasonable default # of NTP timesources, but let the user over-ride the default if they think they know better. If the default is well-chosen, people generally won't need to fiddle. 4 is the lower bounds, but 5 or 6 might be a little more robust. I don't think there is any noticeable benefit to going much larger than that.

What you said in subsequent mail:

Various enhancements are possible. I don't think anybody is working on them. One would be to occasionally (daily?) replace the least-good server with another one from the pool. If all clients implemented that, it would be
possible to take a server out of the pool in a day or so.

...this would also be highly useful, because it would handle the case where a server drops out, moves to a new IP, etc, without needing a human to notice and bounce ntpd.

The pool command has been in ntpd for quite a while. It works in the normal case, but it doesn't (yet) work if the DNS lookup doesn't get an answer when
ntpd reads the config file.  (If that happens, ntpd sets up a separate
process to retry the DNS lookup occasionally. That process didn't get the
pool vs server info.)

Perhaps I'm not being patient enough, but in the machine fleets I manage, if two ntpds are running (one the child process supposedly there to retry DNS lookups), the second one never goes away and ntpd never starts sync'ing time, even if I wait for days. If it matters, the most common case is running version=ntpd [email protected], but this has been seen with older versions as well...

Regards,
--
-Chuck

_______________________________________________
timekeepers mailing list
[email protected]
https://fortytwo.ch/mailman/cgi-bin/listinfo/timekeepers

Reply via email to