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

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.