ntp 服务器拒绝我的虚拟机,但网络看起来不错

ntp 服务器拒绝我的虚拟机,但网络看起来不错

最近我域中总有几台 SLES12.5 VM 出现 NTP 同步问题。所以我对此进行了一些研究。以下是详细信息--

  1. 我发现 1 台虚拟机经常出现 NTP 问题。因此,我通过每秒运行“ntpq -pn”来启动监控作业。昨天,我发现它再次与 NTP 服务器失去同步——

所有 ntp 服务器自 2022-07-22T05:16:34 起均无响应,并且 tcpdump 也证实了这一点 -- 从那一刻起 -- 没有从 ntp 服务器发送回该 VM 的数据包...

所以我用 ntpq 命令检查了一下——

vsa10027077:/tmp/eisen # ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*127.127.1.0     .LOCL.          10 l   18   64  377    0.000   +0.000   0.000
 147.204.9.202   162.159.200.1    4 u   5h 1024    0    2.168   -0.374   0.000
 147.204.9.203   162.159.200.123  4 u   5h 1024    0    2.411   +1.608   0.000
 147.204.9.204   162.159.200.1    4 u   5h 1024    0    1.917   -0.418   0.000

vsa10027077:/tmp/eisen # ntpq
ntpq> as
ind assid status  conf reach auth condition  last_event cnt
===========================================================
  1 26549  961a   yes   yes  none  sys.peer    sys_peer  1
  2 26550  8013   yes    no  none    reject unreachable  1
  3 26551  8013   yes    no  none    reject unreachable  1
  4 26552  8013   yes    no  none    reject unreachable  1
ntpq> rv 26550
associd=26550 status=8013 conf, sel_reject, 1 event, unreachable,
srcadr=147.204.9.202, srcport=123, dstadr=100.78.59.192, dstport=123,
leap=00, stratum=4, precision=-23, rootdelay=22.659, rootdisp=38.574,
refid=162.159.200.1,
reftime=e684ba76.20e3a34f  Fri, Jul 22 2022  5:56:06.128,
rec=e684bf98.7a92b5e4  Fri, Jul 22 2022  6:18:00.478, reach=000,
unreach=28, hmode=3, pmode=4, hpoll=10, ppoll=10, headway=44,
flash=1400 peer_dist, peer_unreach, keyid=0, offset=-0.374, delay=2.168,
dispersion=15937.500, jitter=0.000, xleave=0.071,
filtdelay=     0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00,
filtoffset=   +0.00   +0.00   +0.00   +0.00   +0.00   +0.00   +0.00   +0.00,
filtdisp=   16000.0 16000.0 16000.0 16000.0 16000.0 16000.0 16000.0 16000.0

所有闪存都是 1400 – 意味着 ntp 服务器 – 1000 – 无法访问或未选择 400 – 超出距离阈值

  1. 由于 ntpq 说 ntp 服务器与我的虚拟机的距离太长,所以我用 ping 和 traceroute 检查了一下——

ping 显示 ttl 仅为 252,延迟时间仅为 1.35ms,没有数据包丢失,并且 traceroute 显示从客户端到 ntp 服务器只有 4 跳 --

vsa10027077:/tmp/eisen # traceroute 147.204.9.202
traceroute to 147.204.9.202 (147.204.9.202), 30 hops max, 60 byte packets
 1  host-100-78-56-1.fra1.od.sap.biz (100.78.56.1)  0.332 ms  0.316 ms  0.309 ms
 2  130.214.162.65 (130.214.162.65)  0.829 ms  1.317 ms  1.047 ms
 3  10.46.210.132 (10.46.210.132)  1.014 ms  1.278 ms 10.46.210.131 (10.46.210.131)  1.166 ms
 4  10.46.210.129 (10.46.210.129)  3.102 ms * *
  1. 因此,我尝试在停止 ntpd 服务后通过“ntpdate”手动重置时间——偏移量看起来非常小——然后重新启动 ntpd 服务——但遗憾的是发现 ntp 服务器仍然拒绝该虚拟机——

    vsa10027077:/tmp/eisen#systemctl 停止 ntpd

    vsa10027077:/tmp/eisen#ntpdate 147.204.9.202

    7月22日 11:33:37 ntpdate[30877]: 调整时间服务器 147.204.9.202 偏移量 +0.000069 秒

    vsa10027077:/tmp/eisen#systemctl 启动 ntpd

  2. 然后我在 /etc/ntp.conf 中的每个 ntp 服务器行中添加“minpool 3 maxpoll 6”并重新启动 ntpd 服务,但仍然不起作用。

    我很困惑——ntp 服务器说我的虚拟机距离太长,所以拒绝它,但 ping 和 traceroute 都显示它们之间的跳数很小。是什么导致了这个问题?ntp 服务器如何确定与客户端的距离?如何修复它?请分享您的评论。提前感谢您的帮助。

