NTP
네트워크로 연결되어 있는 컴퓨터들끼리 시간을 동기화시키는데 사용되는 프로토콜
NTP서버의 필요성
- 데이터의 손실방지
- 로그에 대한 분석효율 상승
- 예약된 작업의 실행불가 상황 방지
NTP서버
- 모든 윈도우서버는 ntp서버가 될 수 있음.
- 포트 : UDP123
- 시간을 동기화받더라도 즉시 반영되는것이 아니라 조금씩 맞춰간다.
- 시간차이가 너무 많이 날 경우 동기화하지 않음(기본값 15시간)
- Windows Time서비스(서비스명은 W32Time)는 Trigger조건(AD도메인 가입)을 충족해야만 자동으로 실행된다.
- NTP서버의 level
ntp서버는 계층구조로 되어있는데 stratum을 통해 나타낸다. stratum은 시간존으로부터 네트워크적으로 떨어진 거리를 나타내며 stratum level이 낮을수록 더 정확한 시간을 제공한다.(ex. stratum0, stratum1...)
개인용 pc는 stratum2서버를 사용해도 충분히 정확한 시간을 제공받는다.
- NTP 동작 모드
개별 장치들은 다수의 NTP 서버와 Multicast 모드로 동작
NTP 서버들은 상위계층 서버들과 Client/Server 모드로 동작
동일계층 서버들과는 Symmetric 모드로 동작
WORKGROUP환경의 컴퓨터에서 w32time서비스 설정하기
일반적으로 도메인에 조인되지 않은 컴퓨터(workgroup)의 컴퓨터시간은 time.windows.com과 동기화되도록 기본설정이 되어 있다.
1 현재 설정된 ntp서버 확인 : w32tm/dumpreg /subkey:parameters
*NTP서비스 오류시 : w32tm /unregister → w32tm /register → net start w32time
2 w32time서비스가 실행되고 잇는지 확인 : w32tm /query /configuration
3 네트워크시작시 w32time서비스가 자동으로 시작될 수 있게 함 : sc triggerinfo w32time start/networkon stop/networkoff
*workgroup환경에서는 w32time서비스를 자동으로 해두어도 리부팅 후 자동으로 올라오지 않아 트리거조건을 네트워크 시작/중지로 설정한다.
4 w32time서비스 시작 : net start w32time
* w32time서비스 정지 : net stop w32time
5 w32time관련 설정 확인 : w32tm /query /configuration
Enabled값을 1로 바꾸어주어야 한다.
6 레지스트리값을 바꾸어주어야하는데 cmd창에
reg add "HKLM\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer" /v "Enabled" /t "REG_DWORD" /d "1" /f 를 입력하거나 GUI로 해당 레지스트리값을 1로 수정해주면 된다.
7 w32tm /config /update : cmd창에서 수정한 레지스트리값을 적용
8 w32tm /query /configuration 다시 w32time관련 설정을 확인하여 Enabled값이 1로 바뀐것을 확인
9 w32tm /config /syncfromflags:manual /manualpeerlist:time.windows.com /update : 외부 ntp서버를 기준으로 시간동기화(time.windows.com)
10 w32tm /dumpreg /subkey:Parameters : ntp서버가 time.windows.com로 설정된것 확인
11 서비스 재시작 후 w32tm /resync nowait : 즉시 시간 동기화
* 방화벽이 활성화되어있으면 클라이언트에서 시간동기화를 할 수 없으므로 외부udp 123포트를 열어줘야 한다. (인바운드 규칙에 새로 추가)
참고 사이트
도메인환경에서 ntp서버설정
- 동일 도메인의 모든 DC들은 PDC를 내부 시간파트너로 사용한다.
- 도메인의 멤버인 컴퓨터는 기본적으로 시간클라이언트역할을 하므로 대부분의 경우 Windows 시간서비스를 구성할 필요가 없다.
- PDC는 외부에서 시간을 받도록 해야되는데 이것이 설정되지 않으면 이벤트로그에 W32Time서비스가 설정되지 않았다는 이벤트가 나타난다.
PDC에서 외부ntp서버 설정
w32tm /config /syncfromflags:manual /manualpeerlist:NTP서버이름 /reliable /update : 외부 ntp서버설정
w32tm/dumpreg /subkey:parameters : 설정된 ntp서버확인
*type
Nt5DS = 도메인 계층 구조에서 동기화
NTP = 외부시간 원본으로 동기화
NoSync = 시간을 동기화하지 않음
DC 또는 멤버서버에서 시간동기화
w32tm /config /syncfromflags:domhier /update : 도메인계층의 DC에서 시간동기화
net stop w32time
net start w32time
w32tm /stripchart /dataonly /computer:NTP Server이름 또는 ip : ntp서버와의 시간 동기화(시간차) 확인
추가.
- 현재 통신하는 NTP 정보 조회 : w32tm /query /status
- 시간서버와 재동기화 : w32tm /resync
- peer상태 확인 : w32tm /query /peers
- 시간 동기화 관련 설정 확인 : w32tm /query /configuration
- Windows Time serivice 등록 / 해제 : w32tm /register 또는 /unregister
- 동기화할 타임 서버 설정
- 0x01 : SpecialInterval
- 0x02 : UserAs FallbackOnly
- 0x04 SymmatricActive
- 0x08 Client
Time Service 관련 Registry Key값
- 시간 서비스 대상 정하기HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
- - 값이름 : AnnounceFlags
- - 데이터 형식 : DWORD
- - 데이터 : A(내부 H/W Clock 기준), 5(외부 시간 원본 사용)
위의 값 변경 후에는 NTP 서비스 재시작.
PDC마스터가 자기 자신과 동기화 되면 오류가 발생하므로 PDC 마스터에서는 해당 값을 변경하면 안됨.
- NTP 동기화 시도 시간 설정
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
- - 값이름 : SpecialPollInterval
- - 데이터형식 : DWORD
- - 데이터 : 900(15분)
- PDC에서 바라보는 외부NTP서버 설정(명령어를 통한 설정, 레지스트리편집을 통한 설정, 그룹정책을 통한 설정) : https://learn.microsoft.com/ko-kr/services-hub/health/remediation-steps-ad/configure-the-root-pdc-with-an-authoritative-time-source-and-avoid-widespread-time-skew
- w32tm 도구 및 설정 : https://learn.microsoft.com/ko-kr/windows-server/networking/windows-time-service/windows-time-service-tools-and-settings
-명령어 참고
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=leekh8412&logNo=100132406646
https://starion.tistory.com/246
'Windows > Etc' 카테고리의 다른 글
[ETC] Cal라이센스 (0) | 2022.11.04 |
---|---|
[ETC] 스위치, 허브, 라우터 (0) | 2022.08.25 |
[ETC] 퍼스트파티, 세컨드 파티, 써드파티(3rd party) (0) | 2021.05.06 |
[ETC] 윈도우 버전 및 릴리즈 정보 (0) | 2021.05.03 |
ip (0) | 2021.04.04 |