Linux & Development

Linux chrony client 설정

DaehanCNI 2024. 4. 18. 09:00

 Rocky Linux 8.x / CentOS 8.x 부터 NTP (rdate, ntpq)을 지원하지 않습니다. 서버와의 시간 동기화를 위하여 chronyd 서비스 사용을 권장하고 있습니다. chronyd 서비스는 낮은 CPU 점유율과 작은 메모리 사용량을 장점으로 가지고 있으며 Autokey 프로토콜로 패킷 인증을 진행하는 시스템의 경우, chronyd 서비스는 지원하지 않으므로 참고하기 바랍니다. (Autokey 프로토콜은 보안 문제로 사용하지 않는다.)  chronyd 서비스는 NTP와 달리 기본 설정에서 접근을 설정하지 않으면 UDP 123 포트를 리슨(Listen)하지 않습니다. 

 본 내용은 클라이언트 설정에 대하여 가이드를 제공한다.

 

 설정에 있어 "pool""server" , "pool"NTP pool에 등록되어 있는 타임 서버에 동기화 하는 방식이고 "server"는 원하는 타임 서버를 직접 접속하는 방식입니다. 어느 것을 사용해도 무방하나 pool을 사용하기를 권장하며 단일 서버일 경우 server을 사용하길 권장합니다. 

 

Parameter Description
maxsources pool 에서 사용할 수 있는 최대 리소스 수 (기본값: 4)
leapsecmode slew Clocking 프로세스 비활성화
maxslewrate 1000 slew 동기화 속도를 1,000ppm
smoothtime 400 0.01 offline 상황에서도 일정 시간 동기화 진행.

 

1. chrony 설치

[root@localhost ~]# dnf install chrony

 

2. chrony.conf 설정

[root@localhost ~]# vi /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
pool 2.rocky.pool.ntp.org iburst

# for ntp poll
pool ntp.kifarunix-demo.com iburst maxsources 2

# for server
server 1.255.115.61 ibrust
server 1.255.113.61 ibrust

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2

# Allow NTP client access from local network.
#allow 192.168.0.0/16

# Serve time even if not synchronized to a time source.
#local stratum 10

# Specify file containing keys for NTP authentication.
keyfile /etc/chrony.keys

# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC

# for options
leapsecmode slew
maxslewrate 1000
smoothtime 400 0.001 leaponly

# Specify directory for log files.
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking

 

 

3. chronyd service 재 시작

[root@localhost ~]# systemctl restart chronyd.service
[root@localhost ~]# timedatectl 
               Local time: Tue 2023-06-13 15:47:59 KST
           Universal time: Tue 2023-06-13 06:47:59 UTC
                 RTC time: Tue 2023-06-13 06:47:58
                Time zone: Asia/Seoul (KST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
[root@localhost ~]# chronyc -a makestep
200 OK

 

4. chronyd 동기화 확인

[root@localhost ~]# chronyc tracking
Reference ID    : 79AE8E52 (121.174.142.82)
Stratum         : 4
Ref time (UTC)  : Tue Jun 13 06:48:00 2023
System time     : 0.000000000 seconds slow of NTP time
Last offset     : -0.001402330 seconds
RMS offset      : 0.001402330 seconds
Frequency       : 0.000 ppm slow
Residual freq   : +10.394 ppm
Skew            : 1000000.000 ppm
Root delay      : 0.016841978 seconds
Root dispersion : 20.239242554 seconds
Update interval : 2.0 seconds
Leap status     : Normal
[root@localhost ~]# chronyc sources -v

 

별외) Timezone 설정

[root@localhost ~]# timedatectl set-timezone "Asia/Seoul"