
NTP 멀티캐스트 클라이언트를 설정해야 합니다. 내 구성이 양호한지 확인하기 위해 NTP 멀티캐스트 서버를 설정해 보았습니다.
내 설정 :
- Centos 7의 VM 2개, 최신 버전
- 나는 virtualbox에서 2개의 가상 머신을 사용하고 있습니다. 둘 다 promicius 모드로 설정했습니다. 모두 허용합니다.
내 문제는 다음과 같습니다
- 서버에서 멀티캐스트 항목은 Stratum 16으로 보고됩니다. Stratum이 멀티캐스트와 관련이 있나요? 클라이언트가 계층이 낮다고 거부할까요? 멀티캐스트 서버에 대해 더 낮은 계층을 강제로 적용하려면 어떻게 해야 합니까?
- 내 고객은 그렇지 않은 것 같아요보다내 키 파일이 동일하고 양쪽에서 키 1을 신뢰하더라도 내 서버입니다.
고아에 대한 지침을 사용하면 멀티캐스트 주소에 대해 보고된 계층이 낮아지지 않는 것 같습니다.
ntpq -n -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*192.165.10.2 192.165.10.109 4 u 14 64 377 0.454 2.267 1.479
224.0.1.1 .MCST. 16 u - 64 0 0.000 0.000 0.000
그리고 내 클라이언트는 여전히 224.0.1.1 주소에서 서버를 찾을 수 없는 것 같습니다.
서버 vm, 내 호스트 시스템 및 클라이언트 vm에서 모두 서버 멀티캐스트 메시지를 확인했습니다(vm의 경우: tcpdump 사용, 호스트의 경우:wireshark 사용).
클라이언트에서 를 사용하면 ntpq -n -p
다음이 반환됩니다.
No association ID's returned
클라이언트에서 내 구성 파일에는 모든 제한 지침이 주석 처리되어 있으며 다음만 있습니다(그리고riftfile 등과 유사한 것도 있습니다).
multicastclient 224.0.1.1
keys /etc/ntp/keys
trustedkey 1
ntpd 클라이언트 로그는 다음을 제공합니다.
systemd[1]: Starting Network Time Service...
ntpd[11076]: ntpd [email protected] Tue Jun 23 15:38:18 UTC 2020 (1)
systemd[1]: Started Network Time Service.
ntpd[11077]: proto: precision = 0.052 usec
ntpd[11077]: 0.0.0.0 c01d 0d kern kernel time sync enabled
ntpd[11077]: ntp_io: estimated max descriptors: 1024, initial socket boundary: 16
ntpd[11077]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
ntpd[11077]: Listen and drop on 1 v6wildcard :: UDP 123
ntpd[11077]: Listen normally on 2 lo 127.0.0.1 UDP 123
ntpd[11077]: Listen normally on 3 enp0s3 192.165.10.107 UDP 123
ntpd[11077]: Listen normally on 4 lo ::1 UDP 123
ntpd[11077]: Listen normally on 5 enp0s3 fe80::a00:27ff:fec1:cc1 UDP 123
ntpd[11077]: Listening on routing socket on fd #22 for interface updates
ntpd[11077]: Listen normally on 6 multicast 224.0.1.1 UDP 123
ntpd[11077]: Joined 224.0.1.1 socket to multicast group 224.0.1.1
ntpd[11077]: 0.0.0.0 c016 06 restart
ntpd[11077]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM
ntpd[11077]: 0.0.0.0 c011 01 freq_not_set
ntpd[11077]: io_setbclient: Opened broadcast client on interface #3 enp0s3
답변1
Stratum 16은 구성된 시간 소스에 연결되어 있지 않기 때문에 NTP 서버가 유효한 시간을 가지고 있다고 믿지 않음을 나타냅니다. ntpd
서버 시스템에서 시스템의 로컬 시계를 시간 소스로 신뢰 하도록 하려면 다음 두 가지 옵션이 있습니다.
- 최신 방법은 멀티캐스트 서버의 파일 에
tos orphan
및 키워드를 지정하는 것입니다.tos orphanwait
ntp.conf
# If orphaned, serve others with this stratum.
tos orphan 8
# Wait for this many seconds before starting to serve others (default is 300 s)
tos orphanwait 1
- 오래된 방법은
ntpd
로컬 시계를 멀티캐스트 서버의 가짜 시간 소스로 사용하도록 지시하는 것입니다. 이 구성실제 NTP 시간 소스와 함께 사용하면 안 됩니다.,ntpd
충분한 수의 외부 소스가 구성되어 있고 127.127.1.0 의사 소스(이는 항상 로컬 시계와 완벽하게 일치하므로 선택 알고리즘에 의해 지나치게 선호되는 경향이 있습니다ntpd
).
server 127.127.1.0 iburst
fudge 127.127.1.0 stratum 8
로 시작하는 IP 주소는 127.127.*
특별한 경우에 사용됩니다 ntpd
. 이는 에 내장된 다양한 참조 클럭 드라이버를 나타냅니다 ntpd
.
이 두 방법 모두 시스템이 Stratum 8을 사용하여 NTP를 통해 로컬 비동기 시스템 시계를 기반으로 UTC 시간을 제공하도록 하므로 실제 NTP 시간 소스(= Stratum 7 이하)에 합리적으로 직접 연결된 모든 시스템은 이를 선호해야 합니다. 이 하나.
의 버전에서 지원할 때마다 최신 방식을 사용하는 것이 좋습니다 ntpd
. 이를 사용하면 시스템에 실제 NTP 시간 소스를 추가할 때 의사 소스를 제거하는 것을 기억할 필요가 없기 때문입니다.