【 제목 】NTP를 이용한 시스템간 시간 동기화
----------------------------------------------------------------
◎ Overview
1. System의 동기화 방법과NTP의 특징
2. xnptd를 이용한 시간 동기화
1. System의 동기화 방법과 NTP의 특징
시스템을 운영하다 보면 각 서버간의 시간을 동기화 시킬 필요를 느끼게 됩니다.
시스템간의 시간을 동기화 시킬 수 있는 방법은 크게 3가지가 있습니다.
우선 가장 간단한 명령은 setclock 명령입니다. # setclock hostname 을 통해 지정한 host의 time을 가져오는 명령어입니다. 이 명령어는 지속적인 동기화가 아닌 명령어를 수행한 순간에 한번만 실행되는 명령어입니다. 단지 시스템간의 시간을 맞추고 싶다면 cron에 이 명령을 적절한 시간에 반복하도록 등록하는 것도 하나의 방법이 될 수 있습니다.
또 다른 방법으로 timed Daemon을 사용할 수 있습니다. Timed는 동일 네트웍에 있는 서버들의 시간을 동기화시키는 데몬입니다. timed는 주기적으로 시간을 확인해 동기화 하지만 20ms의 정도의 서버의 시간 차는 무시하고 "sync 시간"을 결정하므로 무시된 서버의 시간은 시간 차이가 큰 서버들간의 sync time으로 인해 큰 차이로 변경 될 수 있습니다.
마지막 방법이 이번 호에서 살펴보려 하는 NTP를 이용한 시간 동기화 방법입니다. NTP는 xntpd Daemon을 이용해 시간을 동기화 하며 xnptd는 timed와는 다르게 동일 network이 아닌 시스템 간에도 사용할 수 있으며 1분에 5초 정도까지 보정 될 수 있습니다.
참고로NTP은 UDP 사용자 데이터그램 프로토콜(UDP) 포트 123을 사용합니다. 이 포트가 인터넷으로 열려 있지 않으면 서버를 인터넷 SNTP서버와 동기화할 수 없습니다.
기본적으로 timed는 설정 후 sync를 시키면 바로 시간을 맞추고 xntpd는 8분 정도 후에 서버와 클라이언트 간에 시간이 맞추어지게 됩니다. xntpd의 경우 이론상 최초 구동 후 timesysnc check는 분당 이루어지나 그 시간은 서버간 거리나 clock drift에 의해 바뀔 수 있으며 보통 6분에서 10분 가량 걸리는 것으로 나타나고 있습니다.
2. xntpd를 이용한 시간 동기화
* 시간 동기화의 Server 환경 구성*
1) /etc/ntp.conf ,/etc/ntp.drift 와/etc/ntp.trace 파일이 있는지 확인합니다
2) /etc/ntp.conf 파일을 아래와 같이 수정합니다.
------------------/etc/ntp.conf-----------------------------
server 127.127.1.0 prefer# local clock as reference
자신의 IP와 상관없이 setting 하는 값입니다.
fudge 127.127.1.0 stratum 0# values for local clock(필수 항목은 아닙니다.)
driftfile /etc/ntp.drift# where to keep drift data
tracefile /etc/ntp.trace
------------------------------------------------------------
3) xntpd를 살립니다.
# smitty xntpd >Start Using the xntpd Sybsystem> Both 또는 # startsrc -s xntpd
4) Daemon이 살아있는지 확인합니다.
# ps -ef | grep xntpd / 결과로 srcmster 로 부터 start 되었음을 확인합니다.
à 6-8 분 정도 후에
# lssrc -ls xntpd 결과 값에서 아래 표시된 값들을 확인합니다.
root@v5:/>lssrc -ls xntpd
Program name:/usr/sbin/xntpd
Version:3
Leap indicator:00 (No leap second today.)
Sys peer:127.127.1.0
Sys stratum:4
Sys precision:-16
Debug/Tracing:DISABLED
Root distance:0.000000
Root dispersion: 0.010010
Reference ID:127.127.1.0
Reference time:c52992e1.7c721000Tue, Oct 26 2004 22:22:09.486
Broadcast delay: 0.003906 (sec)
Auth delay:0.000122 (sec)
System flags:pll monitor filegen
System uptime:73593 (sec)
Clock stability: 0.000000 (sec)
Clock frequency: 0.000000 (sec)
Peer: 127.127.1.0
flags: (configured)(refclock)(sys peer)(preferred)
stratum:3, version: 3
our mode: client, his mode: server
SubsystemGroupPIDStatus
xntpdtcpip352262active
* 시간 동기화의 Client환경 구성*
1) date 명령어로 현재 Server 와 어느 정도 시간 차이가 나는지 확인합니다. xntpd는 Server와 Client간 1000초(16분) 이상의 시간 차이가 발생하면 더 이상 시간을 동기화 하지 않습니다. date 확인 후 시간차가 크다면 # smitty date 를 통해 시간을 근접하게 바꾸어 줍니다.
2) /etc/ntp.conf ,/etc/ntp.drift 와/etc/ntp.trace 파일이 있는지 확인합니다
3) /etc/ntp.conf 파일을 아래와 같이 수정합니다.
-----------------/etc/ntp.conf-------------------------------
server xxx.xxx.xxx.xxx (server_name_or_ip)# NTP server 의 IP address
driftfile /etc/ntp.drift
tracefile /etc/ntp.trace
-------------------------------------------------------------
3) xntpd를 살립니다
# smitty xntpd >Start Using the xntpd Sybsystem> Both 또는
# startsrc -s xntpd –a "-x“
- x 명령어를 통해 Time backward 를 막을 수 있습니다. 이로서 시간이 늦는 서버의 시간을 동기화 하는 것을 방지해 시간차에 민감한 DB들의 충돌을 방지할 수 있습니다
4) Daemon이 살아있는지 확인합니다.
# ps -ef | grep xntpd / 결과로 srcmstr 로 부터 start 되었음을 확인합니다.
à 6-8분 후에
# lssrc -ls xntpd 결과 값에서 아래 표시된 값들을 확인합니다.
root@v4:/> lssrc -ls xntpd
Program name:/usr/sbin/xntpd
Version:3
Leap indicator:11 (Leap indicator is insane.)
Sys peer:no peer, system is insane
Sys stratum:16
Sys precision:-16
Debug/Tracing:DISABLED
Root distance:0.000000
Root dispersion: 0.000000
Reference ID:no refid, system is insane
Reference time:no reftime, system is insane
Broadcast delay: 0.003906 (sec)
Auth delay:0.000122 (sec)
System flags:pll monitor filegen
System uptime:23 (sec)
Clock stability: 0.000000 (sec)
Clock frequency: 0.000000 (sec)
Peer: v5.kr.ibm.com
flags: (configured)(preferred)
stratum:4, version: 3
our mode: client, his mode: server
SubsystemGroupPIDStatus
xntpdtcpip15002active
위와 같이 Sever와 Client의 구성을 끝내고 나면 각 서버에서
# ntpq –p 로 system이 시간을 동기화 시키는 과정을 확인 할 수있습니다. (또는 xntpdc -p )
참고 자료 :http://www.eecis.udel.edu/~ntp/ntp_spool/html/ntpq.html
root@v4:/> ntpq -p
remoterefidst t whenpollreachdelayoffsetdisp
========================================================================
*v5.kr.ibm.comLOCAL(0)4 u35643771.27-3.3450.53
root@v4:/> date
Wed Oct 27 12:45:34 KORST 2004
root@v5:/>date
Wed Oct 27 12:45:37 KORST 2004
root@v5:/>ntpq -p
remoterefidsttwhen pollreachdelayoffsetdisp
========================================================================
*LOCAL(0)LOCAL(0)3l7643770.000.000
대부분의 경우 Reach 값이 377에 다다를 경우 시간의 동기화가 완료됩니다.
Tip !보통 6분에서 10분 사이에 시스템간 시간은 동기화가 되며 동기화 설정후 바로 시간을 맞추고 싶다면ntp server 가 active 인 상태인 Client에서
#ntpdate <ip_of_Sever> 또는 # setclock hostname
#startsrc -s xntpd -a "-x"
로 데몬을 살리면 시간은 바로 같아집니다.
후에 reboot 후에도 같은 설정을 적용하고 싶다면 모든 시스템의/etc/rc.tcpip 파일에 start /usr/sb in/xntpd "$src_running" "-x" 항목을 추가해주시기 바랍니다.
이 밖에AIX머신과 Windows NT간의 시간 동기화은NT의 w32time service를 이용하여 설정해 주시면 되고AIX는 위와 같은 동일한 방법으로 서버, 클라이언트에 맞는 구성을 해 주시면 됩니다.
이상NTP를 이용해 시간을 동기화 하는 방법을 알아보았습니다. xntpd를 이용해 시간을 동기화 한 후 Time Server의 시간을 바꾸면 전체 Client의 시간이 바뀌므로 주의해서 시간관리를 해야 합니다. Time Server의 시간을 임시로 바꾸고자 하면 반드시 xntpd daemon을 stop 시킨 후 (#stopsrc -s xntpd) 작업을 합니다.
◆ aix 에서 ntp 서버 구성
[Server]
/etc/ntp.conf 화일에서 맨 밑으로 이동
#broadcastclient -- 주석처리#server 127.127.1.0 prefer -- local 서버
server 203.254.163.74 prefer -- 외부 서버를 기준 (timency.kriss.re한국 표준과학연구원)
driftfile /etc/ntp.drifttracefile /etc/ntp.trace
> startsrc -s xntpd 로 기동 한다.
> smity xntpd 로 기동 할수 있다.
>ntpd -p 로 확인
외부 서버 연결 시
root@ntp:/> ntpq -p
remote refid st t when poll reach delay offset disp
==============================================================================*timency.kriss.r .檢 . 1 u 162 1024 377 36.56 0.795 8.58
자기 자신 참조시
root@ntp:/> ntpq -p
remote refid st t when poll reach delay offset disp============================================================================== LOCAL(0) LOCAL(0) 4 u 59 64 377 2.20 0.104 0.03
[Client]
/etc/ntp.conf file 수정
#broadcastclient -- 주석처리server ntp_server_ip
driftfile /etc/ntp.drifttracefile /etc/ntp.trace
> startsrc -s xntpd 로 기동 한다.
> smity xntpd 로 기동 할수 있다.
>ntpd -p 로 확인
root@client:/> ntpq -p
remote refid st t when poll reach delay offset disp==============================================================================ntp_svr LOCAL(0) 4 u 59 64 377 2.20 0.104 0.03
# ntpdate -d ntp_server_ip 서버의 시간과 동기화 한다.
========================================================================================
1. 신규 설정할 NTP 서버와 네트웍확인
- 현재 시스템 시간 확인
#date(실제 시간과 1000초 이상 차이가 있으면 현재 시간을 수정후 작업.1000초이상 차이가나면 시간 동기화가 안된다.)
- ntp 서버로 설정할 시스템으로 ping 테스트
#ping x.x.x.x (NTP서버 IP)
ping test의 결과가 양호하여야한다
2. NTP 타임서버를 NTP 구성파일에 등록한다.
- /etc/ntp.conf 파일을 수정
#vi /etc/ntp.conf
server <ntp서버명 혹은 ip>prefer
server<ntp서버명 혹은 ip> tracefile /etc/ntp.trace#trace file 지정 driftfile /etc/ntp.drift#제거(Local clock의 정확도를tracking 한다)
*** prefer등에대한 설명은 생략~ 서버를 여러개 등록할 수 있으므로 우선시 순위라고 생각하도록하자. (정말모르겠으면 복사한후 파란색 글씨만 NTP서버 아이피로 바꿔 입력하면된다 -_-;;;)
3. NTP 프로세스 시작
#startsrc –s xntpd
#ps -ef | grep xntpd-> xntpd daemon이 동작중임을 확인만일 oracle 이나 기타 어플리케이션 특성상 시간이 뒤로 가는 것(동기화시)을 막으려면 아래와 같이 start시키도록한다. #startsrc -s xntpd -a "-X" Note: -x option prevents time from being adjusted backward
4. NTP서버와 수동 동기화
# ntpdate -d<NTP서버 주소>
5. 명령어를 이용한 NTP 양호 여부판단
# /usr/sbin/ntpq –p:정상판단기준#daemonstart 후 약5분 후
remoterefidst t when poll reachdelayoffsetdisp
====================================================================
*211.115.4.202133.100.9.22 u785123770.500.0570.03
+211.115.4.205133.100.9.22 u1505123772.613.2130.11
. reach 값이 377 이어야 한다
. delay 값이 5보다 작아야 한다
. NTP 서버로 설정한 시스템이 마스터 이어야함(IP 앞에 * 표시가 있는것이 마스터 시스템)
ð이때 처음에는 reach값이 작게 시작해서 시간이 지날수록 점점 올라가는데,
계속해서 connection fail이 나는 경우가 생기면, 시스템의 timezone 셋팅이 제대로 되어있는지 체크 할 것.
** 리부팅시 자동 시작되게하려면 아래와 같이 /etc/rc,tcip 파일에서 수정.(앞에막혀있는 #을 풀어주면됨) #vi /etc/rc.tcpip start /usr/sbin/xntpd "$src_running" (rebooting시 적용되게 앞에 #을 지원준다)
출처 - 인터넷 블로그
'Computer > OS' 카테고리의 다른 글
떠돌아 모은 정리 안된 AIX 명령어 (0) | 2019.08.29 |
---|---|
웹투비(WebtoB) 인터넷 짜집기 정리 (0) | 2013.01.24 |
AIX 백업 - Mksysb의 모든것 (0) | 2012.10.18 |
Windows Server에서 권한을 보유한 시간 서버를 구성하는 방법 (0) | 2012.10.18 |
[AIX] BACKUP 명령어 (0) | 2012.10.10 |