Many (probably all) NTP servers in the Philippines don't work

As long as there is at least one server in a zone, only that (or those few) server(s) will be handed out to clients. The fall-back to the continent zone only happens when there is no server at all in a zone.

I.e., when those malfunctioning servers would all be dropped from the PH zone, clients would be assigned servers from the Asia zone.

Are those NTP servers serving local clients properly? I guess there might be some geodefence in place, so monitoring failure from outside Philippines is not necessearily good indicator about their service quality.

  1. The comments and experiences outlined in this thread and others suggests strongly that the problem is not specific to the vendor domain, and is more related to the responsiveness of the server whose IPs are returned for any Philippines-oriented query. I have checked that the issue is certainly reproducible using ph.pool.ntp.org.
  2. The problem I have, as a vendor, is that we have used our vendor-specific domain to pre-install NTP settings in devices which are now failing to work for customers in the Philippines, as required by the pool terms of service. So even if it was specific to our vendor domain, it would be a problem :wink:
1 Like

I vibe coded a quick check to show this doesn’t work still.

$ /home/user/ntp_checker_enhanced.py
=== NTP Pool IP Discovery and Testing ===

Performing 100 DNS lookups...
  Progress: 10/100 lookups, found 9 unique IPs so far...
  Progress: 20/100 lookups, found 9 unique IPs so far...
  Progress: 30/100 lookups, found 9 unique IPs so far...
  Progress: 40/100 lookups, found 9 unique IPs so far...
  Progress: 50/100 lookups, found 9 unique IPs so far...
  Progress: 60/100 lookups, found 9 unique IPs so far...
  Progress: 70/100 lookups, found 9 unique IPs so far...
  Progress: 80/100 lookups, found 9 unique IPs so far...
  Progress: 90/100 lookups, found 9 unique IPs so far...
  Progress: 100/100 lookups, found 9 unique IPs so far...

Querying NTP pool subzones...
  Querying ph.pool.ntp.org...
  Querying 0.ph.pool.ntp.org...
  Querying 1.ph.pool.ntp.org...
  Querying 2.ph.pool.ntp.org...
  Querying 3.ph.pool.ntp.org...

=== Found 14 unique IP address(es) ===
  222.127.1.18
  222.127.1.19
  222.127.1.20
  222.127.1.21
  222.127.1.22
  222.127.1.23
  222.127.1.24
  222.127.1.25
  222.127.1.26
  222.127.1.27
  2405:8d40:f27:cd00:3d0b:a6df:43f7:e7c9
  2405:8d40:f27:cd00:6121:cf9a:aeb1:497b
  2405:8d40:f27:cd00:7763:703:f43f:b01b
  2405:8d40:f27:cd00:8efa:be7a:8162:55cd

=== Testing NTP servers (parallel) ===
  Tested 10/14 servers...
  Tested 14/14 servers...

=== Results ===
------------------------------------------------------------
222.127.1.18    : βœ— FAILED     (Timeout)
222.127.1.19    : βœ— FAILED     (Timeout)
222.127.1.20    : βœ— FAILED     (Timeout)
222.127.1.21    : βœ— FAILED     (Timeout)
222.127.1.22    : βœ— FAILED     (Timeout)
222.127.1.23    : βœ— FAILED     (Timeout)
222.127.1.24    : βœ— FAILED     (Timeout)
222.127.1.25    : βœ— FAILED     (Timeout)
222.127.1.26    : βœ— FAILED     (Timeout)
222.127.1.27    : βœ— FAILED     (Timeout)
2405:8d40:f27:cd00:3d0b:a6df:43f7:e7c9 : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
2405:8d40:f27:cd00:6121:cf9a:aeb1:497b : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
2405:8d40:f27:cd00:7763:703:f43f:b01b : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
2405:8d40:f27:cd00:8efa:be7a:8162:55cd : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
------------------------------------------------------------

Summary: 0/14 servers responded successfully

Discovery methods:
  - DNS lookups found: 9 IPs
  - Subzone queries found: 12 IPs

The IPs provided are Globe, and I’m on Globe with a business connection. I’ve also tested from other PH ISP connections and get the same result.

Adding a test for us.pool.ntp.org from the same connection to demonstrate the issue further

$ /home/user/ntp_checker_enhanced.py
=== NTP Pool IP Discovery and Testing ===

