시간이 지남에 따라 NTP 시간 동기화 루트 분산이 감소하는 이유는 무엇입니까?

시간이 지남에 따라 NTP 시간 동기화 루트 분산이 감소하는 이유는 무엇입니까?

이더넷 케이블을 통해 하나의 Raspberry Pi에 연결되고 Wi-Fi를 통해 30개의 다른 Raspberry Pi에 연결된 4G/LTE 인터넷 연결을 갖춘 Mikrotik 라우터로 구성된 테스트 네트워크 설정이 있습니다.

iperf저는 Raspberry Pi 노드 간의 클럭 드리프트를 최소화하여 netperf. 나는 라즈베리 파이를 소유하는 데 더 관심이 있습니다.서로 동의하다내가 그들의 존재 속에 있었던 한완전히 정확함, 연습의 전체 목적은 Wi-Fi 성능 테스트를 위한 우수한 대기 시간 데이터를 제공하는 것이기 때문입니다.

모든 Raspberry Pi 노드가 단일 공통 시간 소스에 액세스할 수 있도록 하고 4G/LTE 업링크에서 지터 및 대기 시간의 잠재적 영향을 최소화하기 위해 Mikrotik 라우터를 여러 인터넷 시간 소스에 대한 NTP 클라이언트로 구성했습니다.

  • tic.ntp.telstra.net
  • toc.ntp.telstra.net
  • 0.au.pool.ntp.org
  • 1.au.pool.ntp.org
  • 2.au.pool.ntp.org
  • 3.au.pool.ntp.org

그리고 로컬 LAN용 NTP 서버로 구성합니다(유니캐스트 모드만 지원).

Mikrotik은 (LTE 표준에 따라) 완벽하게 합리적인 타이밍 특성으로 인터넷 서버와 원활하게 동기화하는 것 같습니다.

Mikrotik NTP 클라이언트 상태:

         enabled: yes
            mode: unicast
         servers: tic.ntp.telstra.net,toc.ntp.telstra.net,0.au.pool.ntp.org,1.au.pool.ntp.org,2.au.p
                  3.au.pool.ntp.org
      freq-drift: 3.611 PPM
          status: synchronized
   synced-server: toc.ntp.telstra.net
  synced-stratum: 2
   system-offset: -0.972 ms

Mikrotik NTP 피어 타이밍 데이터:

type="ucast-client" address=203.14.0.250 refid="203.36.227.3" stratum=2 hpoll=10 ppoll=10 root-delay=55.221 ms 
   root-disp=0.885 ms offset=11.512 ms delay=55.956 ms disp=40.266 ms jitter=49.287 ms 

 type="ucast-client" address=27.124.125.250 refid="162.159.200.1" stratum=4 hpoll=10 ppoll=10 root-delay=3.692 ms 
   root-disp=2.838 ms offset=-5.166 ms delay=22.56 ms disp=0.119 ms jitter=15.666 ms 

 type="ucast-client" address=139.99.222.72 refid="17.253.66.253" stratum=2 hpoll=10 ppoll=10 root-delay=0.305 ms 
   root-disp=1.113 ms offset=-3.321 ms delay=74.975 ms disp=0.173 ms jitter=14.038 ms 

 type="ucast-client" address=13.55.50.68 refid="203.206.205.83" stratum=3 hpoll=10 ppoll=10 root-delay=31.066 ms 
   root-disp=52.902 ms offset=-3.031 ms delay=81.468 ms disp=0.184 ms jitter=13.174 ms 

 type="ucast-client" address=194.0.5.123 refid="8.145.32.135" stratum=2 hpoll=10 ppoll=10 root-delay=27.084 ms 
   root-disp=33.615 ms offset=-0.383 ms delay=79.435 ms disp=0.083 ms jitter=12.289 ms 

 type="ucast-client" address=203.14.0.251 refid="58.163.113.212" stratum=2 hpoll=10 ppoll=10 root-delay=38.833 ms 
   root-disp=2.258 ms offset=0.913 ms delay=34.001 ms disp=0.157 ms jitter=10.431 ms

31개의 Raspberry Pi는 모두 64비트 버전의 Raspberry Pi OS Lite(bullseye)를 실행하고 있습니다. 표준 apt 패키지를 통해 ntpd설치 했습니다 ntpstat. ntpd교체되어 차단되었습니다 systemd-timesyncd. Pi NTP 클라이언트는 Mikrotik에서 실행되는 NTP 서버를 유일한 시간 소스로 사용하도록 구성됩니다.

