福州制作网站提供商,惠州热门的网站,wordpress 下载统计,塔城建设局网站描述
客户在Rocky Linux 9.4的VM上配了一个local的NTP server(IP: 10.64.1.76)。 配置完成后, 时钟可以同步#xff0c;但一段时间后客户的firewall收到告警, 拒绝了大量目标端口为123的请求, 且这些请求的目的IP并不是客户指定的NTP server的IP#xff0c;客户要求解释原因…描述
客户在Rocky Linux 9.4的VM上配了一个local的NTP server(IP: 10.64.1.76)。 配置完成后, 时钟可以同步但一段时间后客户的firewall收到告警, 拒绝了大量目标端口为123的请求, 且这些请求的目的IP并不是客户指定的NTP server的IP客户要求解释原因并给出解决方案。
定位
先通过chronyc sourcestats命令查看当前连接的NTP服务器
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev10.64.1.76 1 0 0 0.000 2000.000 15us 4000ms
117.80.112.205 0 0 0 0.000 2000.000 0ns 4000ms
202.112.29.82 0 0 0 0.000 2000.000 0ns 4000ms
tock.ntp.infomaniak.ch 0 0 0 0.000 2000.000 0ns 4000ms
2001:da8:9000::130 2 0 2 0.000 2000.000 -1254us 4000ms
ntp1.flashdance.cx 0 0 0 0.000 2000.000 0ns 4000ms
tock.ntp.infomaniak.ch 0 0 0 0.000 2000.000 0ns 4000ms
2001:470:1d:281::123 1 0 0 0.000 2000.000 -12ms 4000ms
time.cloudflare.com 1 0 0 0.000 2000.000 -2445us 4000ms结果显示, 除了客户指定的NTP server(10.64.1.76), chronyd的确连接了其他的server, 通过tcpdump抓包也能看出NTP报文中出现了public IP
[rootlocalhost ~]# tcpdump -i eth0 dst port 123 -n
07:14:03.968036 IP6 2620:101:4002:800b:456f:575f:396d:fe0d.30612 2001:da8:9000::130.ntp: NTPv4, Client, length 48
07:14:05.261407 IP6 2620:101:4002:800b:456f:575f:396d:fe0d.34042 2606:4700:f1::123.ntp: NTPv4, Client, length 48
07:14:05.850132 IP 10.206.216.92.63453 10.64.1.76.ntp: NTPv4, Client, length 48
07:14:06.383730 IP6 2620:101:4002:800b:456f:575f:396d:fe0d.39439 2001:470:1d:281::123.ntp: NTPv4, Client, length 48
07:15:08.229127 IP6 2620:101:4002:800b:456f:575f:396d:fe0d.57634 2001:da8:9000::130.ntp: NTPv4, Client, length 48
07:15:10.499490 IP6 2620:101:4002:800b:456f:575f:396d:fe0d.52853 2606:4700:f1::123.ntp: NTPv4, Client, length 48检查配置文件/etc/chrony.conf, 发现同时配置了server和pool, 如下:
server 10.64.1.76 iburst
pool 2.rocky.pool.ntp.org iburst查阅资料发现当同时配了server和pool时chrony会同时向server以及NTP pool中的server发送请求根据一定的算法和策略选择最准确可靠的源来同步系统时钟。 默认的2.rocky.pool.ntp.org是一个public的NTP pool所以客户防火墙deny了这些public IP.
想搞清楚NTP选择source的策略需要下一份源码调试后面有时间再来研究
# chronyd --version 确认chronyd版本
chronyd (chrony) version 4.3
源码: https://git.tuxfamily.org/chrony/chrony.git/解决方法
让客户放开这些public IP或者123端口(这种做法显然不安全)或者禁用pool, 修改/etc/chrony.conf, 删掉pool 2.rocky.pool.ntp.org iburst, 再systemctl restart chronyd重启chronyd. (这种方法会降低时间同步的可靠性如果local server不工作时间同步就会失败)
参考
https://chrony-project.org/index.html