Performing 100 DNS lookups...
  Progress: 10/100 lookups, found 25 unique IPs so far...
  Progress: 20/100 lookups, found 25 unique IPs so far...
  Progress: 30/100 lookups, found 25 unique IPs so far...
  Progress: 40/100 lookups, found 25 unique IPs so far...
  Progress: 50/100 lookups, found 25 unique IPs so far...
  Progress: 60/100 lookups, found 25 unique IPs so far...
  Progress: 70/100 lookups, found 25 unique IPs so far...
  Progress: 80/100 lookups, found 25 unique IPs so far...
  Progress: 90/100 lookups, found 25 unique IPs so far...
  Progress: 100/100 lookups, found 25 unique IPs so far...

Querying NTP pool subzones...
  Querying us.pool.ntp.org...
  Querying 0.us.pool.ntp.org...
  Querying 1.us.pool.ntp.org...
  Querying 2.us.pool.ntp.org...
  Querying 3.us.pool.ntp.org...

=== Found 43 unique IP address(es) ===
  104.131.139.195
  104.167.215.195
  104.233.211.205
  108.61.215.221
  129.146.193.200
  141.11.228.173
  142.202.190.19
  144.202.0.197
  144.202.41.38
  158.51.99.19
  162.159.200.123
  172.234.37.140
  173.208.172.164
  198.137.202.32
  198.137.202.56
  208.67.72.43
  208.67.75.242
  209.51.161.238
  216.229.0.50
  217.180.209.214
  23.111.186.186
  23.149.208.12
  23.150.41.123
  23.168.24.210
  23.186.168.123
  23.186.168.125
  23.186.168.131
  23.95.49.216
  2600:1700:5455:a70::7b:2
  2604:a880:400:d0::83:2002
  2620:138:5000:0:5054:ff:fe89:6673
  2a01:4ff:1f0:c33f::1
  44.190.5.123
  45.55.58.103
  45.77.126.122
  45.84.199.136
  50.218.103.254
  50.53.75.227
  51.81.209.232
  64.246.132.14
  69.89.207.99
  73.65.80.137
  96.231.54.40

=== Testing NTP servers (parallel) ===
  Tested 10/43 servers...
  Tested 20/43 servers...
  Tested 30/43 servers...
  Tested 40/43 servers...
  Tested 43/43 servers...

=== Results ===
------------------------------------------------------------
104.131.139.195 : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
104.167.215.195 : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
104.233.211.205 : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
108.61.215.221  : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
129.146.193.200 : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
141.11.228.173  : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
142.202.190.19  : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
144.202.0.197   : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
144.202.41.38   : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
158.51.99.19    : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
162.159.200.123 : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
172.234.37.140  : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
173.208.172.164 : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
198.137.202.32  : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
198.137.202.56  : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
208.67.72.43    : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
208.67.75.242   : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
209.51.161.238  : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
216.229.0.50    : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
217.180.209.214 : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
23.111.186.186  : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
23.149.208.12   : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
23.150.41.123   : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
23.168.24.210   : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
23.186.168.123  : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
23.186.168.125  : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
23.186.168.131  : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
23.95.49.216    : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
2600:1700:5455:a70::7b:2 : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
2604:a880:400:d0::83:2002 : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
2620:138:5000:0:5054:ff:fe89:6673 : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
2a01:4ff:1f0:c33f::1 : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
44.190.5.123    : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
45.55.58.103    : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
45.77.126.122   : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
45.84.199.136   : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
50.218.103.254  : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
50.53.75.227    : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
51.81.209.232   : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
64.246.132.14   : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
69.89.207.99    : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
73.65.80.137    : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
96.231.54.40    : βœ“ SUCCESS    (Thu Jun  5 20:31:15 2025)
------------------------------------------------------------

Summary: 39/43 servers responded successfully

Discovery methods:
  - DNS lookups found: 25 IPs
  - Subzone queries found: 23 IPs

Adding just pool.ntp.org which is the problem with a lot of defaults not having a failover, and vendor domains don’t help

$ /home/user/ntp_checker_enhanced.py
=== NTP Pool IP Discovery and Testing ===

Performing 100 DNS lookups...
  Progress: 10/100 lookups, found 8 unique IPs so far...
  Progress: 20/100 lookups, found 8 unique IPs so far...
  Progress: 30/100 lookups, found 8 unique IPs so far...
  Progress: 40/100 lookups, found 8 unique IPs so far...
  Progress: 50/100 lookups, found 8 unique IPs so far...
  Progress: 60/100 lookups, found 8 unique IPs so far...
  Progress: 70/100 lookups, found 8 unique IPs so far...
  Progress: 80/100 lookups, found 8 unique IPs so far...
  Progress: 90/100 lookups, found 8 unique IPs so far...
  Progress: 100/100 lookups, found 8 unique IPs so far...

