当前位置: 首页 > news >正文

chronyd配置了local的NTP server之后, NTP报文中出现public IP的问题

描述

客户在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 Dev
==============================================================================
10.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

[root@localhost ~]# 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

http://www.lryc.cn/news/470596.html

相关文章:

  • docker常用命令整理
  • 将CSDN博客转换为PDF的Python Web应用开发--Flask实战
  • AIGC学习笔记(3)——AI大模型开发工程师
  • Windows server 2003服务器的安装
  • HTML作业
  • MYSQL-SQL-04-DCL(Data Control Language,数据控制语言)
  • 多线程进阶——线程池的实现
  • C++网络编程之C/S模型
  • 目标检测:YOLOv11(Ultralytics)环境配置,适合0基础纯小白,超详细
  • 面试域——岗位职责以及工作流程
  • C#文件内容检索的功能
  • Redis-05 Redis发布订阅
  • 【读书笔记·VLSI电路设计方法解密】问题27:什么是可制造性设计
  • 数据结构:堆的应用
  • Spring Boot 实现文件分片上传和下载
  • 夹逼准则求数列极限(复习总结)
  • 【python】OpenCV—WaterShed Algorithm(1)
  • 查找与排序-插入排序
  • JAVA基础:多线程 (学习笔记)
  • 盲盒小程序/APP系统,市场发展下的新机遇
  • Unity3D LayoutGroup组件详解
  • [NeetCode 150] Foreign Dictionary
  • 小新学习K8s第一天之K8s基础概念
  • 如何用终端批量修改一个文件夹里面所有图片的后缀名?
  • 关于AI网络架构的文章
  • 【ChatGPT】在多轮对话中引导 ChatGPT 保持一致性
  • 【Chapter 7】因果推断中的机器学习:从T-学习器到双重稳健估计
  • vim的使用方法
  • OPPO携手比亚迪共同探索手机与汽车互融新时代
  • Apache Linkis:重新定义计算中间件