Raspberry Pi NTP Server - Part 7

Raspberry Pi NTP Server - Part 7

Joining the NTP Pool

By this stage (even if you didn't add a GNSS receiver or follow any tuning steps), you'll have an NTP server that would useful in the NTP Pool. By joining, you can help to provide the time to users across the internet.

What is the NTP Pool?

The NTP Pool is a collection of computers/servers on the internet that agree to provide accurate time information publicly and for free using the NTP protocol. Since its formation in 2003, the NTP Pool has become a really vital part of the internet's infrastructure.

The NTP Pool is used as the default time source by some hardware and software vendors, including most Linux distributions. Chances are, you've gotten the time from the NTP pool without realising it in the past.

At the time of writing, there are 4,272 servers active globally. 2,655 using IPV4, and 1,617 using IPV6. Europe and North America are pretty well represented, but some regions of the world have very few servers (see the figures in brackets in the image below). Especially in these under-served regions, more pool members are desirable to share the load!

What are the requirements to join?

To join the NTP Pool, you don't need to have very much. You don't need a powerful computer or a high bandwidth connection. You don't even need a stratum 1 time source. (That is to say that you don't need to get the time from GPS. It's okay to get the time from other servers and still join the NTP Pool)

You do, however, need the server to be always on, and you need to have a fixed IP address (or one that changes very infrequently). The NTP Pool joining info page says "It's very important that your IP address doesn't change or only does so extremely infrequently (say once a year or less)".

Regarding bandwidth, if you can spare about 500 kbps, you should be able to support the NTP Pool project in a meaningful way. The project site describes this as follows "Currently most servers get about 5-15 NTP packets per second with spikes of 60-120 packets per second a few times a day. This is roughly equivalent to 10-15Kbit/sec with spikes of 50-120Kbit/sec. The project steadily acquires more timeservers, so the load should not increase dramatically for each server. In plain terms, you probably need at least 384-512Kbit bandwidth (in and out-going)."

It's worth noting that you can set the amount of traffic you'd like to be directed to your server from the NTP Pool server management page. This value isn't a hard and fast rule, but it gives an indication of what proportion of pool requests will be directed to your server.

What's the process?

If you've read this far and want to join the NTP Pool, great!

The project has a good guide on how to join, but here are some key steps:

  • Make sure you're not using pool.ntp.org as your source of time!
  • Make port 123 accessible from outside your network, and forward it to your time server.
  • Go to https://www.ntppool.org/manage, make an account, and enter your server's IP address
    • You can add both IPV4 and IPV6 addresses if you have them - using both is ideal if they're static!
    • If you have your own domain name, you can also consider directing a subdomain to your server, and then listing the subdomain with the NTP Pool. This is what I do!
  • Follow the steps to verify that you own the server(s)
  • Set your preferred connection speed
    • I suggest setting to 'disabled, monitoring only' for a day or two. This lets you see that everything's accessible and working before opening up the server to the public.

And that's it! You're now serving the time to the public from your own DIY server. Maybe you've followed the full guide and have added a Stratum 1 clock to the network, or maybe you're relaying the time from others. Either way, you're helping to add resilience to a critical part of the Internet's infrastructure.

Thank you!


Page Index