Querying NTP pool subzones...
  Querying pool.ntp.org...
  Querying 0.pool.ntp.org...
  Querying 1.pool.ntp.org...
  Querying 2.pool.ntp.org...
  Querying 3.pool.ntp.org...

=== Found 14 unique IP address(es) ===
  222.127.1.18
  222.127.1.19
  222.127.1.20
  222.127.1.21
  222.127.1.22
  222.127.1.23
  222.127.1.24
  222.127.1.25
  222.127.1.26
  222.127.1.27
  2405:8d40:f27:cd00:3d0b:a6df:43f7:e7c9
  2405:8d40:f27:cd00:6121:cf9a:aeb1:497b
  2405:8d40:f27:cd00:7763:703:f43f:b01b
  2405:8d40:f27:cd00:8efa:be7a:8162:55cd

=== Testing NTP servers (parallel) ===
  Tested 10/14 servers...
  Tested 14/14 servers...

=== Results ===
------------------------------------------------------------
222.127.1.18    : βœ— FAILED     (Timeout)
222.127.1.19    : βœ— FAILED     (Timeout)
222.127.1.20    : βœ— FAILED     (Timeout)
222.127.1.21    : βœ— FAILED     (Timeout)
222.127.1.22    : βœ— FAILED     (Timeout)
222.127.1.23    : βœ— FAILED     (Timeout)
222.127.1.24    : βœ— FAILED     (Timeout)
222.127.1.25    : βœ— FAILED     (Timeout)
222.127.1.26    : βœ— FAILED     (Timeout)
222.127.1.27    : βœ— FAILED     (Timeout)
2405:8d40:f27:cd00:3d0b:a6df:43f7:e7c9 : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
2405:8d40:f27:cd00:6121:cf9a:aeb1:497b : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
2405:8d40:f27:cd00:7763:703:f43f:b01b : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
2405:8d40:f27:cd00:8efa:be7a:8162:55cd : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
------------------------------------------------------------

Summary: 0/14 servers responded successfully

Discovery methods:
  - DNS lookups found: 8 IPs
  - Subzone queries found: 12 IPs

Vendor specific test

$ ./ntp_checker_enhanced.py 
=== NTP Pool IP Discovery and Testing ===

Performing 100 DNS lookups...
  Progress: 10/100 lookups, found 9 unique IPs so far...
  Progress: 20/100 lookups, found 9 unique IPs so far...
  Progress: 30/100 lookups, found 9 unique IPs so far...
  Progress: 40/100 lookups, found 9 unique IPs so far...
  Progress: 50/100 lookups, found 9 unique IPs so far...
  Progress: 60/100 lookups, found 9 unique IPs so far...
  Progress: 70/100 lookups, found 9 unique IPs so far...
  Progress: 80/100 lookups, found 9 unique IPs so far...
  Progress: 90/100 lookups, found 9 unique IPs so far...
  Progress: 100/100 lookups, found 9 unique IPs so far...

Querying NTP pool subzones...
  Querying openwrt.pool.ntp.org...
  Querying 0.openwrt.pool.ntp.org...
  Querying 1.openwrt.pool.ntp.org...
  Querying 2.openwrt.pool.ntp.org...
  Querying 3.openwrt.pool.ntp.org...

=== Found 14 unique IP address(es) ===
  222.127.1.18
  222.127.1.19
  222.127.1.20
  222.127.1.21
  222.127.1.22
  222.127.1.23
  222.127.1.24
  222.127.1.25
  222.127.1.26
  222.127.1.27
  2405:8d40:f27:cd00:3d0b:a6df:43f7:e7c9
  2405:8d40:f27:cd00:6121:cf9a:aeb1:497b
  2405:8d40:f27:cd00:7763:703:f43f:b01b
  2405:8d40:f27:cd00:8efa:be7a:8162:55cd

=== Testing NTP servers (parallel) ===
  Tested 10/14 servers...
  Tested 14/14 servers...

=== Results ===
------------------------------------------------------------
222.127.1.18    : βœ— FAILED     (Timeout)
222.127.1.19    : βœ— FAILED     (Timeout)
222.127.1.20    : βœ— FAILED     (Timeout)
222.127.1.21    : βœ— FAILED     (Timeout)
222.127.1.22    : βœ— FAILED     (Timeout)
222.127.1.23    : βœ— FAILED     (Timeout)
222.127.1.24    : βœ— FAILED     (Timeout)
222.127.1.25    : βœ— FAILED     (Timeout)
222.127.1.26    : βœ— FAILED     (Timeout)
222.127.1.27    : βœ— FAILED     (Timeout)
2405:8d40:f27:cd00:3d0b:a6df:43f7:e7c9 : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
2405:8d40:f27:cd00:6121:cf9a:aeb1:497b : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
2405:8d40:f27:cd00:7763:703:f43f:b01b : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
2405:8d40:f27:cd00:8efa:be7a:8162:55cd : βœ— FAILED     ([Errno -9] Address family for hostname not supported)
------------------------------------------------------------

