Today I upgraded my root server from Jessie to Stretch, and suddenly ntp stopped working.
I found errors like follows in the log, which were obviously due to failures in name resolution:
2018-05-31T07:44:48.900756+00:00 myhost ntpd[22855]: giving up resolving host 1.debian.pool.ntp.org: Servname not supported for ai_socktype (-8)
The solution to make this work was to bind-mount some files and directories essential for name resolution into the chroot jail.
First create some directories and some dummy files:
# mkdir /var/lib/ntp/etc /var/lib/ntp/lib /var/lib/ntp/proc # mkdir /var/lib/ntp/usr /var/lib/ntp/usr/lib # touch /var/lib/ntp/etc/resolv.conf /var/lib/ntp/etc/services
Then update your /etc/fstab
as follows:
... #ntpd chroot mounts /etc/resolv.conf /var/lib/ntp/etc/resolv.conf none bind 0 0 /etc/services /var/lib/ntp/etc/services none bind 0 0 /lib /var/lib/ntp/lib none bind 0 0 /usr/lib /var/lib/ntp/usr/lib none bind 0 0 /proc /var/lib/ntp/proc none bind 0 0
Finally mount all these binds:
# mount -a
Thanks to the ArchLinux guys where I found this.
To check whether your ntp is working again, you can use the following command which shows a list of peers known to your ntp server:
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== 0.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 1.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 2.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 3.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 *ptbtime1.ptb.de .PTB. 1 u 46 64 377 11.483 -0.411 0.201 +ptbtime2.ptb.de .PTB. 1 u 52 64 377 11.502 -0.533 1.069 +ptbtime3.ptb.de .PTB. 1 u 47 64 377 11.451 -0.510 3.866 #batleth.sapient 131.188.3.221 2 u 44 64 377 0.188 1.097 0.176 #5.199.135.170 ( 130.149.17.21 2 u 45 64 377 11.271 0.581 0.396 -mail.morbitzer. 193.175.73.151 2 u 47 64 377 2.760 0.556 0.278 #hotel.zq1.de 161.62.157.173 3 u 46 64 377 0.094 1.384 0.261 -ntp2.m-online.n 212.18.1.106 2 u 47 64 377 7.167 -0.333 0.190 #2a03:b0c0:3:d0: 81.94.123.16 3 u 49 64 377 6.288 -2.071 1.760 #touka.thehomeof 130.149.17.21 2 u 48 64 377 0.206 0.932 0.222 +maggo.info 124.216.164.14 2 u 42 64 377 0.278 -0.137 0.436 +weyoun4.cord.de 124.216.164.14 2 u 44 64 377 2.849 -0.255 0.409 +opnsense.sauff. 222.217.153.8 2 u 43 64 377 0.270 -0.617 0.167 -web1.sys.ccs-ba 192.53.103.104 2 u 35 64 377 0.173 -1.251 0.220 #uruz.org 122.227.206.195 3 u 49 64 377 0.216 1.694 0.309 #clients5.arcani 162.23.41.55 2 u 38 64 377 6.120 -1.500 0.130 +stratum2-1.NTP. 129.70.130.71 2 u 47 64 377 14.043 1.625 0.394
The following command confirms that your current time is actually correct (within certain limits, of course):
# ntpstat synchronised to NTP server (192.53.103.108) at stratum 2 time correct to within 15 ms polling server every 64 s
If this was helpful, I would be happy to hear from you.