I have been trying to set up my NTP server for both IPv4 and IPv6. IPv4 is working fine, as are other TCP and UDP services configured on IPv6, but I cannot get my NTP server to respond to IPv6 queries and I don't understand why.
NTP server is ntpsec 1.2.2 (shipped with Ubuntu 24.04), settings:
driftfile /var/lib/ntpsec/ntp.drift
leapfile /usr/share/zoneinfo/leap-seconds.list
tos maxclock 11
tos minclock 4 minsane 3
interface listen (my LAN ipv4 address)
interface listen 2a01:0261:0e4a:cb::2
pool ntp.t-2.net
pool 3.ubuntu.pool.ntp.org
restrict -4 default kod nomodify nopeer noquery limited
restrict -6 default kod nomodify nopeer noquery limited
restrict 127.0.0.1
restrict ::1
Netstat shows it listening on IPv6 wildcard:
# netstat -tunpl | grep ntp
udp 0 0 (my lan ip):123 0.0.0.0:* 54219/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 54219/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 54219/ntpd
udp6 0 0 ::1:123 :::* 54219/ntpd
udp6 0 0 :::123 :::* 54219/ntpd
ntpdate (from behind the router) shows data transmission:
# ntpdate -d -6 2a01:261:e4a:cb00::2
3 Jun 21:24:32 ntpdate[11496]: ntpdate [email protected] (1)
Looking for host 2a01:261:e4a:cb00::2 and service ntp
2a01:261:e4a:cb00::2 reversed to m2.lan
host found : m2.lan
transmit(2a01:261:e4a:cb00::2)
transmit(2a01:261:e4a:cb00::2)
transmit(2a01:261:e4a:cb00::2)
transmit(2a01:261:e4a:cb00::2)
2a01:261:e4a:cb00::2: Server dropped: no data
tcpdump shows data received, but no responses:
# tcpdump -i enp42s0 udp port 123 and ip6
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on enp42s0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
19:24:32.801627 IP6 2a01:261:e4a:cb00:lanipv6.51439 > m2.lan.ntp: NTPv4, Client, length 48
19:24:34.801528 IP6 2a01:261:e4a:cb00:lanipv6.51439 > m2.lan.ntp: NTPv4, Client, length 48
19:24:36.801207 IP6 2a01:261:e4a:cb00:lanipv6.51439 > m2.lan.ntp: NTPv4, Client, length 48
19:24:38.801200 IP6 2a01:261:e4a:cb00:lanipv6.51439 > m2.lan.ntp: NTPv4, Client, length 48
IPv6 networking is configured using DHCP and as mentioned other services like DNS work just fine over both TCP and UDP, so I assume the routing is set up correctly.
Where's the catch?