/ rhce-new

RHCE : NTP – Synchronize time using other NTP peers.

rhce-new redhat-new NTP time synchronize chronyd timedatectl command /etc/ntp.conf ntpq command ntpstat command chronyc command /etc/chrony.conf ntpdate command
https://4am.kr/rhce-ntp-synchronize-time-using-other-ntp-peers/

RHCE : NTP – 기타 NTP peer를 사용하여 시간 동기화

RHCSA : 시스템 배포, 구성 및 유지 관리 - 시간 서비스 사용이 가능하도록 시스템 구성

RHCE 및 RHCSA 주제입니다. 아래 참조된 사이트를 번역 및 내용 추가하였습니다.

시작하기 전에

NTP(Network Time Protocol)은 서버들의 시간의 동기화를 유지해주는 프로토콜이다. 하나 또는 여러 대의 마스터 서버가 클라이언트 서버에 시간을 제공해준다. 그들 스스로도 다른 클라이언트 서버들에 본인의 시간을 제공할 수가 있다(층운 같은 개념).

이 튜토리얼은 클라이언트 쪽 설정이지만, 서버쪽 설정도 크게 다르지는 않다.

두가지의 주요 패키지들이 클라이언트 쪽 설정을 위해 RHEL 7에서 사용된다.

  • ntp: 기본 패키지로서, RHEL 6, RHEL 5 버전부터 존재했다.
  • chrony: 새로운 솔루션으로서 휴대용 PC나 네트워크 문제들을 가진 서버들에 더 적합하다(시간 동기화가 빠르다). chronyRHEL 7의 기본 패키지이다.

사전 준비사항

1. 무엇보다도, 정확한 타임존을 정의하는 것이 중요하다. 현재의 설정을 확인하려면 다음과 같이 입력한다.
[root@server2 ~]# timedatectl
      Local time: 일 2016-05-01 14:23:43 KST
  Universal time: 일 2016-05-01 05:23:43 UTC
        RTC time: 일 2016-05-01 05:23:43
        Timezone: Asia/Seoul (KST, +0900)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
[root@server2 ~]# 
2. 사용가능한 모든 타임존들의 목록을 확인하려면 다음과 같이 입력한다.
[root@server2 ~]# timedatectl list-timezones 
...
Africa/Cairo
Africa/Casablanca
Africa/Ceuta
Africa/Conakry
Africa/Dakar
...
America/Montserrat
America/Nassau
America/New_York
...
Antarctica/Troll
Antarctica/Vostok
Arctic/Longyearbyen
...
Asia/Riyadh
Asia/Sakhalin
Asia/Samarkand
Asia/Seoul
Asia/Shanghai
Asia/Singapore
...
Atlantic/South_Georgia
Atlantic/St_Helena
Atlantic/Stanley
Australia/Melbourne
Australia/Perth
Australia/Sydney
...
Europe/Paris
Europe/Podgorica
Europe/Prague
Europe/Riga
Europe/Rome
...
3. 마지막으로, 특정 타임존(여기서는 Asia/Seoul)으로 설정하려면 다음과 같이 입력한다.
[root@server2 ~]# timedatectl set-timezone Asia/Seoul
[root@server2 ~]# 
4. 설정을 확인하려면 다시 1번과 같이 timedatectl을 입력하여 확인하면 된다.

NTP 패키지

1. NTP 패지지를 설치하려면 다음과 같이 입력한다.
[root@server2 ~]# yum install -y ntp
Loaded plugins: fastestmirror, langpacks
RHELREPO                                                        | 3.6 kB  00:00:00     
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package ntp.x86_64 0:4.2.6p5-18.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=======================================================================================
 Package      Arch            Version                          Repository         Size
=======================================================================================
Installing:
 ntp          x86_64          4.2.6p5-18.el7.centos            RHELREPO          539 k

Transaction Summary
=======================================================================================
Install  1 Package

Total download size: 539 k
Installed size: 1.4 M
Downloading packages:
ntp-4.2.6p5-18.el7.centos.x86_64.rpm                            | 539 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : ntp-4.2.6p5-18.el7.centos.x86_64                                    1/1 
  Verifying  : ntp-4.2.6p5-18.el7.centos.x86_64                                    1/1 

Installed:
  ntp.x86_64 0:4.2.6p5-18.el7.centos                                                   

Complete!
[root@server2 ~]# 
3. NTP서비스를 부팅시 활성화하고, 시작한다.
[root@server2 ~]# systemctl enable ntpd && systemctl start ntpd
ln -s '/usr/lib/systemd/system/ntpd.service' '/etc/systemd/system/multi-user.target.wants/ntpd.service'
[root@server2 ~]# 
4. NTP설정은 /etc/ntp.conf파일에 있다.
[root@server2 ~]# vim /etc/ntp.conf
# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).

driftfile /var/lib/ntp/drift

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default nomodify notrap nopeer noquery

# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict ::1

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
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

#broadcast 192.168.1.255 autokey        # broadcast server
#broadcastclient                        # broadcast client
#broadcast 224.0.1.1 autokey            # multicast server
#multicastclient 224.0.1.1              # multicast client
#manycastserver 239.255.254.254         # manycast server
#manycastclient 239.255.254.254 autokey # manycast client

# Enable public key cryptography.
#crypto

includefile /etc/ntp/crypto/pw

# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography. 
keys /etc/ntp/keys

# Specify the key identifiers which are trusted.
#trustedkey 4 8 42

