본문 바로가기

IT인생_스크랩/Windows

Windows NTP 서버 설정 하기

Windows에는 Kerberos 인증 프로토콜에 필요한 W32Time 시간 서비스 도구가 포함되어 있습니다. Windows 시간 서비스의 목적은 조직에서 Microsoft Windows 2000 이상 버전을 실행하는 모든 컴퓨터가 공통 시간을 사용하도록 하는 것입니다.

적절한 공통 시간 사용을 보장하기 위해 Windows 시간 서비스는 인증을 제어하는 계층적 관계를 사용하고 루프를 허용하지 않습니다. 기본적으로 Windows 기반 컴퓨터는 아래의 계층 구조를 사용합니다.
  • 모든 클라이언트 데스크톱 컴퓨터는 인증 도메인 컨트롤러를 인바운드(Inbound) 시간 파트너로 지정합니다.
  • 모든 구성원 서버는 클라이언트 데스크톱 컴퓨터와 같은 프로세스를 따릅니다.
  • 도메인의 모든 도메인 컨트롤러는 PDC(주 도메인 컨트롤러) 작업 마스터를 인바운드(Inbound) 시간 파트너로 지정합니다.
  • 모든 PDC 작업 마스터는 도메인의 계층 구조를 따라 인바운드(Inbound) 시간 파트너를 선택합니다.
이 계층에서 포리스트의 루트에 있는 PDC 작업 마스터는 조직에 대한 권한을 얻게 됩니다. 하드웨어 원본에서 시간을 모으도록 권한을 보유한 시간 서버를 구성하는 것이 좋습니다. 내부 시간 원본과 동기화하도록 권한을 보유한 시간 서버를 구성하는 경우에는 인증이 되지 않습니다. 또한, 서버와 독립 실행형 클라이언트의 시간 수정 설정 값을 줄이는 것도 좋습니다. 이렇게 하면 도메인에 더 정확한 시간과 향상된 보안이 제공됩니다.

내부 하드웨어 클럭을 사용하도록 Windows 시간 서비스 구성

loadTOCNode(2, 'summary'); 경고 레지스트리 편집기나 다른 방법을 사용하여 레지스트리를 잘못 수정하는 경우 심각한 문제가 발생할 수 있습니다. 이 문제를 해결하려면 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft는 문제에 대해 해결을 보증하지 않습니다. 레지스트리의 수정에 따른 모든 책임은 사용자에게 있습니다.

외부 시간 원본을 사용하지 않고 PDC 마스터를 구성하려면 PDC 마스터에서 알림 플래그를 변경해야 합니다. PDC 마스터는 도메인에 대한 포리스트 루트 PDC 마스터 역할을 갖고 있는 서버입니다. 이렇게 구성하면 PDC 마스터가 자신을 신뢰할 수 있는 시간 원본으로 알리고 기본 제공된 CMOS(Complementary Metal Oxide Semiconductor) 클럭을 사용합니다. 내부 하드웨어 클럭을 사용하여 PDC 마스터를 구성하려면 다음과 같이 하십시오.
  1. 시작, 실행을 차례로 누르고 regedit를 입력한 다음 확인을 누릅니다.
  2. 다음 레지스트리 하위 키를 찾아 누릅니다.
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
  3. 오른쪽 창에서 AnnounceFlags를 마우스 오른쪽 단추로 누른 다음 수정을 누릅니다.
  4. DWORD 값 편집에서 값 데이터 상자에 A를 입력한 다음 확인을 누릅니다.
  5. 레지스트리 편집기를 종료합니다.
  6. 명령 프롬프트에서 Windows 시간 서비스를 다시 시작하도록 다음 명령을 입력한 다음 Enter 키를 누릅니다.
    net stop w32time && net start w32time
참고 PDC 마스터가 자기 자신과 동기화하도록 구성되어서는 안 됩니다. PDC 마스터가 자기 자신과 동기화하도록 구성되면 응용 프로그램 로그에 다음 유사한 이벤트가 기록됩니다.

시간 제공자 NtpClient에 연결할 수 없거나 현재 192.168.1.1 (ntp.m|0x0|192.168.1.1:123->192.168.1.1:123)로부터 유효하지 않은 데이터를 받는 중입니다.

8번의 연결 시도 후에도 수동으로 구성된 피어 192.168.1.1(으)로부터 응답을 받지 못했습니다. 이 피어는 시간 원본으로 삭제되고 NtpClient에서는 동기화할 항목에서 새 피어를 찾습니다.

