Windows Server NTP 설정가이드 Author 이종하 (lovemind.tistory.com) 1
Contents 목적... 5 NTP 란?... 5 윈도우에는... 5 시스템환경... 6 서버명및 IP 주소... 6 내부 NTP 서버... 7 외부 NTP 서버와시간동기화... 7 실행서버... 7 시나리오... 7 작업... 7 NTP 서비스제공을위한구성확인... 9 실행서버... 9 시나리오... 9 작업... 9 Slave 서버... 11 Slave 서버환경구성... 11 실행서버... 11 시나리오... 11 작업... 11 NTP 서버와시간차확인... 12 실행서버... 13 시나리오... 13 작업... 13 정리 : NTP 설정후동기화요청및동기화확인... 14 참고... 15 W32Time 서비스의레지스트리항목... 15 큰시간오프셋을방지하도록 Windows 시간서비스구성... 15 Windows Server 2008 방화벽설정... 15 3
목적 내부네트워크환경으로구성되어있는서버시스템의시스템시간을동일하게구성하여데이터의신뢰성을높이고자한다. NTP 란? Network Time Protocol( 네트워크시간프로토콜 ) 의약자로네트워크환경으로구성된장비 ( 서버, PC, 통신장비, 방화벽장비등 ) 의시스템시간을동기화하기위한규약이다. 윈도우에는 모든윈도우서버는 NTP 서버가될수있다. 모든서버의방화벽에서 UDP 123 번이열려있어야한다. NTP 서버와의시간차이가많이날경우 ( 기본값 : 15 시간 ) 동기화되지않는다. 실제시간과근접한시간으로변경후동기화할수있도록한다. 데이터일치를위하여동기화 (Sync) 요청을하더라도즉시반영되는것이아니라, 조금씩맞춰간다. ( 예 : Server#2 서버가 Server#1 서버보다시간이빠를경우, Server#1 번의시간으로 Server#2 의시스템시간을동기화할경우, 동일한시간대의데이터가생성되므로, 데이터정합성에오류가발생한다. 이에시간동기화는즉시반영되는것이아니라, 조금씩그차이를줄여나가는방식이다. 표 12 참조 ) 5
시스템환경 NTP 시간을제공해주는서버를 NTP 서버, NTP 서버로시간동기화를요청하는서버를 Slave 서버 로명명한다. 서버명및 IP 주소 서버명 IP 주소 역할 Server#1 10.10.10.1 NTP 서버 Server#2 10.10.10.2 Slave 서버 Server#3 10.10.10.3 Slave 서버 6
내부 NTP 서버 외부 NTP 서버와시간동기화 내부 NTP 서버시스템시간을인터넷표준시 ( 예 :time.windows.com) 으로설정한다. 실행서버 Server#1(IP:10.10.10.1) 시나리오 내부 NTP 서버역할로운용할서버의시간동기화대상을외부 NTP( 예 :time.windows.com) 으로설정하고, 설정 ( 레지스트리 ) 값을확인후동기화작업을수행한다. 작업 1. 외부 NTP 서버를기준으로시간동기화설정을한다. * 시작 -> cmd -> w32tm /config /syncfromflags:manual /manualpeerlist:time.microsoft.com /update 표 1: 예상결과 C:\>w32tm /config /syncfromflags:manual /manualpeerlist:time.microsoft.com /update 명령이성공적으로완료되었습니다. 2. Windows Time 서비스의설정값 ( 레지스트리 ) 확인 * 시작 -> cmd -> w32tm /dumpreg /subkey:parameters 7
표 2: 예상결과 C:\>w32tm /dumpreg /subkey:parameters 값이름 값종류 값데이터 ----------------------------------------------------------------------------- ServiceMain REG_SZ SvchostEntry_W32Time ServiceDll REG_EXPAND_SZ C:\WINDOWS\system32\w32time.dll NtpServer REG_SZ time.windows.com,0x1 <- 외부 NTP 서버주소 Type REG_SZ NTP <- 외부 NTP 서버사용 3. Windows Time 서비스재시작 * 시작 -> cmd -> net stop w32tm -> net start w32tm 표 3: 예상결과 C:\>net stop w32time Windows Time 서비스를멈춥니다.. Windows Time 서비스를잘멈추었습니다. C:\>net start w32time Windows Time 서비스를시작합니다.. Windows Time 서비스가잘시작되었습니다. 4. 시간동기화 * 시작 -> cmd -> w32tm /resync 표 4: 예상결과 [ 정상 ] C:\>w32tm /resync 로컬컴퓨터에다시동기화명령을보내는중명령이성공적으로완료되었습니다. [ 오류 ] : 방화벽에서외부 UDP 123 포트가막혀있을경우발생할수있다. C:\>w32tm /resync 동기화명령전송 - local computer... 사용가능한시간데이터가없어컴퓨터가동기화하지못했습니다. 8
NTP 서비스제공을위한구성확인 내부 NTP 서버가외부 NTP 서버를참조하는지확인한다. 실행서버 Server#1(IP:10.10.10.1) 시나리오 내부 NTP 서버역할로운용할서버의서비스를확인하여 Slave 서버에서연결할수있도록구성값을확인한다. 작업 1. Windows Time 서비스구동확인 * 시작 -> cmd -> sc query w32time 표 5: 예상결과 C:\>sc query w32time SERVICE_NAME: w32time TYPE : 20 WIN32_SHARE_PROCESS STATE : 4 RUNNING (STOPPABLE,NOT_PAUSABLE,ACCEPTS_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 2. NTP 서비스구동확인 * 시작 -> cmd -> netstat ano findstr 123 9
표 6: 예상결과 C:\>netstat -ano findstr 123 UDP 0.0.0.0:123 *:* 1128 UDP 0.0.0.0:62123 *:* 1428 UDP [::]:123 *:* 1128 10
Slave 서버 Slave 서버환경구성 내부 NTP 서버 (IP:10.10.10.1) 를기준으로 Slave 서버의시스템시간을설정한다. 시간차이가너무많을경우동기화가되지않으니, 수동으로근접한시간을맞추고동기화할수있도록한다. 실행서버 Server#2(IP:10.10.10.2) Server#3(IP:10.10.10.3) ( 각서버별로수행 ) 시나리오 시간동기화대상을내부 NTP 서버 (IP:10.10.10.1) 로설정하고, 동기화작업을수행한다. 작업 1. 내부 NTP 서버 (IP:10.10.10.1) 를기준으로시간동기화설정을한다. * 시작 -> cmd -> w32tm /config /syncfromflags:manual /manualpeerlist:10.10.10.1 /update 표 7: 예상결과 C:\>w32tm /config /syncfromflags:manual /manualpeerlist:10.10.10.1 /update 명령이성공적으로완료되었습니다. 2. Windows Time 서비스의설정값 ( 레지스트리 ) 확인 * 시작 -> cmd -> w32tm /dumpreg /subkey:parameters 11
표 8: 예상결과 C:\>w32tm /dumpreg /subkey:parameters 값이름 값종류 값데이터 ----------------------------------------------------------------------------- ServiceMain REG_SZ SvchostEntry_W32Time ServiceDll REG_EXPAND_SZ C:\WINDOWS\system32\w32time.dll NtpServer REG_SZ 10.10.10.1 <- 외부 NTP 서버주소 Type REG_SZ NTP <- 외부 NTP 서버사용 3. Windows Time 서비스재시작 * 시작 -> cmd -> net stop w32tm -> net start w32tm 표 9: 예상결과 C:\>net stop w32time Windows Time 서비스를멈춥니다.. Windows Time 서비스를잘멈추었습니다. C:\>net start w32time Windows Time 서비스를시작합니다.. Windows Time 서비스가잘시작되었습니다. 3. 시간동기화 * 시작 -> cmd -> w32tm /resync 표 10: 예상결과 C:\>w32tm /resync 로컬컴퓨터에다시동기화명령을보내는중명령이성공적으로완료되었습니다. NTP 서버와시간차확인 특정서버 (ex.ntp 서버 ) 와실행한서버와의시간차이를확인한다. 12
실행서버 Server#2(IP:10.10.10.2) Server#3(IP:10.10.10.3) ( 각서버별로수행하여확인할수있다.) 시나리오 특정서버 (Master Server:10.10.10.1) 와 Slave Server(10.10.10.2) 시간동기화대상을 Master Server 설정하고, 동기화작업을수행한다. 작업 1. Master Server 를기준으로시간동기화설정을한다. * 시작 -> cmd -> w32tm /stripchart /dataonly /computer:10.10.10.1 비교대상서버와시간이일치한다면, 하기와유사한결과값을볼수있다. 표 11: 예상결과 C:\> w32tm /stripchart /dataonly /computer:10.10.10.1 Tracking 10.10.10.1 [10.10.10.1]. The current time is 2012-04-18 오후 19:17:13 (local time). 19:17:13, +00.2676328s -> 비교대상서버와 +00.2676328 초만큼차이가난다. 19:17:15, +00.2593851s 19:17:17, +00.2589499s 19:17:19, +00.2428931s ^C -> 중지하기위해서는 Ctrl + c 를누르면된다. +00.xxxxxxx( 또는 -00.xxxxxxx) 로대상 NTP 서버와차이나는시간만큼표기된다. 예 ) +120.2428931s -> +120 초차이가남 13
정리 : NTP 설정후동기화요청및동기화확인 표 12: Slave 서버동기화설정 NTP 서버 (IP:10.10.10.1) 서버를시스템시간으로설정한다. C:\>w32tm /config /syncfromflags:manual /manualpeerlist:10.10.10.1/update 명령이성공적으로완료되었습니다. Windows Time 서비스를재기동한다. C:\>net stop w32time Windows Time 서비스를멈춥니다.. Windows Time 서비스를잘멈추었습니다. C:\>net start w32time Windows Time 서비스를시작합니다.. Windows Time 서비스가잘시작되었습니다. NTP 서버 (IP:10.10.10.1) 로지정한서버와동기화를요청한다. C:\>w32tm /resync 로컬컴퓨터에다시동기화명령을보내는중명령이성공적으로완료되었습니다. NTP 서버 (IP:10.10.10.1) 와실행중인서버와의시간차이를확인한다. C:\>w32tm /stripchart /dataonly /computer:10.10.10.1 10.10.10.1[10.10.10.1:123] 추적중현재시간은 2012-04-19 오후 22:47:25 입니다. 22:47:25, +23.2364090s 22:47:27, +22.7004942s -> 조금씩이지만차이가줄어드는것을볼수있다. 22:47:30, +22.1639462s 22:47:32, +21.6430236s ^C -> 중지하기위해서는 Ctrl + c 를누르면된다. 14
참고 W32Time 서비스의레지스트리항목 SITE: http://support.microsoft.com/kb/223184/ko/ 큰시간오프셋을방지하도록 Windows 시간서비스구성 SITE: http://support.microsoft.com/kb/884776/ko Windows Server 2008 방화벽설정 NTP Sync Response(IN/UDP) netsh advfirewall firewall add rule name="ntp Sync Response(IN/UDP)" protocol=udp dir=in action=allow localport=123 ( command 창이관리자권한으로실행되어있어야한다.) 15