NTP 설정
NTP 설정
리눅스 서버에서 시간 동기화를 이용하는 방법으로는 rdate 와 ntp 방식이 있다.
정확한 차이는 생략하고, 여기서는 ntp 방식을 이용하여 time server 를 운영하는 방법을 설명하도록 한다.
기본적으로, ntp 방식은 staum 이라는 계층구조를 가지는데, straum 0 은 GPS 나 세슘 원자 시계등 시간을 구하는 장비를 의미하며,
straum 1 은 GPS 나 세슘 원자시계등에서 직접 시간을 동기화하는 서브들을 의미한다. straum 2 부터는 계속 트리 구조로 내려가게 된다.
여기서 straum 을 설명하는 이유는, 무턱대고 무조건 straum 1 에 동기화를 한다면, 이 straum 1 서버들은 부하를 견디지 못할 것이고,
그렇다면 서비스를 포기하는 현상이 발생할 수 있게된다. 또한, 이렇게 사용하는 것은 ntp 설계 의미를 무시하는 일이기도 하다.
그래서, 보통 사용하는 환경은 straum 2 에서 동기화를 하고, 이 동기화를 받은 straum 3 서버에 나머지 같이 운영하는 서버들을 peer로 해서
동기화를 시키면 된다. ntp protocol 을 이용했을 경우, straum 1 ~ 15 까지의 편차가 micro seconds 이므로, 굳이 straum 1 이나 2 를 고집할 이유가 전혀 없다고 봐도 무방하다.
국내에서 운영중인 straum 2 서버는 다음과 같다.
* straum 2 list
ntp.ewha.net, ticktock.ewha.net, ntp1.epidc.co.kr, ntp2.epidc.co.kr, time.bora.net, time.korserve.net,
t2.korserve.net, rokkorclub.net, time.wonkwang.ac.kr, noc6-3.koren21.net
최신 목록은 http://time.ewha.net/domestic.shtml 에서 확인을 하도록 한다.
1. DOWNLOAD
#rpm -qa | grep ntp 명령으로 “ntp-버젼” 이 출력되지않으면
http://rpmfind.net 에서 “ntp” 로 검색해서 배포판에 해당하는 패키지를 설치한다.
ex> rpm -Uvh ntp-4.2.0.a.20040617-4.i386.rpm
동기화: #ntpdate -b -s time.kriss.re.kr
주의:
NTP는 UDP port 123 을 사용하는데, 이 포트가 방화벽 등으로 막혀있는 경우에는 -u 를 옵션을 사용해서
다른 포트를 사용하거나 IPTABLE을 사용중이면 OUTBOUNT UDP 123 포트를 열어준다.
#ntpdate -u time.kriss.re.kr
2. SERVER 설정
/etc/ntp.conf를 수정
#cat /etc/ntp/ntp.conf
restrict default nomodify notrap noquery
restrict 127.0.0.1
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
# straum 2 server list
server ntp.ewha.net
server ntp1.epidc.co.kr
server time.bora.net
server time.wonkwang.ac.kr
server time.korserve.net
server noc6-3.koren21.net
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
keys /etc/ntp/keys
/etc/ntp.conf와 driftfile 과 keys의 경우 배포본마다 위치가 다를 수 있으니 확인을 하도록 한다.
restric 설정은 peer 들이 본 서버로 sync 하는 것에 대한 제한을 한다.
restrict default nomodify notrap noquery // 이 설정은 기본으로 모든 권한을 주지 않음을 의미한다.
restrict 127.0.0.1 // 127.0.0.1 즉, 서버 자신에서는 모든 권한을 가진다.
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
// 192.168.0.0 ~ 192.168.0.255 c class 에서는 질의를 할 수 있는 권한을 가진다.
즉, 위의 2 라인은 항상 기본으로 들어가는 설정이며, peer 를 거느릴 서버에서는 (즉
A 의 입장에서는) 하위 peer 들의 질의를 받을수 있도록 3 번째 라인과 같이 restrict 설정을 해 주어야 한다.
설정을 마쳤다면, service ntpd restart 명령으로 ntpd 를 시작 하고,
ntpq 명령을 이용하여 sync 를 잘 하고 있는지 확인을 한다.
ex>
# service ntpd start
ntpd (을)를 시작합니다: [ OK ]
# service ntpd restart
ntpd를 종료하고 있습니다: [ OK ]
ntpd (을)를 시작합니다: [ OK ]
# chkconfig –list ntpd
ntpd 0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
# chkconfig ntpd on
# chkconfig –list ntpd
ntpd 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
211.189.50.33 220.73.142.71 2 u 28 64 3 23.628 -4.769 1.169
zero.bora.net 204.34.198.40 2 u 28 64 3 24.965 -6.498 0.384
ntp1.epidc.co.k 192.168.17.8 2 u 30 64 3 22.782 -4.600 0.843
ntp2.epidc.co.k 192.168.17.9 2 u 26 64 3 22.793 -3.228 1.973
timency.kriss.r .▒+▒. 1 u 32 64 3 27.165 26.340 2.631
LOCAL(0) LOCAL(0) 10 l 30 64 3 0.000 0.000 0.002
ntpd 를 막 재시작 하고 ntpq 를 실행한 경우, 5 분 정도를 기다려야 sync 가 진행이 된다는 것을 명심한다.
remote 는 sync 를 하는 straum 2 서버 주소이다.
refid 는 각 straum 2 서버가 현재 sync 를 하고 있는 straum 1 서버를 보여준다.
st 는 각 라인의 remote 들의 straum 을 나타낸다.
그 외의 항목들은 ntp 가 알아서 하는 것들이니 신경쓰지 말자.
가장 중요한 것은 remote 필드의 주소 앞에 붙어 있는 기호들이다.
각 기호의 의미는 다음과 같다.
* 는 현재 sync 를 받고 있음을 의미한다.
+ ntp 알고리즘에 의해 접속은 가능하지만 sync 를 하고 있지는 않음을 의미
– ntp 알고리즘에 의해 접속은 가능하지만 sync 가능 리스트에서 제외
blank 는 접속이 불가능함을 의미한다.
이외에 .(dot) 또는 # 등의 기호가 나올 수 있지만, 그냥 여기서는 무시. ^^;;
마지막으로 st 가 16 이 나올 경우는, 해당 서버에 접속을 할 수 없음이다.
3. PEER 설정
다음은, B와 C를 straum 3 로 설정한 A로 부터 sync를 받도록 설정을 한다. (A도메인은 a.com 이라고 가정)
#cat /etc/ntp/ntp.conf
restrict default nomodify notrap noquery
restrict 127.0.0.1
# straum 3 server list
server a.com
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
keys /etc/ntp/keys
peer 설정에서는 server를 straum 3 으로 지정한 서버 A 를 지정한다. 그 외에는 틀린 것이 없다.
역시 service ntpd restart 로 재시작을 한 후에 위에서 처럼 ntpq 로 확인을 한다.
#ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*a.com 211.189.50.33 2 u 62 64 17 0.822 6.191 0.052