NTP

Allikas: Imre kasutab arvutit
Redaktsioon seisuga 11. aprill 2025, kell 13:56 kasutajalt Imre (arutelu | kaastöö)
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

Mõisted

  • NTP - Network Time Protocol
  • PTP - Precision Time Protocol
  • NTS - Network Time Security
  • TSC - time-stamp counter
  • PHC - PTP hardware clock
  • RTC - Real Time Clock
  • kernel's system clock
  • jiffie

Misc

Kasulikud lisamaterjalid

Misc

rtc ehk cmos ehk bios clock

# cat /sys/class/rtc/rtc0/time 
23:53:25

tsc vms ticks väärtus, 84252 on peaegu üks tund sekundites (mis vastab arvuti uptime väärtusele antud juhul)

# for i in 1 2 3 4 5; do cat /proc/timer_list | grep now; sleep 1; done
now at 84252268392861 nsecs
now at 84253276330384 nsecs
now at 84254284637184 nsecs
now at 84255293000186 nsecs
now at 84256303866966 nsecs

# uptime 
02:56:17 up 23:25,  2 users,  load average: 0,00, 0,00, 0,00

faili kasutatakse vahel rtc asemel (nt raspberry pi puhul rtc puudub)

/var/lib/systemd/timesync/clock


bootup

# dmesg | grep -i tsc
[    0.000000] tsc: Detected 3300.000 MHz processor
[    0.000000] tsc: Detected 3299.994 MHz TSC
[    0.046283] TSC deadline timer available
[    0.151867] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x2f9146cb80a, max_idle_ns: 440795296911 ns
[    0.474898] clocksource: Switched to clocksource tsc-early
[    1.518064] tsc: Refined TSC clocksource calibration: 3311.976 MHz
[    1.518211] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x2fbd7db80a0, max_idle_ns: 440795256737 ns
[    1.520491] clocksource: Switched to clocksource tsc

# dmesg | grep -i rtc
[    0.199429] PM: RTC time: 00:31:05, date: 2025-04-10
[    0.509404] platform rtc_cmos: registered platform RTC device (no PNP device found)
[    0.580862] rtc_cmos rtc_cmos: RTC can wake from S4
[    0.582450] rtc_cmos rtc_cmos: registered as rtc0
[    0.582760] rtc_cmos rtc_cmos: setting system clock to 2025-04-10T00:31:06 UTC (1744245066)
[    0.582797] rtc_cmos rtc_cmos: alarms up to one month, y3k, 114 bytes nvram

linuxptp paigaldamine

# apt-get install linuxptp

mis sisaldab

root@rae-cf-03:~# dpkg -L linuxptp
.
/etc/linuxptp/ptp4l.conf
/etc/linuxptp/timemaster.conf
..
/lib/systemd/system/phc2sys@.service
/lib/systemd/system/ptp4l@.service
/lib/systemd/system/timemaster.service
...
/usr/sbin/hwstamp_ctl
/usr/sbin/nsm
/usr/sbin/phc2sys
/usr/sbin/phc_ctl
/usr/sbin/pmc
/usr/sbin/ptp4l
/usr/sbin/timemaster
/usr/sbin/ts2phc
...

Tööpõhimõte

Tööpõhimõte

Võrgujoonis

                                    time-01.eenet.ee
 
             NTP internetis              Chrony
 
                  |                         |
               ___|___                   ___|___
              |       |                 |       |
              |       | --------------- |       |
              |_______|                 |_______|

lõigud

NTP refclock internetis
  
 ->  time-01: chrony sätib interneti ntp serveri alusel system clock aja väärtuse (system time)
  
   ->  time-01: phc2sys sätib system clock alusel aja võrgukaardi ptp osakonnas
  
     ->  time-01: ptp4l publitseerib füüsilise võrgukaardi abil kellaaja võrgus kasutades multicast protokolli
  
       ->  time-02: ptp4l võtab vastu füüsiline võrgukaardi abil üle ptp prokolli saabunud signaali
  
         ->  time-02: phc2sys protsess publitseerib võrgukaardilt kellaaja shared-memory osakonnas
  
           ->  time-02: chrony protsess loeb ptp abil publitseeritud väärtuse mälu shared-memory osakonnast
  
             ->  time-02: chrony protsess sätib kerneli system clock väärtuse

