我一直在尝试为 IPv4 和 IPv6 设置 NTP 服务器。 IPv4 工作正常,IPv6 上配置的其他 TCP 和 UDP 服务也是如此,但我无法让我的 NTP 服务器响应 IPv6 查询,我不明白为什么。
NTP服务器是ntpsec 1.2.2(随Ubuntu 24.04一起提供),设置:
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 显示它正在侦听 IPv6 通配符:
# 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(从路由器后面)显示数据传输:
# 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 显示收到数据,但没有响应:
# 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 网络是使用 DHCP 配置的,正如前面提到的,DNS 等其他服务可以在 TCP 和 UDP 上正常工作,因此我假设路由设置正确。
问题在哪里?