Is there a way to exclude sources that sync with certain things? For example, if I wanted all of my NTP servers to be free from GPS sources? Or is NTP completely reliant on GPS?
Thanks.
I don’t think there is a way to reject based on stratum or refid…
NTP is not reliant on GPS… GPS is just one of several primary sources of accurate time.
Why would you want to do something like that? Would you also verify upstream sources of every server you do sync to ensuring you weren’t syncing to GPS?
If NTP is not reliant on GPS, then how does one uncouple all GPS sources from their NTP server?
So you’re saying one would have to verify upstream sources for all NTP servers to detect if you’re getting GPS-sourced time? Why… Well there are many reasons - just trying to check if it is technically possible
Well, for instance you could use the NIST NTP servers… Those are based on UTC(NIST) using local atomic clocks and not GPS. FYI, UTC(NIST) and UTC(USNO) are always kept in close sync with each other, typically to within 20 nanosecond (according to the NIST webpage).
https://tf.nist.gov/tf-cgi/servers.cgi
If you want a radio source, you could use various commercial (or home-brew) hardware to lock onto NIST’s WWVB signal to supply your time to NTP…
https://www.nist.gov/pml/time-and-frequency-division/radio-stations/wwvb
Likewise depending on where you live in the world, there are also DCF77 over in europe, providing the same thing as WWVB does for the US.
If you don’t want to use GPS, there are alternate GNSS systems out there… Glonass, Galileo, Beidou, etc…
Finally you could also get time from cellular networks. Though their time is typically derived from GNSS systems.
In order not to depend on gps, use the ip addresses of servers that are synchronized from time standards, as a rule, this is a time services server, for example, 81.17.128.182, but when synchronizing from other standards, you will not have a status higher than stratum 2.
Most systems that use “GPS”, like mine, use more then just GPS.
They also use Galileo, Glasnoss and many others.
Combined with the other timeservers that are used, yes we use other timeservers too, so the correct time is known and passed onto clients.
It is not that “GPS” servers only use GPS, they use a GPS-receiver as the main source of tracking the correct time, but it is compared to other servers.
Also, NTP-pool measures the correct timekeeping of all of us and it you are too far off you are dropped from the pool.
NTP systems are perfect on time give or take a few nano-seconds.
That is also due to internet delays as well as simple computer internal delays.
100% correct is impossible, not even atomic-clocks can get there.
The closest you can get to the perfect time is getting your own beryllium-time-clock, but will be expensive
To give you an idea of how accurate it really is:
root@server:~# chronyc tracking
Reference ID : 47505300 (GPS)
Stratum : 1
Ref time (UTC) : Tue Oct 22 16:08:32 2019
System time : 0.000032011 seconds slow of NTP time
Last offset : +0.000076792 seconds
RMS offset : 0.000322315 seconds
Frequency : 24.579 ppm fast
Residual freq : +0.120 ppm
Skew : 15.128 ppm
Root delay : 0.000000 seconds
Root dispersion : 0.000506 seconds
Update interval : 16.0 seconds
Leap status : Normal
Bas.