| 타임 서버를 이용한 서버의 시간 동기화. 좀 더 체계적인 글(?) | 작성일 : 2003/08/09 23:37 |
| 조회수 : 32861 |
|
작성자 : 좋은진호(truefeel, http://coffeenix.net/ ) 작성일 : 2003.3.17~18 수정일 : 2003.8.13(수) ntpdate의 시스템 콜 부분 추가 전에는 rdate time.nuri.net 또는 ntpdate -b time.kriss.re.kr 로 동기화만 했는데, 좀더 체계적으로(?) 정리할 필요가 있어서 적어봤다. 1. 우리나라의 NTP(Network Time Protocol) 서버 1) Stratum 1 서버 : GPS 위성으로 부터 표준시각정보를 받는 타임 서버를 NTP Primary Time Server 혹은 Stratum 1(one) 라고 부름 데이콤 (gps.bora.net), 코넷 (ntp.kornet.net), GNGIDC, 부산대학교 (ntp1.cs.pusan.ac.kr / ntp2.cs.pusan.ac.kr), 한국 표준과학 연구원 시간 · 주파수 연구실 (time.kriss.re.kr) 2) Stratum 2 서버 : Stratum 1 서버로 부터 표준시간을 받는 타임서버를 TP Secondary Time Server 혹은 Stratum 2 서버라고 부름 PSINet Korea (time.nuri.net), GNGIDC (ntp1.gngidc.net / ntp2.gngidc.net), 이대부속 초등학교 (ntp.ewha.net / ticktock.ewha.net) 2. rdate를 이용한 시간 동기화 지정한 타임서버로 부터 시간을 확인하거나 동기화 시킨다. 1) 타임서버의 표준시간을 확인한다. rdate time.nuri.net rdate: [time.nuri.net] Tue Mar 18 16:38:47 2003 2) 시스템 시간을 타임서버 시간에 동기화 시킨다. rdate -s time.nuri.net 3. ntpdate를 이용한 시간 동기화 1) 동기화 ntpdate -b -s time.kriss.re.kr -s : 결과를 화면이 아닌 syslog로 보냄 2) 다음과 같은 오류가 발생한 경우
-> NTP 프로토콜은 UDP port 123 을 사용하는데, 이 포트가 방화벽 등으로 막혀있는 경우에는 ntpdate -u time.kriss.re.kr 처럼 -u 를 옵션을 사용해서 다른 포트 사용하도록 한다. 3) 사용 예
위에서 'offset -557.336058 sec'은 타임서버의 시간(reference time)과 로컬 서버와의 시간 차이를 나타냄 4) ntpdate의 2가지 시스템 콜 ntpdate는 settimeofday(), adjtime()의 2가지 시스템 콜로 시간을 설정한다. settimeofday()은 timezone과 시간을 설정하고, adjtime()은 점근적 시각 보정 방식으로 커널 클럭을 조정한다. 주로 시간 동기화에 사용한다. ntpdate는 옵션(-b, -B)을 지정하지 않으면 현재 시스템 시간과 차이가 128ms 이상이면 settimeofday()을, 이내이면 adjtime()을 사용한다. 또한 강제적으로 ntpdate -b 로 settimeofday()를, ntpdate -B로 adjtime()를 사용할 수 있다. ntpdate 실행 결과 메시지에 'step time server...'로 표시되면 setimeofday()가 사용되었고, 'adjust time server...' 로 표시되면 adjtime()가 사용되었다.
부팅할 때는 ntpdate -b 로, cron등으로 정기적으로 시간조절을 할 때는 옵션없이 ntpdate 사용하기를 하기 바란다. 5) 디버깅 모드 - 디버깅 모드는 local 서버의 시간을 변경하지는 않는다.
4. 주의 사항 1) time.kriss.re.kr 서버는 1초내에 여러번 접속을 시도할 경우 해당 IP를 차단 시키므로 테스트를 하더라도, 시간 간격을 두고 하도록 |
|||||||||||||
|
|