NTPD로 NTP 설정하기
2021. 2. 20. 16:27ㆍ✨ Linux
Overview
2021/02/19 - [Linux] - NTP 에서 NTP에 대한 전반적인 개념을 살펴보았다.
이번에는 ntpd 패키지로 시간 동기화를 하는 방법을 알아보도록 한다.
1. chronyd 데몬 사용 중지
ntpd를 사용하기 위해서는 chronyd가 중지되어 있어야 한다.
[centos@test ~]$ sudo systemctl stop chronyd
[centos@test ~]$ sudo systemctl disable chronyd
Removed symlink /etc/systemd/system/multi-user.target.wants/chronyd.service.
[centos@test ~]$ sudo systemctl status chronyd
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:chronyd(8)
man:chrony.conf(5)
2. ntp 데몬 설치
[centos@test ~]$ sudo yum install ntp
[centos@test ~]$ sudo systemctl enable ntpd
3. ntp.conf 설정
vi /etc/ntp.conf를 하여 ntp pool 등을 원하는 대로 지정할 수 있다.
세부 설정 방법은 CHAPTER 19. CONFIGURING NTP USING NTPD에서 확인 한다.
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.kr.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
✅ 이때 다수의 서버를 등록하고 싶으면 0, 1, 2 등의 숫자를 붙여 나열할 수 있다. 그러면 해당 서버들에 랜덤으로 접속하여 시간 정보를 가져오게 된다. |
알고 가면 좋은 세부 옵션은 다음과 같다.
- burst
- time offset 통계치의 정확성을 올리기 위해 burst 옵션을 사용할 수 있다.
- burst 옵션을 사용하면 해당 서버로부터 데이터를 polling(시간 정보 가져오는 것) 할때마다 8개의 패킷을 보낸다. default는 1개의 패킷을 보냄.
- 단, public ntp 서버에는 해당 옵션을 사용하면 안된다!
- iburst
- ntp 서버와의 동기화 되는 시간을 최소화 하기 위해 해당 옵션을 사용한다.
- 해당 ntp 서버가 unreachable 상태이면, 8개의 패킷을 보낸다. default는 1개의 패킷을 보냄.
- 패킷은 2초 간격으로 보내지지만, 첫번째와 두번째 패킷 사이의 시간은 calldelay 명령어로 조정할 수 있다.
- minpoll / maxpoll
- default poll interval을 해당 옵션으로 수정할 수 있다.
- 실제로 적용하는 시간은 2^value 값이다.
- 참고로 default pool interval은 다음과 같다
- minpoll : 6 (2^6 = 64) -> 64초 마다 polling
- maxpoll : 10 (2^10 = 1024) -> 1024초 마다 polling
- 3 to 17의 값을 설정할 수 있고, maxpoll 값이 낮을 수록 정확성 또한 높아진다!
- prefer
- 좀 더 우선 순위에 둘 서버를 지정한다.
4. NTP 데몬 활성화 하여 RTC 업데이트 하기
서버의 system clock은 RTC를 읽어 온다. 따라서 ntpd 데몬을 활성화하여 RTC가 ntp와 항상 동기화 되도록 한다.
[centos@test ~]$ sudo yum start ntp
[centos@test ~]$ sudo systemctl enable ntpd
[centos@test ~]$ sudo systemctl status ntpd
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2021-02-21 05:52:01 UTC; 32s ago
Process: 1416 ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 1417 (ntpd)
CGroup: /system.slice/ntpd.service
└─1417 /usr/sbin/ntpd -u ntp:ntp -g
5. 동기화 확인
[centos@test ~]$ ntptime
ntp_gettime() returns code 0 (OK)
time e3dc766f.7de00cec Sun, Feb 21 2021 6:04:31.491, (.491700707),
maximum error 1355521 us, estimated error 77 us, TAI offset 0
ntp_adjtime() returns code 0 (OK)
modes 0x0 (),
offset -12.033 us, frequency -0.001 ppm, interval 1 s,
maximum error 1355521 us, estimated error 77 us,
status 0x2001 (PLL,NANO),
time constant 6, precision 0.001 us, tolerance 500 ppm,
[centos@test ~]$ ntptime | grep status
status 0x2001 (PLL,NANO),
동기화가 정상적으로 이뤄졌는지는 status 항목으로 확인 한다.
- 동기화 안된 경우 unsync 표시가 나타남
- hardware clock 이 system clock에 동기화 된 경우 : status 0x2001 (PLL,NANO)
- hardware clock이 system clock에 동기화 되지 않은 경우 : status 0x41 (PLL,UNSYNC)
ntpstat 명령어로도 확인할 수 있다.
[centos@test ~]$ ntpstat
synchronised to NTP server (ip) at stratum 3
time correct to within 43 ms
polling server every 64 s
6. 상세 확인
[centos@test ~]$ ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*send.mx.cdnetwo 125.185.190.74 2 u 47 64 377 1.294 0.021 7.367
+time2.isu.net.s 209.51.161.238 3 u 52 64 377 353.503 -2.287 7.221
+ntp.hkg10.hk.le 130.133.1.10 2 u 125 64 136 181.077 -33.374 3.723
- remote : 동기화 중인 ntp server
- 동기화 중이면 * / secondary ntp 서버는 +
- refid : ntp 서버가 바라보는 ip
- st : remote stratum (GPS의 경우 stratum 0)
- t : 시간 받아보는 방식 (uniquest, multicast, broadcast) 등
더 공부해야 할 것
😀 리눅스에서 "burst" 자체가 가지는 기술적인 의미가 있는거 같은데 아직 정확하게 모르겠다. |
참고자료
- NTP Host Configuration using chronyd or ntpd
- ntp.conf(5) - Linux man page
- CHAPTER 19. CONFIGURING NTP USING NTPD
- NTP Server: Free Public Internet Time Servers
- Other fields in ntpq -p command output
- Network time protocol (NTP): definition and functionality
'✨ Linux' 카테고리의 다른 글
사용자 계정 정보 - /etc/passwd , /etc/shadow (0) | 2021.08.26 |
---|---|
Systemd로 서비스 관리하기 (0) | 2021.08.13 |
iptables 다뤄보기 (0) | 2021.03.02 |
SUDO / SU / Wheel Group (0) | 2021.02.26 |
NTP (0) | 2021.02.19 |