이 문서에서는 NTP(Network Time Protocol)의 일반적인 문제를 해결하는 방법에 대해 설명합니다.
Cisco는 NTP의 작동 방식과 Network Time Protocol에 대한 지식을 잘 이해할 것을 권장합니다.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
NTP(Network Time Protocol)는 컴퓨터를 인터넷 시간 서버 또는 라디오, 위성 수신기 또는 전화 모뎀 서비스와 같은 다른 소스와 동기화하기 위해 널리 사용됩니다.LAN에서는 일반적으로 밀리초 미만의 정확성과 WAN에서는 최대 몇 밀리초 미만의 정확성을 제공합니다.일반적인 NTP 구성은 높은 정확성과 신뢰성을 얻기 위해 여러 개의 이중화 서버와 다양한 네트워크 경로를 사용합니다.
NTP는 시간을 현재 버전의 NTP와 동기화하기 위해 Marzullo 알고리즘을 사용합니다.공용 인터넷을 통해 10밀리초 이내에 시간을 유지할 수 있으며 LAN을 통해 더 나은 성능을 제공할 수 있습니다.NTP 시간 서버는 TCP/IP 제품군 내에서 작동하며 UDP(User Datagram Protocol) 포트 123을 사용합니다.
NTP 서버는 일반적으로 네트워크를 동기화할 수 있는 단일 시간 참조를 사용하는 전용 NTP 디바이스입니다.이 시간 참조는 대부분 UTC(Coordinated Universal Time) 소스입니다.UTC는 인터넷을 통한 원자 시계, 특기적인 장파 무선 송출 또는 GPS(Global Positioning System) 네트워크를 통해 배포되는 글로벌 시간 규모입니다.보안, 보호, 정확성, 합법성 및 제어에 전용 NTP 서버가 필요합니다.
NTP 알고리즘은 이 시간 참조를 사용하여 시스템 또는 네트워크 시계를 진행하거나 후퇴 할 양을 결정합니다.NTP는 타임스탬프 값, 오류 빈도 및 안정성을 분석합니다.NTP 서버는 참조 클럭과 그 자체의 품질을 추정합니다.
이 섹션에서는 NTP에서 발생할 수 있는 몇 가지 일반적인 문제를 나열하고 각각에 대한 솔루션을 제공합니다.
Active Directory에 있는 NTP 서버를 사용하도록 Cisco 라우터가 구성된 경우, Cisco 라우터는 NTP 서버에서 어떤 NTP 패킷도 수신하지 않습니다.이 문제는 Cisco 라우터가 NTP를 사용하고 Active Directory 도메인이 W32Time 서비스를 사용하기 때문에 발생합니다.W32Time은 NTP의 하위 집합인 SNTP(Simple Network Time Protocol)를 시간 동기화에 사용합니다.SNTP와 NTP는 동일한 네트워크 패킷 형식을 사용합니다.SNTP와 NTP의 주요 차이점은 SNTP는 NTP에서 제공하는 오류 검사 및 필터링 기능을 제공하지 않는다는 것입니다.Cisco 라우터 및 스위치는 NTP를 사용하며 NTP v3에서 제공하는 모든 오류 검사 및 필터링 기능을 허용합니다.
Windows W32Time은 NTP를 대신 내부 SNTP 구현임을 보여줍니다. W32Time과 동기화하려고 시도하는 Cisco IOS-NTP는 W32Time에 전송하는 고유한 루트 분산 값을 얻으며, 이로 인해 Cisco IOS-NTP가 동기화되는 데 많은 비용이 듭니다.Cisco IOS-NTP의 루트 분산 값은 1000ms보다 높으므로 자체 동기화(시계 선택 절차)가 해제됩니다. Cisco IOS 기반 라우터는 NTP의 전체 RFC 구현을 실행하므로 SNTP 서버에 동기화하지 않습니다.이 경우 show ntp associations detail 명령의 출력에서는 서버가 insane, invalid로 플래그가 지정되었음을 보여줍니다.루트 분산 값이 1000ms를 초과하므로 Cisco IOS NTP 구현에서 연결을 거부합니다.Cisco IOS를 실행하는 라우터는 W32Time 서비스를 실행하는 Windows 시스템인 경우 NTP 서버와 동기화할 수 없습니다.서버가 동기화되지 않으면 라우터가 서버에서 패킷을 전송하고 수신할 수 없습니다.
이 문제를 해결하고 Cisco IOS 기반 라우터를 동기화하려면 인터넷의 권한 있는 NTP 서버, 특정 플랫폼에서 NTPD 또는 GPS를 실행하는 UNIX 박스를 사용합니다.Windows 시스템에서 W32Time 서비스를 실행하지 않도록 선택할 수도 있습니다.대신 NTP 4.x를 사용할 수 있습니다.모든 버전의 Windows 2000 이상은 NTP 서버 역할을 할 수 있습니다.그런 다음 네트워크의 다른 시스템에서 NTP 서버를 사용하여 시간을 동기화할 수 있습니다.
다음과 같은 이유로 라우터가 공용 시간 서버와 동기화할 수 없습니다.
UDP 포트 123 패킷이 통과하도록 허용하지 않는 액세스 제어 목록
라우터의 잘못된 컨피그레이션(예: clock timezone 및 clock summer-time 명령)이 라우터에 없습니다.
공용 시간 서버가 다운되었습니다.
NT 또는 UNIX의 NTP 서버 소프트웨어가 잘못 구성되었습니다.
더 많은 트래픽이 라우터에 있고 더 많은 트래픽이 서버로 이동하는 중입니다.
NTP 마스터 동기화 중단 및 라우터가 주기적으로 동기화 중단
높은 CPU 사용률
서버와 라우터 간의 높은 오프셋 등(show ntp association detail 명령을 사용하여 확인)
이 오류 메시지는 센서가 해당 계층을 15로 보고하는 서버에 동기화하려고 할 때 나타납니다. 서버 계층 값이 15이면 센서 계층 값 16이 잘못되었기 때문입니다.따라서 센서가 대신 서버를 거부하고 Strata가 너무 높게 표시됩니다. 센서에서 마스터 NTP 서버 오류 메시지에 대한 간접 정보가 너무 많습니다.
NTP는 stratum의 개념을 사용하여 신뢰할 수 있는 시간에서 머신을 벗어난 NTP 홉의 수를 설명합니다.이 오류 메시지는 NTP 서버에서 보고한 NTP 계층이 너무 높음을 나타냅니다.stratum은 서버가 정밀도 참조 클럭에서 얼마나 멀리 제거되었는지를 나타내는 1에서 15 사이의 숫자입니다.일반적으로 원자성 클럭에 직접 동기화된 시스템은 그 속도를 하나로 보고합니다.계층 1개의 NTP 서버에 동기화되지만 다른 호스트의 NTP 서버 역할도 하는 호스트는 해당 계층을 해당 호스트에 2로 보고하며, 각 연속 서버 레이어는 상위 계층보다 한 단계 높은 계층이 있습니다.
Linux 호스트를 NTP 서버로 사용하는 경우, 자동으로 계층을 계산하지 않고 보고하는 단계를 하드 코딩합니다.Linux 또는 UNIX 상자인 경우 NTP 서버는 /etc/ntp.conf 파일로 구성되며, fdge 명령을 사용하여 stratum을 하드 코딩합니다.서버는 항상 클라이언트에 퍼지 값보다 큰 계층 값을 보고합니다.