Chrony NTP Server
I’ve had an interest in accurate timekeeping and NTP, the Network Time Protocol for quite a while.
At one time or another over the years, I’ve run
the original ntpd
,
xntpd,
and OpenNTPD.
I currently have the chrony
NTP server running on my old server,
to aggregate NTP needs on my home network.
I installed the Arch Linux chrony
package on my new server.
I configured it as a client of my old server’s chronyd
.
It seemed to keep good time.
I immediately forgot about it,
but I retained a background belief that all was well.
A couple of years ago I bought an Apple “m2” silicon 14 inch Macbook air. I recently powered it up after a long period of disuse, it came up with October 23, 2023 as the current date.
Problem: since to the rest of the world, the date is June 1, 2024, a lot of TLS certificates are “in the future”. Most software, including the Safari web browser, won’t accept those certificates.
I used Firefox
on my Linux laptop to find out how to get the date from an NTP server.
The command is sntp -Ss 172.24.0.1
.
This didn’t work.
sntp
gives a weird jumble of output and a confusing message.
I checked, my new server was running chronyd
,
and chronyd
was a client of my old server.
sntp
on my Mac laptop still didn’t work.
Having just set up kea DHCP daemon
on my new server, I checked the file /etc/chrony.conf
to see if it had the correct interface names in it.
It did not,
mainly because that’s not how chronyd
selects its clients.
You have to tell chronyd
which subnets to allow,
not which network interfaces to listen on,
and I have not put any CIDR notation subnets in
allow
lines in /etc/chrony.conf
Once I added an allow 172.24.0.0/16
, and restarted chronyd.service
,
the Mac laptop picked up the current time.
Here’s what my Linux laptop’s chronyd
says is going on:
chronyc> sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- monarch.glump 5 9 377 508 -40us[ -528us] +/- 20ms
^* _gateway 6 9 377 255 -797us[-1322us] +/- 18ms
My Linux laptop thinks that my old server is named “monarch” and it’s in the “.glump” domain. Here, “_gateway” is my new server.
Here are my new server’s NTP clients:
chronyc> clients
Hostname NTP Drop Int IntL Last Cmd Drop Int Last
===============================================================================
172.24.0.154 102 0 10 - 470 0 0 - -
wrt3200acm.cheese 8 0 12 - 52m 0 0 - -
hazard7.cheese 65 0 9 - 445 0 0 - -
Kea has allocated 172.24.0.154 to my Mac laptop. “hazard7.cheese” is what my new server thinks my laptop’s DNS name is, and “wrt3200acm.cheese” is the DNS name assigned to my WRT3200ACM router.