Võrgukaardi riistvara tugi

Proxmox v. 8 ehk Linux kernel v. 6.8 tingimustes

Võrgukaart '02:00.0 Ethernet controller: Intel Corporation Ethernet 10G 2P X520 Adapter (rev 01)'

$ ethtool -T enp2s0f0
Time stamping parameters for enp2s0f0:
Capabilities:
	hardware-transmit
	software-transmit
	hardware-receive
	software-receive
	software-system-clock
	hardware-raw-clock
PTP Hardware Clock: 2
Hardware Transmit Timestamp Modes:
	off
	on
Hardware Receive Filter Modes:
	none
	ptpv1-l4-sync
	ptpv1-l4-delay-req
	ptpv2-event

Võrgukaart '3d:00.0 Ethernet controller: Mellanox Technologies MT2894 Family [ConnectX-6 Lx]'

$ ethtool -T ens7f0np0
Time stamping parameters for ens7f0np0:
Capabilities:
	hardware-transmit
	hardware-receive
	hardware-raw-clock
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
	off
	on
Hardware Receive Filter Modes:
	none
	all

Võrgukaart '49:00.0 Ethernet controller: QLogic Corp. FastLinQ QL41000 Series 10/25/40/50GbE Controller (rev 02)'

$ ethtool -T ens8f0
Time stamping parameters for ens8f0:
Capabilities:
	hardware-transmit
	software-transmit
	hardware-receive
	software-receive
	software-system-clock
	hardware-raw-clock
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
	off
	on
Hardware Receive Filter Modes:
	none
	ptpv1-l4-event
	ptpv1-l4-sync
	ptpv1-l4-delay-req
	ptpv2-l4-event
	ptpv2-l4-sync
	ptpv2-l4-delay-req
	ptpv2-l2-event
	ptpv2-l2-sync
	ptpv2-l2-delay-req
	ptpv2-event
	ptpv2-sync
	ptpv2-delay-req

Võrgukaat '81:00.0 Ethernet controller: Intel Corporation Ethernet Controller E810-XXV for SFP (rev 02)'

# ethtool -T enp129s0f0np0
Time stamping parameters for enp129s0f0np0:
Capabilities:
	hardware-transmit
	software-transmit
	hardware-receive
	software-receive
	software-system-clock
	hardware-raw-clock
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
	off
	on
Hardware Receive Filter Modes:
	none
	all

Võrgukaart '01:00.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GBASE-T (rev 02)'

# ethtool -T eno2np1
Time stamping parameters for eno2np1:
Capabilities:
	hardware-transmit
	software-transmit
	hardware-receive
	software-receive
	software-system-clock
	hardware-raw-clock
PTP Hardware Clock: 1
Hardware Transmit Timestamp Modes:
	off
	on
Hardware Receive Filter Modes:
	none
	ptpv1-l4-sync
	ptpv1-l4-delay-req
	ptpv2-l4-event
	ptpv2-l4-sync
	ptpv2-l4-delay-req
	ptpv2-l2-event
	ptpv2-l2-sync
	ptpv2-l2-delay-req
	ptpv2-event
	ptpv2-sync
	ptpv2-delay-req

Võrgukaart '02:00.0 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM5720 Gigabit Ethernet PCIe'

# ethtool -T enp2s0f0
Time stamping parameters for enp2s0f0:
Capabilities:
	hardware-transmit
	software-transmit
	hardware-receive
	software-receive
	software-system-clock
	hardware-raw-clock
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
	off
	on
Hardware Receive Filter Modes:
	none
	ptpv1-l4-event
	ptpv2-l4-event
	ptpv2-l2-event

Võrgukaart '07:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)'

# ethtool -T enp7s0
Time stamping parameters for enp7s0:
Capabilities:
	hardware-transmit
	software-transmit
	hardware-receive
	software-receive
	software-system-clock
	hardware-raw-clock
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes:
	off
	on
Hardware Receive Filter Modes:
	none
	all

Võrgukaart '02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)'

# ethtool -T enp2s0
Time stamping parameters for enp2s0:
Capabilities:
	software-transmit
	software-receive
	software-system-clock
PTP Hardware Clock: none
Hardware Transmit Timestamp Modes: none
Hardware Receive Filter Modes: none

Kasulikud lisamaterjalid