I have been looking at my 2 NTP server’s client distribution statistics. Their IPv6 looks like this:
za
283.14 ‱
293.24 ‱ (0.97x)
eg
248.68 ‱
us
2.09 ‱
tn
248.33 ‱
ng
226.05 ‱
And for IPv4 it looks like this:
za
79.704 ‱
38.484 ‱ (2.07x)
eg
28.232 ‱
ng
29.278 ‱
tn
30.205 ‱
us
0.083 ‱
My servers are in South Africa (za). For the most part, the countries in Africa have poor to non-existent connectivity between them. None of the African countries in those lists have direct connectivity to South Africa. Their traffic will all go via Europe to get to South Africs. So they probably would have been better served by NTP servers in Europe.
For ISPs, their first priority is good connectivity to the USA because that is where most of the content is. They will often use Europe because it has good connectivity the the USA.
So maybe the Europe and USA pools should just be added to the Africa pool? The same might be valid for the South America pool too. And I do not mean just when africa.pool.ntp.org is used, but especially when the main [0-3].pool.ntp.org names are used.
South America probably have better connectivity between countries. But at this stage there are only 75 NTP pool servers. If you look at the undersea cables, the majority go north to the USA. The USA server pool would probably be the best group to add because of how the connectivity is.
Africa also have a lot of undersea cables around it, but ISPs tend to only buy capacity to Europe or to the USA now that SACS and SAIL are available. It is changing slowly in the south because there some ISPs have built cables between the countries. But to get for example from Nigeria, Egypt or Tunisia to South Africa, the packets will go via Europe.
I think I’m trying to say two things:
Countries in a continent does not necessarily have good connectivity.
If a country or continent does not have enough NTP pool servers, instead of adding from anywhere, looking at how connectivity to that area is, might give better results.
Again, that is not the case with S. America. Its internet population is far larger than Africa’s and the majority of the content is local or localized by CDNs.
If you look at the pool landing page, the number of active NTP servers in Africa is 102 and in South America it is 76. I think that is too few for both, keeping in mind the internet populations. The question then is, from where do you add servers? Just randomly, or just looking at geographical distance, or something else, or a mix?
If you just look at the geographical distance, Africa and South America are fairly close and there are even undersea cables between them. But there are already too few NTP servers in both, so that won’t help. From the southern parts of Africa, Australia looks fairly close, but at least from my internet connection, packets either take the long way around, via SACS, MONET, Miami…, at around 430ms, or via Amsterdam, Singapore,…, at around 480ms, depending on which Australian ISP is being used. In both these cases, it would go through an region with an “abundance” of ntp servers in the pool.
But Africa is well connected to Europe, which is also the continent with the most active NTP servers in the pool. Actually for NTP pool purposes, grouping the African countries that border the Mediterranean Sea with Europe, would probably be a win for them.
I guess ideally every NTP client would have a mini NTP monitor that would figure out the ideal servers to use, also keeping diversity and the server load in mind.
I did read your paper and that thread. The focus seemed a little different though. More about how under-served countries are handled.
It is also not clear if or how the algorithm will change. I saw the suggestion to remove the country (and maybe the continent) zones and just make them an alias to the main zone. I also saw the suggestion of a minimum threshold of 20-30 NTP server for a country.
If the basic algorithm that give preference to country and then continents stay, you will still have a NTP client in Egypt for instance, whose packets will go through Europe down to South Africa even if they use pool.ntp.org, which seems weird considering that there are many NTP servers in Europe.
@giovane is correct pointing to that thread as that’d be a more natural place to implement what you are suggesting.
One of my concerns with this sort of rule would be maintaining it over years; and me not having enough specialized knowledge about the connectivity between each country.
I imagine sending all users in Africa to Europe rather than another African country wouldn’t make sense.
Users in Zimbabwe, Madagascar and Namibia probably have direct connectivity to South Africa, I imagine?
Users in Cameroon probably are better served by a server in Nigeria than one in Sweden, etc.
More generally speaking this is a problem elsewhere, too. Armenia is in Asia in the mapping, but I imagine have better connectivity to Turkey than to Japan.
In general, geographical NTP server selection is suboptimal. The server selection should be network topological, based on packet delay and hop count. As for the geographical location there is the Maxmind database, what are the alternatives for the topological data? ARIN/APNIC/RIPE combo autonomous system peering data?
The word imagine was used twice in the post. If that’s not an indication that one take a hard step back to better acquainted with the issue then nothing else is.
Cloudflare’s Radar and specifically the Routing section might be useful to get some of the answers. One can see views per country and per ASN and how they are connected. They do have an API and they say it is free.
If one look at the current pool statistics, Africa has 100 NTP pool servers and the countries with the most are:
South Africa 66
Kenya 13
Angola 7
Madagascar 6
So except for maybe South Africa, none really have enough NTP servers for their own internet population and adding a neighbour country with 0, 1 or 2 NTP servers are not really going to help. The above numbers include IPv6 servers, but they won’t be included in the normal pools, so there are actually even less servers available.
Zimbabwe, Madagascar, Namibia, Botswana, Lesotho and eSwatini (Swaziland) does have direct connectivity, at least between some of their ISPs.
I don’t know about Cameroon. Looking on the Cloudflare Radar, there are a few ASNs in Cameroon. I looked at upstreams and peers of one or two of them, Cogent, Sprint, Orange, Mainone and WIOCC are all international connectivity providers. It is not clear if there is a direct connection to Nigeria.
Really I think we’d need per country + ASN measurements. What really matters for NTP is symmetric and consistent latency. Proximity (geographic or network) is the easiest tool for generally having lower latency and lower latency limits the upper bound on asymmetric latency.
Three times I used that word! I’m not sure what your point is. I’m well acquainted with the problem domain, but not with network infrastructure in Africa or Western Asia which is why I used those as examples.