• NTP 설치
CentOS

1
[user@vm1 ~]$ sudo yum install -y ntp
cs

Ubuntu

1
[user@vm1 ~]$ sudo apt-get install -y ntp
cs


  • Local NTP 서버 설정
NTP 서버로 사용할 머신(예시에서는 vm1)에서 NTP의 설정 파일(/etc/ntp.conf)을 수정한다.
/etc/ntp.conf 파일은 root 권한(sudo)이 있어야 수정할 수 있다.

1
[user@vm1 ~]$ sudo vi /etc/ntp.conf
cs

/etc/ntp.conf 파일을 열면 중간에 아래와 같이 server로 시작하는 문장이 있을 것이다.

21
22
23
24
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
cs

기존의 문장들은 주석 처리(문장 앞에 #을 붙인다)하고, 아래와 같이 127.127.1.0을 추가한다.

21
22
23
24
25
#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
server 127.127.1.0
cs


설정을 완료했으면 NTP 데몬을 재시작한다.


1
[user@vm1 ~]$ sudo service ntpd start
cs


부팅시 자동으로 NTP 데몬을 시작하고 싶다면 다음과 같이 등록한다.


1
[user@vm1 ~]$ sudo chkconfig ntpd on
cs



  • NTP 시간 동기화

Local NTP 서버를 구동하였으면, 이제 다른 서버들(예시에서는 vm2)은 NTP 서버를 통해 시간을 동기화하도록 한다.

각 서버에서 다음과 같은 명령어로 동기화를 요청한다.


1
[user@vm2 ~]$ sudo ntpdate -b vm1
cs


NTP를 사용하여 시간을 동기화할 때, 약 10분 정도를 기다려야 정확한 동기화가 된다고 한다.

하지만 실제로 동기화 작업을 해보니 위의 명령어를 실행하자마자 거의 정확한 동기화가 됨을 확인하였다.


위의 방법은 Local NTP 서버로 한 번만 동기화 작업을 요청하는데, 이는 시간이 지날 경우 동기화가 조금씩 풀리는 문제가 나타날 수 있다.

이 때는 두 가지 방법으로 해결할 수 있다.


첫 번째 방법은 서버와 마찬가지로 /etc/ntp.conf 파일을 수정하고 NTP 데몬을 부팅 레벨에 등록함으로써, 부팅 때마다 동기화되도록 하는 것이다.

이 방법은 재부팅때에만 동기화 작업을 하므로, 재부팅을 거의 하지 않는 서버에서는 해결 방법이 아니다.


두 번째 방법은 crontab에 등록하는 것이다.

crontab은 특정 기간마다 명령어를 자동으로 실행해준다.

이 방법은 주기적으로 동기화 작업을 하지만, 동기화에 약 10분의 대기 시간이 있으므로 빈번한 동기화 시에는 오히려 정확한 동기화가 어렵다.

(crontab에 5분마다 동기화를 했었는데, 너무 짧은 시간이라 동기화가 전혀 되지 않은 문제가 있었다.)




  • Troubleshooting

NTP는 기본적으로 UDP 123 포트를 사용한다고 한다.

따라서 방화벽을 끄거나 방화벽에서 123 포트를 개방하지 않으면, 동기화 작업을 수행하지 못한다.




  • 참고 사이트

RHEL, CentOS에서 ntp 서버 설정하기(사설망 내부 서버들의 시간 동기화)

[CentOS 7 / RHEL 7.2]NTP를 이용한 서버 시간 동기화 


+ Recent posts