So when a client wants to contact a server, how does the pool decide which server the client should contact(assuming the client has used the default pool.ntp.org as the desired server). From what I have understood about the NTP Pool, I think the pool probably recognises the approximate geographic location of the client and then uses a round robin approach to provide a server from the available servers in the particular zone. Is this correct?
Also, are servers given a preference based on the stratum that they belong to i.e. would a stratum 2 server have a higher chance of receiving a client request than a stratum 3 server or maybe vice versa ?
As of right now (@Ask can correct me if I’m wrong), but the DNS server doesn’t do any geo-targeting for client requests. i.e. if you were located in the US, it wouldn’t automatically send you US-only servers if you were using ‘0.pool.ntp.org’.
Server’s are tagged into specific zones when they sign up. There is the “global” pool ‘0.pool.ntp.org’, then continents, then countries. It is up to the end-user to select the zone they wish to use.
There is no preference based on Stratum. Again, when a person signs up their server, on their management page they can choose a “Bandwidth” setting which is really just a weight-value for the DNS server. The higher the setting, the more often that IP will show up in the DNS responses.
Actually, @reen.gagan was right. The system tries to figure out which country (there are other criteria, too, but the main configuration just uses country or continent) the user is in based on the IP of their DNS server (or EDNS-CLIENT-SUBNET information for Google DNS and OpenDNS). Based on that information it will automatically match to a “country zone”. The country zones might do more harm than good now, so at some point I might change them to just work like the “default” zone.
What you said about stratum and the “bandwidth” setting was all correct.