PublicNTP
Open Stratum One - The Meinberg Solution
March 18, 2019
March 18, 2019
Brad Woodfin
Since PublicNTP started in the summer of 2017, all but one of the servers we have deployed have been stratum two servers according to the Network Time Protocol.
To understand what that means more fully, let’s start by explaining stratums.
A stratum, in layman’s terms, is the number of “wires” between your NTP server and a high quality source of time.
- Stratum Zero refers to a direct source that accesses nanosecond or better timing data (a GPS receiver would qualify as a stratum zero source)
- Stratum One is a server that is directly and physically connected to a receiver of stratum zero time -- allowing them to deliver the highest precision time possible.
- Stratum Two receives its time estimates from a number of NTP servers, at least one of them being a stratum one.
- Stratum Three likewise receives its time from a web of servers but the most reliable reference is stratum two.
And it goes on ad infinitum; your server’s stratum number is one higher than the lowest stratum server used as a reference.
This makes NTP incredibly resilient. If your stratum two server is connected to many highly reliable stratum two servers and a couple strong stratum ones, you can still come out with accurate time.
For PublicNTP, that means that stratum two cloud servers are, in highly concentrated cities, a dandy option. But as we got into lesser-developed regions of the world, such as our South America and Africa deployments, it’s not enough. In these underserved areas, the upstream time across cloud servers is inadequate for the level of accuracy we want to provide to people who use PublicNTP servers as their source of time.
In Nigeria, for example, the two upstream time sources it had access to were all in the United Kingdom or South Africa. The UK is about 5000km away and South Africa is about 4500km away. And we were seeing synchronization within 10 and 50 milliseconds of UTC. That’s a testament to how the NTP web can support global time -- but that’s approximately ten times less accurate than the rest of our servers.
So we needed a stratum one server with direct access to GPS synchronization. That way we could provide the source rather than go looking for it. But our first exploration into those logistics revealed a high price tag.
There are many commercially available stratum one rackmount servers. We found that much of the gear started at $5000. Which is totally understandable; it’s a niche market and that kind of price is what covers the overhead of storing a product that may not see many buyers. Combine that with precision gear like temperature-controlled crystal oscillators and it’s an expensive item right away.
PublicNTP started looking for ways to build our own stratum one server for less than we could buy them from commercial vendors. That way we could base it on an open architecture and save money at the same time!
After plenty of looking, we settled on a Dell PowerEdge R240 for the first part of our solution. Designed to be racked in a datacenter, with its small size and low power usage, it was a low-cost alternative to a heavier piece of equipment.
Thanks to its standard equipment and components, it would also be easy to get and ship replacement parts should they fail. With Linux installed, we can run any monitoring programs we wanted (unlike being locked to proprietary software).
And with Linux as our OS, we found that the Meinberg GPS180PEX was an excellent GPS receiver to parter it with. With a matched antenna and serial port output, the Meinberg solution ensures good GPS reception.
With our puzzle-pieced equipment, we save enough money to essentially double our deployments. PublicNTP continues to search for host locations into 2019 and we’re excited to begin with these stratum one servers!