ntpq 피어 출력 설명

ntpq 피어 출력 설명

ntpq 명령에서 다음 출력을 얻습니다.

# ntpq -pn                                                     
 remote           refid            st t when poll reach delay  offset jitter 
================================================================================ 
*192.168.1.1          10.10.4.1     2 u  68y 1024 170   0.198   0.584  0.606 

68y칼럼은 무엇을 의미하나요 when? 문서에 따르면 마지막 패킷을 수신한 후 일정 시간이 지났다고 표시됩니다. 이것은 수신된 마지막 패킷이 68년 전에 수신되었음을 의미합니까? 믿을 수 있나요?

# ntpq --version 
ntpq 4.2.8p11

답변1

reach값은 이전에 원격 NTP 서버를 폴링하려는 8번의 시도 결과를 8진수로 표현한 것입니다. 8진수 값은 마지막 3번의 폴링 시도가 실패했음을 나타내는 170이진수 값에 매핑됩니다 .01111000

poll값은 현재 폴링 간격을 나타냅니다. 귀하의 경우 1024초가 기본 최대값입니다. 이는 ntpd원격 시간 서버 192.168.1.1에 대한 연결이 오랫동안 유지되었으며 합리적으로 양호한 delay, offset및 값 jitter으로 입증되는 것처럼 합리적으로 양호한 동기화가 달성되었음을 나타냅니다. 결과적으로 poll값을 최대 허용 값으로 조정했습니다.

reach값은 마지막 3번의 폴링 시도가 실패했음을 나타내 므로 poll값 1024는 구성된 원격 NTP 서버의 마지막 폴링 성공 이후 최소 3076초가 경과해야 함을 의미합니다.

내부에ntpq 하위 명령의 소스 코드, when값은 다음과 같이 계산됩니다.prettyinterval()기능. 이름에서 알 수 있듯이 시간 간격의 길이를 매개변수로 사용하고 이 매개변수는 함수로 계산됩니다.when(). 현재 타임스탬프와 마지막으로 수신된 타임스탬프 사이의 간격을 계산합니다. 또는 수신된 타임스탬프가 0인 경우 현재 타임스탬프와 마지막 참조 타임스탬프 사이의 간격을 계산합니다.

when()큰 값을 생성하는 유일한 방법은 마지막 수신 타임스탬프에 0이 아니지만 예기치 않게 작은 값이 있거나 마지막 수신 타임스탬프가 0인 경우인 것 같습니다.그리고마지막 참조 타임스탬프는 0이 아니지만 예상외로 작습니다.

내 추측으로는 원격 NTP 서버가 마지막으로 도달했을 때 응답으로 의미 없는 NTP 타임스탬프를 보냈을 수 있습니다. 아니면 로컬 시스템 시계가 정말 이상합니다. 몇 가지 간단한 계산 후에 원격 NTP 서버의 타임스탬프는 약 1954년일 수도 있고 시스템의 로컬 시간 개념은 약 2090년일 수도 있습니다.

관련 정보