게시물 1,376건
   
NTP(Network Time Protocol) 서버 구축
글쓴이 : 최고관리자 날짜 : 2010-05-30 (일) 16:10 조회 : 23957
글주소 :
                                
리눅스에서 시간을 동기화하는 방법에는 rdate 를 이용한 방법과 ntp 를 이용한 방법이 있다.
여기서는 ntp 서버설정하는 방법에 대해서 설명하도록 하겠습니다.

NTP 서비스는 세계 여러나라의 타임서버에 주기적으로 접속하여 해당서버의 시스템 시간을 맞춰주는 네트워크 타임 프로토콜 서비스로 시스템의 정확한 시간을 동기화시켜주는 서비스이다.
왠만한 리눅스에서는 기본적으로 배포되어있다.

기본적으로, 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 를 고집할 이유가 전혀 없다고 봐도 무방하다.


[root@localhost ~]# rpm -qa |grep ntp-
ntp-4.2.4p2-3.fc7


그러면 서버 표준시각 유지가 왜 필요할지에 대해서 생각해보면....
처음 맞춰둔 시간이 별다른 문제없이 그대로 유지된다면 모르겠으나 실제로는 그렇지 못하고 있다. 따라서 시스템의 설정변경 및 로그를 보기 위해서는 정확한 시간이 필요로 하기에 타임서버를 통한 동기화 작업은 필히 필요한 부분이다.

또한 메일과 DNS 와 같은 서비스들 정확한 시간은 필수적이며 네트워크 공유를 위한 파일시스템들은 표준시간을 유지하는데 필수적인 부분이다.


먼저 CMOS RTC (Real Time Clock) 을 현재 시각으로 변경한다.
[root@localhost ~]# clock -w


주기적으로 일치시켜주기 위해 cron 에 등록
[root@localhost ~]# /etc/cron.daily/time_sync   # 파일 생성
/sbin/clock -w
[root@localhost ~]# chmod 755 time_sync         # 실행권한 부여


시스템 설정파일은 /etc/ntp.conf 로 해당파일에 아래의 타임서버 등록
현재 국내에서 운영중인 타임서버
server time.nuri.net
server time.nist.gov
server time.kriss.re.kr
server time.bora.net
server ntp.ewha.net


ntp 데몬 실행
[root@localhost ~]# /etc/init.d/ntpd start
※ 시스템 재시작혹은 데몬 시작이후에는 약 5분정도가 지난후에 반영됩니다.


시간정보 업데이트 여부 확인
[root@localhost ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*115.139.9.150   .GPS.            1 u   54   64  377    6.811   -0.403   0.212
 rafi.inha.ac.kr 115.139.9.150    2 u   35   64  377    6.454    0.266   0.339
+165.194.104.130 210.98.16.100    2 u   29   64  377   37.017   -2.868  66.991

remote : sync 를 하는 straum 2 서버주소
refld : 각 straum 2 서버가 현재 sync 를 하고 있는 straum 1 서버를 보여줌
st : 각 라인의 remote 들의 straum 을 나타냄
* 표시 : 실질적으로 선택되서 동기화 되고있는 서버
+ 표시 : ntp 알고리즘에 의해 접속은 가능하지만 sync 를 하고 있지는 않음(일종의 대기상태)
- 표시 : ntp 알고리즘에 의해 접속은 가능하지만 sync 가능 리스트에서 제외
blank 표시 : 접속이 불가능


※ 복수의 타임서버를 넣게 되면 타임서버로의 접속이 불가능하거나 시각이 틀린경우에도 안정적인 표준시각을 제공받을수 있습니다.

reach = reachability
delay = delay
disp = dispersion

reach 값은 타임서버에 완전히 접속하기 위한 8진수로 377이어야 합니다.
또한 delay 값은 양의 수여야 하며 가능한 작은 값이어야 합니다.
disp 값은 서버중 적어도 하나는 1000ms(1초) 미만이어야 하며 서버중 적어도 한개는 반드시 서버명 앞에 * 표시가 되어야 합니다.


ntp 서버를 이용한 클라이언트 서버 동기화
[root@localhost ~]# ntpdate -b time.xxxxxxxx.com
31 May 12:35:59 ntpdate[26304]: step time server xxx.xx.xx.xxx offset 5.120165 sec
# offset 5.120165 sec은 타임서버의 시간과 로컬서버와의 시간 차이를 나타냅니다.

이름 패스워드
비밀글 (체크하면 글쓴이만 내용을 확인할 수 있습니다.)
왼쪽의 글자를 입력하세요.
   

 



 
사이트명 : 모지리네 | 대표 : 이경현 | 개인커뮤니티 : 랭키닷컴 운영체제(OS) | 경기도 성남시 분당구 | 전자우편 : mojily골뱅이chonnom.com Copyright ⓒ www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.