시간 제공자 NtpClient가 하나 또는 그 이상의 시간 원본에서 시간을 얻도록 구성되었지만, 현재 어떤 시간 원본에도 액세스할 수 없고 960분 동안 원본에 연결이 시도되지 않았습니다. NtpClient에 정확한 시간 원본이 없습니다.

PDC 마스터가 외부 시간 원본을 사용하지 않고 실행되면 응용 프로그램 로그에 다음과 유사한 이벤트가 기록됩니다.

시간 제공자 NtpClient: 이 컴퓨터는 시간 원본을 결정하는데 도메인 계층 구조를 사용하도록 구성되었지만, 이 컴퓨터가 포리스트의 루트에 있는 도메인에 대한 PDC 에뮬레이터이기 때문에, 도메인 계층 구조에는 시간 원본으로 사용할 수 있는 위 계층에 있는 컴퓨터가 없습니다. 신뢰할 수 있는 시간 서비스를 루트 도메인에 구성하거나 수동으로 PDC를 구성하여 외부 시간 원본과 동기화하는 것을 권장합니다. 그렇지 않은 경우, 이 컴퓨터는 도메인 계층 구조에서 권한있는 시간 원본으로 작동하게 됩니다. 만일 이 컴퓨터에 외부 시간 원본을 구성하지 않거나 사용하지 않는 경우, NtpClient를 사용하지 않도록 설정할 수 있습니다.

이 텍스트는 외부 시간 원본의 사용을 상기시키는 내용이므로 무시해도 됩니다.

외부 시간 원본을 사용하도록 Windows 시간 서비스 구성

loadTOCNode(2, 'summary'); 외부 시간 원본과 동기화하도록 내부 시간 서버를 구성하려면 다음과 같이 하십시오.
  1. 서버 유형을 NTP로 변경합니다. 이렇게 하려면 다음과 같이 하십시오.
    1. 시작, 실 행을 차례로 누르고 regedit를 입력한 다음 확인을 누릅니다.
    2. 다음 레지스트리 하위 키를 찾아 누릅니다.
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
    3. 오른쪽 창에서 Type을 마우스 오른쪽 단추로 누른 다음 수정을 누릅니다.
    4. 값 편집에서 값 데이터 상자에 NTP를 입력한 다음 확인을 누릅니다.
  2. AnnounceFlags를 5로 설정합니다. 이렇게 하려면 다음과 같이 하십시오.
    1. 다음 레지스트리 하위 키를 찾아 누릅니다.
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
    2. 오른쪽 창에서 AnnounceFlags를 마우스 오른쪽 단추로 누른 다음 수정을 누릅니다.
    3. DWORD 값 편집에서 값 데이터 상자에 5를 입력한 다음 확인을 누릅니다.
  3. NTPServer를 설정합니다. 이렇게 하려면 다음과 같이 하십시오.
    1. 다음 레지스트리 하위 키를 찾아 누릅니다.
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\Enabled
    2. 오른쪽 창에서 Enabled를 마우스 오른쪽 단추로 누른 다음 수정을 누릅니다.
    3. DWORD 값 편집에서 값 데이터 상자에 1을 입력한 다음 확인을 누릅니다.
  4. 시간 원본을 지정합니다. 이렇게 하려면 다음과 같이 하십시오.
    1. 다음 레지스트리 하위 키를 찾아 누릅니다.
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
    2. 오른쪽 창에서 NtpServer를 마우스 오른쪽 단추로 누른 다음 수정을 누릅니다.
    3. 값 편집에서 값 데이터 상자에 Peers 를 입력한 다음 확인을 누릅니다.

      참고 Peers 는 컴퓨터가 타임스탬프를 얻는 피어 목록의 자리 표시자이며, 이 목록은 공백으로 구분됩니다. 표시되는 각 DNS 이름은 고유해야 하고 각 DNS 이름 끝에 ,0x1을 추가해야 합니다. 각 DNS 이름 끝에 ,0x1을 추가하지 않으면 5단계에서 변경한 사항이 적용되지 않습니다.
  5. 폴링 간격을 선택합니다. 이렇게 하려면 다음과 같이 하십시오.
    1. 다음 레지스트리 하위 키를 찾아 누릅니다.
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
    2. 오른쪽 창에서 SpecialPollInterval을 마우스 오른쪽 단추로 누른 다음 수정을 누릅니다.
    3. DWORD 값 편집에서 값 데이터 상자에 TimeInSeconds 를 입력한 다음 확인을 누릅니다.

      참고 TimeInSeconds 는 폴링 간격으로 설정할 초의 자리 표시자입니다. 권장 값은 900(십진수)입니다. 이 값은 15분마다 폴링하도록 시간 서버를 구성합니다.
  6. 시간 수정 설정을 구성합니다. 이렇게 하려면 다음과 같이 하십시오.
    1. 다음 레지스트리 하위 키를 찾아 누릅니다.
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxPosPhaseCorrection
    2. 오른쪽 창에서 MaxPosPhaseCorrection을 마우스 오른쪽 단추로 누른 다음 수정을 누릅니다.
    3. DWORD 값 편집단위 상자에서 10진수를 선택합니다.
    4. DWORD 값 편집에서 값 데이터 상자에 TimeInSeconds 를 입력한 다음 확인을 누릅니다.

      참고 TimeInSeconds 는 1시간(3600)이나 30분(1800)과 같은 적당한 값의 자리 표시자입니다. 폴링 간격, 네트워크 상태 및 외부 타임 원본에 따라 값을 선택합니다.
    5. 다음 레지스트리 하위 키를 찾아 누릅니다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxNegPhaseCorrection
    6. 오른쪽 창에서 MaxNegPhaseCorrection을 마우스 오른쪽 단추로 누른 다음 수정을 누릅니다.
    7. DWORD 값 편집단위 상자에서 10진수를 선택합니다.
    8. DWORD 값 편집에서 값 데이터 상자에 TimeInSeconds 를 입력한 다음 확인을 누릅니다.

      참고 TimeInSeconds 는 1시간(3600)이나 30분(1800)과 같은 적당한 값의 자리 표시자입니다. 폴링 간격, 네트워크 상태 및 외부 타임 원본에 따라 값을 선택합니다.
  7. 레지스트리 편집기를 종료합니다.
  8. 명령 프롬프트에서 Windows 시간 서비스를 다시 시작하도록 다음 명령을 입력한 다음 Enter 키를 누릅니다.
    net stop w32time && net start w32time

