NTPd 멀티캐스트 설정

NTPd 멀티캐스트 설정

NTP 멀티캐스트 클라이언트를 설정해야 합니다. 내 구성이 양호한지 확인하기 위해 NTP 멀티캐스트 서버를 설정해 보았습니다.

내 설정:

  • Centos 7 가상 머신 2대, 최신
  • 나는 virtualbox에서 2개의 가상 머신을 사용하고 있으며 promicius 모드를 사용하여 두 가상 머신을 모두 설정했습니다. 모두 허용

내 질문은 다음과 같습니다

  • 서버에서 멀티캐스트 항목은 레이어 16으로 보고됩니다. 레이어는 멀티캐스트와 관련되어 있습니까? 고객이 레벨이 낮다고 거부할까요? 멀티캐스트 서버가 하위 계층을 사용하도록 강제하는 방법은 무엇입니까?
  • 내 고객은 그렇지 않은 것 같습니다.바라보다내 서버는 내 키 파일이 동일하고 둘 다 키 1을 신뢰하지만

orphan 지시어를 사용해도 멀티캐스트 주소의 보고 수준이 낮아지지는 않는 것 같습니다.

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

클라이언트에서 내 구성 파일에는 주석 처리된 모든 조절 지시문이 있으며 다음과 같은 항목만 있습니다(그리고 드리프트 파일 등과 유사한 몇 가지가 더 있습니다).

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

계층 16은 구성된 시간 소스에 연결되어 있지 않기 때문에 NTP 서버가 유효한 시간을 믿지 않는다는 것을 의미합니다. ntpd서버 시스템이 시스템의 로컬 시계를 시간 소스로 신뢰하려면 다음 두 가지 옵션이 있습니다 .

  • 최신 접근 방식은 멀티캐스트 서버의 파일에 및 키워드를 지정하는 것입니다 tos orphan.tos orphanwaitntp.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 시간 소스와 함께 사용하면 안 됩니다.ntpd127.127.1.0 가짜 소스(항상 로컬 시계와 정확히 일치함)를 투표할 만큼 충분한 수의 외부 소스가 구성되고 서로 동기화되지 않는 한 실제 NTP 소스 대신 로컬 시계를 신뢰 하게 될 수 있습니다. 시계이므로 ntpd선택 알고리즘에서 지나치게 선호되는 경향이 있습니다).
server 127.127.1.0 iburst
fudge 127.127.1.0 stratum 8

로 시작하는 IP 주소는 127.127.*특별합니다 ntpd. 즉, 여기에 내장된 다양한 참조 클럭 드라이버를 나타냅니다 ntpd.

두 가지 방법 모두 시스템이 레이어 8을 사용하여 NTP를 통해 로컬 비동기 시스템 시계를 기반으로 UTC 시간을 제공하도록 하므로 실제 NTP 시간 소스(= 레이어 7 이하)에 합리적으로 직접 연결된 모든 시스템이 우선적으로 선택되어야 합니다. 이것.

버전이 지원하는 한 최신 방법을 사용하는 것이 좋습니다 ntpd. 이를 사용하면 시스템에 실제 NTP 시간 소스를 추가할 때 가짜 소스를 제거해야 한다는 것을 기억할 필요가 없기 때문입니다.

관련 정보