"/etc/ntp.conf" 58L, 2000C                                           1,1        꼭대기
[root@server2 ~]# 

노트: 기본적인 설정 목적이라면, 기본적으로 지정된 마스터 타임 서버셋을 변경하기 위한 서버 디렉티브만이 필요할 것이다.

5. 시간 동기화 프로세스에 대한 정보를 얻고 싶다면 다음과 같이 입력한다.
[root@server2 ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*dadns.cdnetwork 131.107.13.100   2 u   31   64   37    1.983    6.299   5.140
+114.70.64.65    128.138.141.172  2 u   26   64   37    3.877    9.325   2.800
+send.mx.cdnetwo 131.107.13.100   2 u   27   64   37    2.575    8.661   2.770
[root@server2 ~]# 
6. 다른 방법으로 기본 리포트를 얻고 싶다면 다음과 같이 입력한다.
[root@server2 ~]# ntpstat
synchronised to NTP server (211.233.84.186) at stratum 3 
   time correct to within 322 ms
   polling server every 64 s
[root@server2 ~]# 
7. 서버와 빠르게 동기화하고 싶다면 다음과 같이 입력한다.
[root@server2 ~]# systemctl stop ntpd
[root@server2 ~]# ntpdate pool.ntp.org
 1 May 14:41:07 ntpdate[49019]: adjust time server 211.233.84.186 offset 0.003415 sec
[root@server2 ~]# systemctl start ntpd
[root@server2 ~]# 

Chrony 패키지

대안으로서, 모바일과 가상 시스템에서 빠른 동기화가 되는 새로운 Chrony 서비스를 설치할 수 있다.

1. Chrony 서비스를 설치한다.
[root@server2 ~]# yum install -y chrony
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Package chrony-1.29.1-1.el7.centos.x86_64 already installed and latest version
Nothing to do
[root@server2 ~]# 
2. Chrony서비스를 부팅시에 활성화하고, 시작한다.
[root@server2 ~]# systemctl enable chronyd && systemctl start chronyd
[root@server2 ~]# 
3. Chrony설정은 /etc/chrony.conf파일에서 확인할 수 있다.
[root@server2 ~]# vim /etc/chrony.conf 
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
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

# Ignore stratum in source selection.
stratumweight 0

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

# Enable kernel RTC synchronization.
rtcsync

# In first three updates step the system clock instead of slew
# if the adjustment is larger than 10 seconds.
makestep 10 3

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

# Listen for commands only on localhost.
"/etc/chrony.conf" 46L, 1165C                                        1,1        꼭대기

노트: 기본적인 설정 목적이라면, 기본적으로 지정된 마스터 타임 서버셋을 변경하기 위한 서버 디렉티브만이 필요할 것이다.

4. 주요 시간 기준에 대한 정보를 확인하고 싶다면, 다음과 같이 입력한다.
[root@server2 ~]# chronyc tracking
Reference ID    : 114.207.245.166 (114.207.245.166)
Stratum         : 3
Ref time (UTC)  : Sun May  1 05:50:37 2016
System time     : 0.000651365 seconds slow of NTP time
Last offset     : 0.000668352 seconds
RMS offset      : 0.003892536 seconds
Frequency       : 8.856 ppm slow
Residual freq   : -5.824 ppm
Skew            : 0.599 ppm
Root delay      : 0.037722 seconds
Root dispersion : 0.023688 seconds
Update interval : 64.3 seconds
Leap status     : Normal
[root@server2 ~]# 
5. ntpq 커맨드와 같은 정보를 얻고 싶다면, 다음과 같이 입력한다.
root@server2 ~]# chronyc sources -v
210 Number of sources = 3

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||                                                /   xxxx = adjusted offset,
||         Log2(Polling interval) -.             |    yyyy = measured offset,
||                                  \            |    zzzz = estimated error.
||                                   |           |                         
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ send.mx.cdnetworks.com        2   6   377    39  -5319us[-5909us] +/-  105ms
^+ dadns.cdnetworks.co.kr        2   6   377    36  -8316us[-8906us] +/-  129ms
^* 114.207.245.166               2   6   377    36  +4268us[+3678us] +/-   46ms
[root@server2 ~]# chronyc sourcestats -v
210 Number of sources = 3
                             .- Number of sample points in measurement set.
                            /    .- Number of residual runs with same sign.
                           |    /    .- Length of measurement set (time).
                           |   |    /      .- Est. clock freq error (ppm).
                           |   |   |      /           .- Est. error in freq.
                           |   |   |     |           /         .- Est. offset.
                           |   |   |     |          |          |   On the -.
                           |   |   |     |          |          |   samples. \
                           |   |   |     |          |          |             |
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
send.mx.cdnetworks.com      9   5   328      2.425      9.043  -4616us   730us
dadns.cdnetworks.co.kr      9   6   330     -8.474     14.117  -8919us   643us
114.207.245.166             9   6   331     -0.979     14.835  +5142us   909us
[root@server2 ~]# 
6. 서버와 빠르게 동기화하고 싶다면 다음과 같이 입력한다.
[root@server2 ~]# ntpdate pool.ntp.org
 1 May 14:54:56 ntpdate[49207]: adjust time server 211.233.84.186 offset 0.004529 sec
[root@server2 ~]# 

노트: Chrony서비스에서는 NTP서비스처럼 서버의 동기화를 위해 서비스를 중지할 필요가 없다.

추가 자료

가상화는 문제를 발생시킬 수 있다(이 스레드를 참조할 것).