문제 해결

loadTOCNode(2, 'summary'); Windows 시간 서비스가 올바르게 작동하려면 네트워크 인프라가 제대로 작동해야 합니다. Windows 시간 서비스에 영향을 미치는 가장 일반적인 문제는 다음과 같습니다.
  • 작동하지 않는 게이트웨이와 같은 TCP/IP 연결 문제가 있습니다.
  • 이름 확인 서비스가 제대로 작동하지 않습니다.
  • 특히 대기 시간이 긴 WAN 링크를 통해 동기화가 이루어질 때 네트워크에서 다량의 지연이 발생합니다.
  • Windows 시간 서비스에서 정확하지 않은 시간 원본과 동기화하려고 합니다.
Netdiag.exe 유틸리티를 사용하여 네트워크 관련 문제를 해결하는 것이 좋습니다. Netdiag.exe는 Windows Server 2003 Support Tools 패키지에 포함되어 있습니다. Netdiag.exe에서 사용할 수 있는 명령줄 매개 변수의 전체 목록을 보려면 Support Tools Help를 참조하십시오. 문제가 여전히 해결되지 않으면 Windows 시간 서비스 디버그 로그를 설정할 수 있습니다. 디버그 로그에는 매우 자세한 정보가 포함될 수 있기 때문에 Windows 시간 서비스 디버그 로그를 설정하는 경우에는 Microsoft 고객기술지원부에 문의하는 것이 좋습니다.