Summary: 0/14 servers responded successfully

Discovery methods:
  - DNS lookups found: 9 IPs
  - Subzone queries found: 13 IPs

Thanks for checking. The main point here is that source IP used for the queries was from the Philippines. It is clear that there is special configuration on the server side, because some of the monitoring instants are allowed to query. Only the NTP server admin or a pool admin can do something to fix the issue.

The ten server are under one account from a big car company verified and netspeed set to 12. I’ve mailed them to take a look here.

Also Cloudflare is now supporting the PH Zone.

2 Likes

Great, thanks!

For IPv4, those now have a netspeed share of about 49.4% each, while most of the pre-existing servers dropped from an average of around 12% (with one at only 1.7%) to around 0.123% (and 0.0185%, respectively).

Though given the low total number of servers in the zone, the relief for other servers is probably not going to be as much as those numbers might suggest, given that the DNS responses will always have a discrete number of IP addresses in them. I.e., four for pool.ntp.org, and three for the numbered zones (up from two before the Cloudflare servers were added).

I.e., the Cloudflare servers will be in pretty much every response for pool.ntp.org, and the other 10 current servers will take turns for the other two slots in the responses. And for the numbered zones, some of them will still have only IP addresses from the pre-existing servers in them, owing to the zone generation algorithm trying to avoid that an IP address appears in more than one numbered zone.

But let’s see what the DNS statistics will say after a few days.

I still think tech companies, vendors, universities, ISPs and so on should be informed that the area is underserved and needs to be pushed. Spread the word!

Thanks to Cloudflare for their servers! But what would happen if they didn’t do that anymore?
What about vendors who use the pool, especially those who have also registered a zone (all for free)? Why don’t they provide a server? Is that so expensive?

Sorry… Just my two cents.

1 Like

The pool itself also could improve the situation by finally addressing the underserved zone topic, e.g., based on any of the many ideas that are on the table, or a combination thereof, and by following through on improvement plans that had been envisioned/announced already a while ago. I am not going to re-iterate all of the ideas and plans for the nth time, just look through the forum, relevant threads tend to be among the more voluminous ones… I.e., there is no shortage of ideas how to address the issue.

More help from the community would need to be enlisted to free Ask from many routine tasks so he can focus the very little time he has available for the project on development work. Or even induct a few very trusted people to work on the implementation under Ask’s guidance. I’d think there would be enough volunteers who would be happy to chip in. Some people have expressed willingness already, I’d expect more to come forward when a call were made.

Looking back through my csv records it looks like Cloudflare were in the PH zone back in March.

filename:time_stamp,location_of_request,dns_server_used,hostname_asked_for,ip_address_returned,round_trip_time_ms
2025-03-27-pool-dns.csv:1743066135,ph-mnl-l1,8.8.8.8,pool.ntp.org,162.159.200.1,1
2025-03-28-pool-dns.csv:1743132197,ph-mnl-l1,8.8.8.8,pool.ntp.org,162.159.200.123,1
2025-03-28-pool-dns.csv:1743132197,ph-mnl-l1,8.8.8.8,pool.ntp.org,162.159.200.1,1
2025-03-28-pool-dns.csv:1743134555,ph-mnl-l1,8.8.8.8,pool.ntp.org,162.159.200.123,1
2025-03-28-pool-dns.csv:1743134555,ph-mnl-l1,8.8.8.8,pool.ntp.org,162.159.200.1,1
2025-03-30-pool-dns.csv:1743295357,ph-mnl-l1,1.1.1.1,pool.ntp.org,162.159.200.1,2
2025-03-30-pool-dns.csv:1743295357,ph-mnl-l1,1.1.1.1,pool.ntp.org,162.159.200.123,2
2025-03-30-pool-dns.csv:1743296547,ph-mnl-l1,1.1.1.1,pool.ntp.org,162.159.200.123,2
2025-03-30-pool-dns.csv:1743296547,ph-mnl-l1,1.1.1.1,pool.ntp.org,162.159.200.1,2

Also it looks like there have been quite a few servers added in the last few days so I will try and add one as before and hoping it does not get flooded. Spreading the load across many should help.

1 Like