IT정보공유

윈도우 NTP 서버 확인 명령어 (서버시간동기화)

알지오™ 2016. 6. 21.

 

NTP 서버가 어디로 지정되있는지 확인

w32tm /dumpreg /subkey:Parameters

 

NTP 서버 지정

w32tm /config /syncfromflags:manual /manualpeerlist:127.0.0.1 /update (서버의 경우)

w32tm /config /syncfromflags:manual /manualpeerlist:192.168.0.1 /update (Client의 경우 서버 아이피)

w32tm /config /syncfromflags:manual /manualpeerlist:111.111.111.111 /update
 

 
로컬 서버로 설정하기(레지스트리 수정)
 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type = NTP

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags = 5

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\Enabled = 1

 

 

 

NTP란?

Network Time Protocol(네트워크 시간 프로토콜)의 약자로 네트워크 환경으로 구성된 장비(서버, PC, 통신장비, 방화벽 장비 등)의 시스템 시간을 동기화 하기 위한 규약이다.

 

윈도우에는

  • 모든 윈도우서버는 NTP서버가 될 수 있다.
  • 모든 서버의 방화벽에서 UDP 123 번이 열려있어야 한다.
  • NTP서버와의 시간차이가 많이 날 경우(기본값: 15시간) 동기화 되지 않는다.
    실제 시간과 근접한 시간으로 변경 후 동기화 할 수 있도록 한다.
  • 데이터 일치를 위하여 동기화(Sync)요청을 하더라도 즉시 반영되는 것이 아니라, 조금씩 맞춰 간다.
    (예: Server#2 서버가 Server#1서버 보다 시간이 빠를 경우, Server#1번의 시간으로 Server#2의 시스템시간을 동기화 할 경우, 동일한 시간대의 데이터가 생성되므로, 데이터 정합성에 오류가 발생한다. 이에 시간 동기화는 즉시 반영되는 것이 아니라, 조금씩 그 차이를 줄여나가는 방식이다. ? 표12 참조 )

 

시스템 환경

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 서버

 

 

 

 


.


내부 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.windows.com /update

명령이 성공적으로 완료되었습니다.

 

2. Windows Time 서비스의 설정값(레지스트리) 확인

* 시작 -> cmd -> w32tm /dumpreg /subkey:Parameters

표 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...

사용 가능한 시간 데이터가 없어 컴퓨터가 동기화하지 못했습니다.

 

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

표6: 예상 결과

C:\>netstat -ano | findstr 123

UDP 0.0.0.0:123 *:* 1128

UDP 0.0.0.0:62123 *:* 1428

UDP [::]:123 *:* 1128

 

 

 

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

표 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서버)와 실행한 서버와의 시간차이를 확인한다.

 

실행서버

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초 차이가 남

 

정리: 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"를 누르면 된다.

참고

 

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 창이 관리자 권한으로 실행되어있어야 한다.)

 
  • 시간 서버 중지/실행
    • 중지 : net stop w32time
    • 실행 : net start w32time
  • 시간 동기화
    • net time \\[IP또는 서버이름] /set /y
      1. net stop w32time && net start w32time
      2. net time \\192.168.2.160 /set /y

       

       

      Windows 에서 시간 서버 설정하는 방법입니다.

       

      A. Windows 2000 일 경우

      i. 타임 서비스 중지

      net stop w32time

      ii. 동기화할 타임서버 설정

      net time /setsntp:"ttt,0x8"

      iii. 타임 서비스 시작

      net start w32time

      B. Windows XP, Vista, 2003, 2008 일 경우

      e Windows 2000과 동일하게 설정 가능, w32tm 명령어를 통한 자세한 설정 가능

      i. Windows 시간 서비스 서비스 등록/해제

      w32tm /register (서비스 등록)

      w32tm /unregister (서비스 해제)

      ii. 동기화할 타임서버 설정(권장: 0x8 Flag 지정 혹은 아무것도 지정하지 않음, DefaultClient 모드)

      w32tm /config /manualpeerlist:"ttt,0x8" /syncfromflags:manual /update

      0x01 SpecialInterval

      0x02 UseAsFallbackOnly

      0x04 SymmatricActive

      0x08 Client

      e 0x01 Flag를 지정하면 Poll Interval7일로 변경됩니다. (권장하지 않음)

      u 동기화할 타임서버 설정(권장: 0x8 Flag 지정)

      iii. 시간서버와 재동기화

      w32tm /resync

      iv. 기타 유용한 명령어(2003,Vista, 2008) 에서만 지원

      w32tm /query /status (시간동기화 상태 확인)

      w32tm /query /peers (Peer 상태 확인)

      w32tm /query /configuration (시간동기화 관련 설정 확인)




    • 댓글

      💲 추천 글