Microsoft 고객기술지원부 전화 번호의 전체 목록과 기술 지원 비용에 대한 정보는 다음 Microsoft 웹 사이트를 참조하십시오.
기술지원 서비스 안내 (http://support.microsoft.com/default.aspx?scid=fh;ko;serviceoverview)
참고 특정 업데이트로 문제를 해결할 수 있다고 Microsoft 기술 지원 전문가가 판단할 경우 지원 요청에 따른 일반적 비용이 취소될 수도 있습니다. 특정 업데이트가 필요하지 않은 추가 지원 질문과 문제에는 일반 지원 비용이 적용됩니다.

추가 정보
NTP는 여러 가지 패킷 종류를 지원합니다. 일반적으로 NTP 클라이언트와 SNTP(Simple Network Time Protocol) 클라이...

loadTOCNode(1, 'moreinformation');
NTP 는 여러 가지 패킷 종류를 지원합니다. 일반적으로 NTP 클라이언트와 SNTP(Simple Network Time Protocol) 클라이언트는 클라이언트 모드 요청 패킷을 NTP 서버로 보냅니다. NTP 서버는 서버 모드 패킷을 사용하여 응답합니다. 클라이언트 모드 패킷 대신 대칭 활성 모드 패킷을 NTP 서버로 보내도록 W32time 서비스를 구성하려면 명령 프롬프트에 다음 명령을 입력합니다.
w32tm /config /manualpeerlist:<server>,0x4 /syncfromflags:MANUAL
Note 0x8 플래그를 사용하여 W32time이 강제로 대칭 활성 모드 패킷 대신 일반 클라이언트 요청을 보내도록 합니다. NTP 서비스는 일반적으로 일반 클라이언트 요청에 회신합니다.

신뢰할 수 있는 시간 원본 구성

loadTOCNode(2, 'moreinformation'); 신뢰할 수 있는 시간 원본으로 구성된 컴퓨터는 시간 서비스의 루트로 나타납니다. Windows 시간 서비스의 루트는 도메인에 대해 권한을 보유한 서버이며 일반적으로 외부 NTP 서버나 하드웨어 장치에서 시간을 검색하도록 구성됩니다. 시간 서버를 신뢰할 수 있는 시간 원본으로 구성하여 도메인 계층 전반에서 시간이 전송되는 방식을 최적화할 수 있습니다. 도메인 컨트롤러가 신뢰할 수 있는 시간 원본으로 구성되어 있으면 Net Logon 서비스는 도메인 컨트롤러가 네트워크에 로그온할 때 도메인 컨트롤러를 신뢰할 수 있는 시간 원본이라고 알립니다. 다른 도메인 컨트롤러가 동기화할 시간 원본을 찾을 때 신뢰할 수 있는 원본이 있으면 이 원본을 가장 먼저 선택합니다.

수동으로 지정된 동기화

loadTOCNode(2, 'moreinformation'); 수동으로 지정된 동기화에서는 컴퓨터가 시간을 얻는 단일 피어나 피어 목록을 지정할 수 있습니다. 컴퓨터가 도메인 구성원이 아니면 지정된 시간 원본과 동기화하도록 수동으로 구성되어야 합니다. 기본적으로 도메인의 구성원인 컴퓨터는 도메인 계층에서 동기화하도록 구성됩니다. 수동으로 지정된 동기화는 도메인의 포리스트 루트나 도메인에 가입하지 않은 컴퓨터에 가장 유용합니다. 도메인에 대해 권한을 보유한 컴퓨터와 동기화할 외부 NTP 서버를 수동으로 지정할 경우 신뢰할 수 있는 시간을 제공합니다. 하지만 도메인에 높은 수준의 정확성과 보안을 제공하려면 하드웨어 클럭과 동기화하도록 도메인에 대해 권한을 보유한 컴퓨터를 구성하는 것이 좋습니다.

하 드웨어 시간 원본이 없으면 W32time이 NTP 유형으로 구성됩니다. MaxPosPhaseCorrection 및 MaxNegPhaseCorrection 레지스트리 항목을 다시 구성해야 합니다. 권장 값은 시간 원본, 네트워크 상태 및 보안 요구 사항에 따라 15분 이하가 되어야 합니다. 이 요구 사항은 시간 동기화 서브넷에서 포리스트 루트 시간 원본으로 구성된 신뢰할 수 있는 모든 시간 원본에도 적용됩니다. 이러한 레지스트리 항목에 대한 자세한 내용은 이 문서의 "Windows 시간 서비스 레지스트리 항목" 절을 참조하십시오.

참고 수동으로 지정된 시간 원본은 특정 시간 제공자가 이러한 시간 원본에 대해 작성되지 않으면 인증되지 않으므로 공격에 취약합니다. 또한 컴퓨터가 인증 도메인 컨트롤러 대신 수동으로 지정된 원본과 동기화하는 경우 두 컴퓨터가 동기화되지 않을 수도 있습니다. 이러한 시나리오에서는 Kerberos 인증이 실패하고 인쇄나 파일 공유와 같이 네트워크 인증이 필요한 다른 작업도 실패할 수 있습니다. 포리스트 루트만 외부 원본과 동기화하도록 구성되어 있으면 포리스트에 있는 다른 모든 컴퓨터가 서로 동기화된 상태를 유지합니다. 이러한 구성에서는 재연 공격이 어려워집니다.

사용 가능한 모든 동기화 메커니즘

loadTOCNode(2, 'moreinformation'); "사용 가능한 모든 동기화 메커니즘" 옵션은 네트워크의 사용자에게 가장 유용한 동기화 방법입니다. 이 방법을 사용하면 도메인 계층과 동기화할 수 있으며 도메인 계층을 사용할 수 없는 경우에는 구성에 따라 다른 시간 원본도 제공할 수 있습니다. 클라이언트가 도메인 계층과 시간을 동기화할 수 없는 경우 시간 원본은 NtpServer 설정에서 지정된 시간 원본으로 자동으로 변경됩니다. 이 동기화 방법은 클라이언트에 정확한 시간을 제공할 가능성이 가장 높습니다.

Windows 시간 서비스 레지스트리 항목

loadTOCNode(2, 'moreinformation'); 다음 레지스트리 항목은 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\ 아래에 있습니다.
표 축소표 확대
레지스트리 항목 MaxPosPhaseCorrection
경로 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
참고 이 항목은 서비스에서 수행하는 최대 양의 시간 수정을 초 단위로 지정합니다. 서비스에서 이 값보다 큰 변경이 필요하다고 결정하면 이벤트를 기록합니다. 0xFFFFFFFF는 항상 시간을 수정하는 것을 의미하는 특별한 경우입니다. 도메인 구성원에 대한 기본값은 0xFFFFFFFF이고 독립 실행형 클라이언트와 서버에 대한 기본값은 54,000이거나 15시간입니다.
표 축소표 확대
레지스트리 항목 MaxNegPhaseCorrection
경로 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
참고 이 항목은 서비스에서 수행하는 최대 음의 시간 수정을 초 단위로 지정합니다. 서비스에서 이 값보다 큰 변경이 필요하다고 결정하면 대신 이벤트를 기록합니다. -1은 항상 시간을 수정하는 것을 의미하는 특별한 경우입니다. 도메인 구성원에 대한 기본값은 0xFFFFFFFF이고 독립 실행형 클라이언트와 서버에 대한 기본값은 54,000이거나 15시간입니다.
표 축소표 확대
레지스트리 항목 MaxPollInterval
경로 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
참고 이 항목은 시스템 폴링 간격으로 허용되는 최대 간격을 초 단위로 지정합니다. 시스템은 예약된 간격에 따라 폴링해야 하지만 제공자는 요청될 때 샘플을 생성하는 것을 거부할 수 있습니다. 도메인 구성원에 대한 기본값은 10이고 독립 실행형 클라이언트와 서버에 대한 기본값은 15입니다.
표 축소표 확대
레지스트리 항목 SpecialPollInterval
경로 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
참고 이 항목은 수동 피어의 특수 폴링 간격을 초 단위로 지정합니다. SpecialInterval 0x1 플래그가 설정되어 있으면 W32Time에서는 운영 체제에서 결정된 폴링 간격 대신 이 폴링 간격을 사용합니다. 도메인 구성원에 대한 기본값은 3,600이고 독립 실행형 클라이언트와 서버에 대한 기본값은 604,800입니다.
표 축소표 확대
레지스트리 항목 MaxAllowedPhaseOffset
경로 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
참고 이 항목은 W32Time에서 클럭 속도를 사용하여 컴퓨터 클럭을 조정하려고 하는 최대 오프셋을 초 단위로 지정합니다. 오프셋이 이 속도보다 크면 W32Time에서 컴퓨터 클럭을 직접 설정합니다. 도메인 구성원에 대한 기본값은 300이고 독립 실행형 클라이언트와 서버에 대한 기본값은 1입니다.

참조
Windows 시간 서비스에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오. 816043  (http://suppo...

loadTOCNode(1, 'references');
Windows 시간 서비스에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
816043  (http://support.microsoft.com/kb/816043/ ) Windows 시간 서비스에서 디버그 로깅을 설정하는 방법
884776  (http://support.microsoft.com/kb/884776/ ) 큰 시간 오프셋을 방지하도록 Windows 시간 서비스 구성
321708  (http://support.microsoft.com/kb/321708/ ) HOWTO: Windows 2000에서 네트워크 진단 도구(Netdiag.exe) 사용
314054  (http://support.microsoft.com/kb/314054/ ) Windows XP에서 권한을 보유한 시간 서버를 구성하는 방법
216734  (http://support.microsoft.com/kb/216734/ ) Windows 2000에서 권한을 보유한 시간 서버를 구성하는 방법