작은숲:위키노트/NTP

큰숲백과, 나무를 보지 말고 큰 숲을 보라.

NTP(Network Time Protocol)는 네트워크를 통해 시간을 맞출 수 있는 통신 규약이다. UDP 123번 포트를 사용하고 있으며 대부분의 작은숲:위키노트/리눅스 배포판에서 패키지로 지원한다. 서버에 ntpd를 구동하면 설정한 상위 NTP 서버와 통신해 서버의 시간을 1/1000초 단위까지 맞출 수 있다. 표준 시각은 세슘 원자 시계(Cesium-Beam Frequency Standards) 등으로 구한다. 전세계 표준 시각은 미 해군 천문대(USNO)에서 관리하고, 대한민국 표준시(KST, Korea Stand Time)는 대전에 있는 한국표준과학연구원 시간주파수연구실에서 관리한다. 이런 기관들에서 시간 정보를 제공 받아 네트워크를 통해 다른 컴퓨터의 시간을 맞출 수 있도록 해주는 서버를 타임 서버(Time server)라고 한다. 국내에 운용 중인 공용 타임 서버는 다음과 같다.

  • kr.pool.ntp.org
  • time.ewha.or.kr
  • ntp.kr.cdnetworks.com
  • time1.daum.net
  • time2.daum.net

아래 서버들은 이전에 많이 사용했던 타임 서버인데, 최근에는 사용할 수 없거나 시간 차이가 많이 난다고 하니 이전에 아래 서버들로 설정했다면 수정하는 것이 좋다.

  • time.bora.net
  • time.nuri.net
  • ntp1.sjtel.net

리눅스에서 NTP 설치와 설정

레드햇 계열 리눅스에서는 Yum으로 설치할 수 있다.

# yum -y install ntp

설치가 끝나면 /etc/ntpd.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
server kr.pool.ntp.org
server time1.daum.net
server time2.daum.net
server time.ewha.or.kr

설정 파일의 수정이 끝나면 데몬을 기동하고, 서버 부트할 때 데몬이 실행되도록 등록한다.

# service ntpd start
Starting ntpd:                                             [  OK  ]
# chkconfig ntpd on
# chkconfig --list | grep ntpd
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

ntpq 명령으로 타임 서버에서 시간을 제대로 가져오는지 확인할 수 있다.

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+mail.funix.net  211.233.40.78    3 u   14  128  377    2.434    2.390   0.583
-211.233.78.116  212.26.18.43     3 u   16  128  377    1.130    6.869   1.066
+110.45.212.249  118.189.211.186  2 u   14  128  377    1.336   -2.278   0.450
*114.207.245.166 141.223.182.106  2 u   74  128  377    2.806    0.128   0.570
  • remote – 시간 정보를 가져오는 타임 서버
    • *remote 앞에 붙어있는 * 표시는 현재 시간 정보를 가져오고 있는 서버를 나타낸다.
    • + – 시간 정보를 가져올 수 있는 서버 (대상 서버 목록에 포함된 서버)
    • # – 시간 정보를 가져올 수 있지만, 거리가 최대값을 넘는 서버
    • - – 대상 서버 목록에서 제외된 서버
    • 비어 있는 경우 – 접속할 수 없는 서버
  • refid – 대상 서버의 상위 타임 서버
  • st – 대상 타임 서버의 계층 단계
  • t – 타임 서버의 형태 (u: 유니캐스트, b: 브로드캐스트, l: 로컬)
  • when – 마지막 응답을 받은 후 지난 시간 (초)
  • poll – 시간 정보 확인 간격 (초)
  • reach – 대상 타임 서버로의 접속 성공 여부 (8진수, 377은 모든 시도가 성공했다는 것을 의미한다)
  • delay – 타임 서버까지의 전송 시간 (ms)
  • offset – 타임 서버와의 시간 차이 (ms)
  • jitter – 타임 서버의 오류 범위 (ms)

참고