ntpq -pnRaspberry Pi에서 실행하면 합리적인 결과가 반환됩니다.

Mikrotik에 직접 연결된 노드에서:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*10.3.0.126      203.14.0.251     3 u   48  128  377    0.506   +0.088   0.232

대표적인 Wi-Fi 노드에서 대기 시간과 지터는 몇 밀리초 더 높습니다.

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*10.3.0.126      203.14.0.251     3 u   76  128  377    1.541   -1.230   2.011

그러나 ntpstat유선 Raspberry Pi에서 이것을 실행하면 시간 동기화 품질이 최대 70밀리초에 불과하고 시간이 지남에 따라 악화된다는 말을 들었습니다.

synchronised to NTP server (10.3.0.126) at stratum 4
   time correct to within 70 ms
   polling server every 128 s

이 "시간 보정" 값은 루트 분산 및 루트 지연으로부터 계산됩니다. ntpq -c rv몇 분에 걸쳐 반복적으로 실행 하면 rootdisp값이 단조롭게 증가합니다.

pi@wired:~ $ ntpq -c rv
associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync,
version="ntpd [email protected] Wed Sep 23 11:46:38 UTC 2020 (1)",
processor="aarch64", system="Linux/5.10.92-v8+", leap=00, stratum=4,
precision=-22, rootdelay=73.314, rootdisp=32.686, refid=10.3.0.126,
reftime=e5c848b0.ab2d24bc  Tue, Mar  1 2022 15:24:32.668,
clock=e5c84927.24f1e0bd  Tue, Mar  1 2022 15:26:31.144, peer=41018, tc=7,
mintc=3, offset=-0.165471, frequency=-16.004, sys_jitter=0.000000,
clk_jitter=2.031, clk_wander=0.093

pi@wired:~ $ ntpq -c rv
associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync,
version="ntpd [email protected] Wed Sep 23 11:46:38 UTC 2020 (1)",
processor="aarch64", system="Linux/5.10.92-v8+", leap=00, stratum=4,
precision=-22, rootdelay=73.314, rootdisp=32.896, refid=10.3.0.126,
reftime=e5c848b0.ab2d24bc  Tue, Mar  1 2022 15:24:32.668,
clock=e5c84934.f6a1b6af  Tue, Mar  1 2022 15:26:44.963, peer=41018, tc=7,
mintc=3, offset=-0.165471, frequency=-16.004, sys_jitter=0.000000,
clk_jitter=2.031, clk_wander=0.093

pi@wired:~ $ ntpq -c rv
associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync,
version="ntpd [email protected] Wed Sep 23 11:46:38 UTC 2020 (1)",
processor="aarch64", system="Linux/5.10.92-v8+", leap=00, stratum=4,
precision=-22, rootdelay=73.314, rootdisp=37.906, refid=10.3.0.126,
reftime=e5c848b0.ab2d24bc  Tue, Mar  1 2022 15:24:32.668,
clock=e5c84a83.a3e47e0e  Tue, Mar  1 2022 15:32:19.640, peer=41018, tc=7,
mintc=3, offset=-0.165471, frequency=-16.004, sys_jitter=0.000000,
clk_jitter=2.031, clk_wander=0.093

pi@wired:~ $ ntpq -c rv
associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync,
version="ntpd [email protected] Wed Sep 23 11:46:38 UTC 2020 (1)",
processor="aarch64", system="Linux/5.10.92-v8+", leap=00, stratum=4,
precision=-22, rootdelay=73.314, rootdisp=51.003, refid=10.3.0.126,
reftime=e5c84c4e.ab29eed3  Tue, Mar  1 2022 15:39:58.668,
clock=e5c84d42.f35d7000  Tue, Mar  1 2022 15:44:02.950, peer=41018, tc=7,
mintc=3, offset=-0.714738, frequency=-16.162, sys_jitter=0.000000,
clk_jitter=1.910, clk_wander=0.103

시간이 지남에 따라 뿌리 분산이 증가하는 원인은 무엇이며 이를 해결하는 방법은 무엇입니까?

저는 절대 시간 정확도에 관심이 없고 노드 간 오류만 고려하기 때문에 루트 분산과 루트 대기 시간(따라서 보고된 "정확도" ntpstat)을 무시하고 Raspberry Pi-to-Mikrotik 분산/에 전적으로 의존할 수 있습니다. 대기 시간/오프셋 표시기?

동기화를 개선하기 위해 어떤 방식으로든 이 테스트 설정의 NTP 스키마를 변경해야 합니까?

관련 정보