반응형

NTP(Network Time Protocol): 컴퓨터 시스템 간 시간 동기화를 위해 사용되는 네트워크 프로토콜. (UDP, port 123)

서버 혹은 클라이언트 단말기를 활용/설정하다 보면 도메인 환경이거나 비 도메인 환경이라고 할 지라도 해당 컴퓨터 시스템의 시간이 잘 맞지 않는 경우가 있다. (완전히 맞지 않거나 몇 분 느려지는 경우 등)

그럴 때 Windows 계열에서 활용했던 명령어를 정리해 보려고 한다. (유닉스 / 리눅스 계열도 유사할 것으로 판단되나 그대로 복사 및 붙여넣기 하여 작동할 수는 없을 것으로 판단된다.)

1. 도메인 환경 - 본인이 관리하는 네트워크 내부에 Primary Domain Controller(PDC) 및 보조 Domain Contoller(DC)가 있고, Client들이 도메인에 가입된 경우 일반적으로 아래 Diagram과 같이 구성된다.

출처: https://social.technet.microsoft.com/wiki/contents/articles/50924.active-directory-time-synchronization.aspx

1) 시간 동기화 현황 확인

도메인 환경에서(비 도메인 환경도 마찬가지) 현재 도메인의 멤버 서버/워크스테이션이 어떠한 방식으로 시간 동기화를 하고 있는지 확인하려면 아래 경로의 레지스트리 값을 확인하면 된다.
--> HKLM\System\CurrentControlSet\Services\W32Time\Parameters\Type.

여기서 Type값이 'NT5DS'면 도메인 환경에 가입되어 Active Directory(AD) 구조의 시간 동기화를 따른다는 것이고,
Type값이 'NTP'이면 그 위의 'Ntpserver'에 설정된 서버와 직접적으로 시간 동기화를 한다는 의미이다.

도메인 환경에서 PDC는 AD 구조에서 모든 멤버들에게 정확한 시간을 전달하는 메인 장비가 되므로, 가급적 신뢰할 수 있는 외부 NTP서버와 시간 동기화를 하는것이 일반적이다. (ex. time.windows.com / time.google.com 등)

2) 신뢰할 수 있는 외부 서버와 직접 NTP를 통해 시간을 동기화 하도록 설정하는 명령어

w32tm /config /manualpeerlist:"0.time.windows.com,0x1 1. time.google.com ,0X1" /syncfromflags:manual /reliable:yes /update

CMD에 명렁어 입력

설정이 정상적으로 되었는지 확인하고 싶다면 Registry 편집기를 통해 확인해본다.

도메인 환경에서는 PDC만이 위와 같이 설정되어 있는 것이 일반적이다.

(그리고, PDC가 Virtual Machine(VM)인 경우에는 해당 VM이 그 호스트(물리 장비)와 시간을 동기화 하지 않도록 설정해야 한다.)
 - VM의 Hypervisor에서 설정할 수 있는 것으로 알고 있다.

위 명령어를 입력한 후 Windows Time 서비스를 재시작하여 적용한다. 
CMD창에 아래 명령어를 입력한다. 혹시 정상적으로 적용이 되지 않은 경우 PDC를 재부팅한다.
net stop w32time
net start w32time

CMD창에서도 명령어를 통해 현재 시간 동기화를 어떻게 하고 있는지 확인이 가능하다.

w32tm /query /configuration

 

3) 외부 시간 동기화 소스(서버)와 얼만큼의 오차로 시간 동기화를 하고 있는지 알고 싶다면 아래 명령어를 활용한다.

 w32tm /stripchart /computer: time.windows.com(변경가능)

d:   Internal delay (time difference between the UDP package received and UDP package sent on the server side. O:  Actual offset between the local time and the server time.

4) 시간 동기화 소스(서버)를 확인하는 명령어

w32tm /query /status

PDC에서 쿼리한 경우
도메인 환경에서 PDC혹은 DC를 바라보는 멤버 서버에서 쿼리한 경우 (일반적)

5) 수동(강제)으로 시간 재 동기화를 내리는 명령어 (서버 및 워크스테이션의 시간이 맞지 않다면 사용한다.)

w32tm /resync

재(강제) 동기화 이후 시간이 변경됨

2. 비 도메인 환경의 경우 각 서버 혹은 워크스테이션이 직접 외부의 신뢰할 수 있는 서버를 바라보고 NTP로 통신하면 되므로, 아래 명령어들을 사용하면 시간을 맞추는데 어려움이 없을 것으로 판단한다. (각 장비들이 마치 PDC 처럼 작동한다고 봐도 무방함)

w32tm /config /manualpeerlist:"0.time.windows.com,0x1 1. time.google.com ,0X1" /syncfromflags:manual /reliable:yes /update  --> 신뢰할 수 있는 외부 시간 동기화 서버를 NTP서버로 설정

net stop w32time --> 설정 이후 서비스 재시작을 위한 서비스 중단
net start w32time --> 설정 이후 서비스 재시작을 위한 서비스 시작

w32tm /query /configuration --> 적용 이후 설정된 상태 확인

w32tm /resync --> 동기화에 문제가 있는 경우 수동(강제) 재 동기화 명령

끝!

본 포스팅의 주 내용은 대부분 https://social.technet.microsoft.com/wiki/contents/articles/50924.active-directory-time-synchronization.aspx 에서 발췌하였고, 영문이 아닌 국문(한극) 정보가 필요한 분들을 위하여 기록했다.

반응형

+ Recent posts