更新 -

ntpd 的配置文件是——

vsa10027077:〜#cat /etc/ntp.conf

driftfile /var/lib/ntp/drift/ntp.drift
logfile   /var/log/ntp

server 127.127.1.0
fudge  127.127.1.0 stratum 10

server timehost1.global.cloud.sap 
server timehost2.global.cloud.sap 
server timehost3.global.cloud.sap 

# key configuration
keys /etc/ntp.keys
trustedkey 1
requestkey 1
controlkey 1

# by default act only as a basic NTP client
restrict default kod nomodify noquery notrap nopeer
restrict -6 default kod nomodify noquery notrap nopeer
restrict 127.0.0.1
restrict ::1
# allow NTP messages from the loopback address, useful for debugging
restrict localhost

### end of file

但是,由于最近两天 ntp 服务并没有出现该服务器无响应的问题,因此无法收集到问题发生时的“ntpq -c rv 0”的输出,下面是正常时间的输出——

vsa10027077:~ # ntpq -c rv 0
associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync,
version="ntpd [email protected] Mon Jun 21 18:17:38 UTC 2021 (1)",
processor="x86_64", system="Linux/4.12.14-122.124-default", leap=00,
stratum=5, precision=-24, rootdelay=26.314, rootdisp=51.471,
refid=147.204.9.204,
reftime=e689d98d.602a4dc4  Tue, Jul 26 2022  3:10:05.375,
clock=e689d9d4.bea84735  Tue, Jul 26 2022  3:11:16.744, peer=2989, tc=5,
mintc=3, offset=+0.212857, frequency=+2.033, sys_jitter=0.876471,
clk_jitter=0.843, clk_wander=0.063

请看一下。谢谢

更新于 2022-08-09——在 /etc/ntp.conf 中的所有 ntp 服务器行中添加了“minpolls 3 maxpolls 6”,然后重新启动 ntpd。仍然出现拒绝问题,但持续时间比以前短得多——以前是 30 多个小时,现在只有 3 个小时,主机将恢复正常。但是——仍然很困惑——我已将“最大轮询”设置为 6,这意味着最大轮询应该是 64 秒。但是当我检查 ntpq 时——它已经是 256...

vsa9973928:/tmp/eisen # cat /etc/ntp.conf

driftfile /var/lib/ntp/drift/ntp.drift
logfile   /var/log/ntp

server 127.127.1.0
fudge  127.127.1.0 stratum 10

server timehost1.global.cloud.sap minpoll 3 maxpoll 6
server timehost2.global.cloud.sap minpoll 3 maxpoll 6
server timehost3.global.cloud.sap minpoll 3 maxpoll 6

# key configuration
keys /etc/ntp.keys
trustedkey 1
requestkey 1
controlkey 1

# by default act only as a basic NTP client
restrict default kod nomodify noquery notrap nopeer
restrict -6 default kod nomodify noquery notrap nopeer
restrict 127.0.0.1
restrict ::1
# allow NTP messages from the loopback address, useful for debugging
restrict localhost

### end of file
vsa9973928:/tmp/eisen # ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 127.127.1.0     .LOCL.          10 l 220m   64    0    0.000   +0.000   0.000
+147.204.9.202   10.46.141.8      5 u   40  512  377    1.742   +0.128   1.060
+147.204.9.203   162.159.200.123  4 u  274  512  377    1.730   +1.539   2.245
*147.204.9.204   162.159.200.1    4 u  148  512  377    1.803   +0.585   0.900

什么问题导致轮询间隔超出 ntp.conf 中的限制?有人见过这种情况吗?

相关内容