NTP
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
- hardware time stamping support
- https://gitlab.com/stevenfalco/fake-hwclock
- https://www.thegoodpenguin.co.uk/blog/keeping-track-of-time-with-systemd/
Kasulikud lisamaterjalid
- https://opensource.com/article/17/6/timekeeping-linux-vms
- https://github.com/Xilinx-CNS/sfptpd
- https://docs.amd.com/r/en-US/ug1602-ptp-user/What-s-New
- https://enterprise-support.nvidia.com/s/article/Running-Linux-PTP-with-ConnectX-4-ConnectX-5-ConnectX-6
- https://static.ouster.dev/sensor-docs/image_route1/image_route2/appendix/ptp-quickstart.html
- https://zshisite.wordpress.com/2017/10/25/sync-your-cloud-with-ptp/
- https://www.redhat.com/en/blog/delivering-high-precision-clock-synchronization-for-low-latency-5g-networks-with-openshift-part-1?extIdCarryOver=true&sc_cid=701f2000001OH7JAAW
- https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/6/html/deployment_guide/ch-configuring_ptp_using_ptp4l#s2-Understanding_PTP
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 ...
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
- http://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/external/bsd/ntp/dist/util/ntp-keygen.html
- http://support.ntp.org/bin/view/Support/ConfiguringAutokey
- http://doc.ntp.org/4.2.8/autokey.html
- Computer Network Time Synchronization: The Network Time Protocol on Earth and in Space
- https://www.linuxuprising.com/2019/07/how-to-set-timezone-and-enable-network.html
- https://ahelpme.com/linux/simple-time-synchronization-of-a-server-laptop-desktop-using-built-in-systemd-timesyncd-service/