<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Chrony on Jon Seager</title><link>https://jnsgr.uk/tags/chrony/</link><description>Recent content in Chrony on Jon Seager</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 26 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jnsgr.uk/tags/chrony/index.xml" rel="self" type="application/rss+xml"/><item><title>ntpd-rs: it's about time!</title><link>https://jnsgr.uk/2026/03/ntpd-rs-its-about-time/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><guid>https://jnsgr.uk/2026/03/ntpd-rs-its-about-time/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This article was originally posted &lt;a href="https://discourse.ubuntu.com/t/ntpd-rs-its-about-time/79154" target="_blank" rel="noreferrer"&gt;on the Ubuntu Discourse&lt;/a&gt;, and is reposted here. I welcome comments and further discussion in that thread.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="introduction" class="relative group"&gt;Introduction &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#introduction" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;I am thrilled to announce the next target in our campaign to replace core system utilities with memory-safe Rust rewrites in Ubuntu. In upcoming releases, Ubuntu will be adopting &lt;a href="https://trifectatech.org/projects/ntpd-rs/" target="_blank" rel="noreferrer"&gt;ntpd-rs&lt;/a&gt; as the default time synchronization client and server, eventually replacing &lt;a href="https://chrony-project.org/" target="_blank" rel="noreferrer"&gt;&lt;code&gt;chrony&lt;/code&gt;&lt;/a&gt;, &lt;a href="https://www.linuxptp.org/" target="_blank" rel="noreferrer"&gt;&lt;code&gt;linuxptp&lt;/code&gt;&lt;/a&gt; and with any luck, &lt;a href="https://gpsd.io/" target="_blank" rel="noreferrer"&gt;&lt;code&gt;gpsd&lt;/code&gt;&lt;/a&gt; for time syncing use-cases.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://trifectatech.org/projects/ntpd-rs/" target="_blank" rel="noreferrer"&gt;&lt;code&gt;ntpd-rs&lt;/code&gt;&lt;/a&gt; is a full-featured implementation of the Network Time Protocol (NTP), written entirely in Rust. Maintained by the Trifecta Tech Foundation as part of &lt;a href="https://github.com/pendulum-project" target="_blank" rel="noreferrer"&gt;Project Pendulum&lt;/a&gt;, &lt;code&gt;ntpd-rs&lt;/code&gt; places a strong focus on security, stability, and memory safety.&lt;/p&gt;
&lt;p&gt;To deliver on this goal, we&amp;rsquo;re building on our partnership with the &lt;a href="https://trifectatech.org/" target="_blank" rel="noreferrer"&gt;Trifecta Tech Foundation&lt;/a&gt; who are behind &lt;a href="https://trifectatech.org/projects/sudo-rs/" target="_blank" rel="noreferrer"&gt;sudo-rs&lt;/a&gt;, &lt;a href="https://trifectatech.org/projects/zlib-rs/" target="_blank" rel="noreferrer"&gt;zlib-rs&lt;/a&gt; and more. We will be funding the Trifecta Tech Foundation to build new features, enhance security isolation, and ultimately deliver a unified, memory-safe time synchronization utility for the Linux ecosystem. This work meshes well with the Trifecta Tech Foundations goals to improve the security of time synchronization everywhere.&lt;/p&gt;
&lt;h2 id="ntp-nts-and-ptp" class="relative group"&gt;NTP, NTS, and PTP &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#ntp-nts-and-ptp" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Before diving into the mechanics and reasoning behind the transition, I wanted to give some background on the protocols at play, and the problems we&amp;rsquo;re hoping to solve. Keeping accurate time is a critical system function, not least because it involves constant interaction with the internet and forms the basis for cryptographic verification in protocols such as Transport Layer Security (TLS).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NTP (Network Time Protocol)&lt;/strong&gt; is the foundational protocol that most operating systems implement to accurately determine the current time from a network source.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NTS (Network Time Security)&lt;/strong&gt; is to NTP what HTTPS is to HTTP. Historically, the Network Time Protocol was used unencrypted, like many of the early web protocols. NTS introduces cryptographic security to time synchronization, ensuring that bad actors cannot intercept or spoof time data. We already pushed to make NTS the default out-of-the-box in Ubuntu 25.10, which we accomplished by migrating away from &lt;code&gt;ntpd&lt;/code&gt; to &lt;code&gt;chrony&lt;/code&gt; as the default time-syncing implementation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PTP (Precision Time Protocol)&lt;/strong&gt; is used for systems that require sub-microsecond synchronization. While the precision offered by a standard NTP deployment is sufficient for general-purpose computing, PTP is often used for complex, specialized deployments like telecommunications networks, power grids, and automotive applications.&lt;/p&gt;
&lt;h2 id="proven-at-scale" class="relative group"&gt;Proven at Scale &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#proven-at-scale" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Transitioning core utilities in Ubuntu comes with a responsibility to ensure that replacements are of high quality, resilient and offer something to the platform. We may be the first major Linux distribution to adopt ntpd-rs by default, but we aren&amp;rsquo;t the first to recognize the readiness of &lt;code&gt;ntpd-rs&lt;/code&gt; - it has already been &lt;a href="https://letsencrypt.org/2024/06/24/ntpd-rs-deployment" target="_blank" rel="noreferrer"&gt;proven at scale by Let&amp;rsquo;s Encrypt&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;While Let&amp;rsquo;s Encrypt&amp;rsquo;s core Certificate Authority software has always been written in memory-safe Go, their server operating systems and network infrastructure historically relied on memory-unsafe languages like C and C++, which routinely led to vulnerabilities requiring patching.&lt;/p&gt;
&lt;p&gt;Following extensive development, &lt;code&gt;ntpd-rs&lt;/code&gt; was deployed to Let&amp;rsquo;s Encrypt&amp;rsquo;s staging environment in April 2024, and rolled out to full production by June 2024, marking a major milestone for ntpd-rs.&lt;/p&gt;
&lt;p&gt;The fact that one of the world&amp;rsquo;s most prolific and security-conscious certificate authorities trusts &lt;code&gt;ntpd-rs&lt;/code&gt; to keep time across its fleet should provide us, and our enterprise customers, with tremendous confidence in its resilience and suitability.&lt;/p&gt;
&lt;h2 id="a-single-memory-safe-utility-for-ntp-and-ptp" class="relative group"&gt;A Single, Memory-Safe Utility for NTP and PTP &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#a-single-memory-safe-utility-for-ntp-and-ptp" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;We want to provide a single utility for configuring both NTP/NTS and Precision Time Protocol (PTP) on Linux. The Trifecta Tech Foundation is concurrently developing &lt;a href="https://trifectatech.org/projects/statime/" target="_blank" rel="noreferrer"&gt;Statime&lt;/a&gt;, a memory-safe PTP implementation that delivers synchronization performance on par with &lt;code&gt;linuxptp&lt;/code&gt;, but with the goal of being easier to configure and use.&lt;/p&gt;
&lt;p&gt;The goal is to integrate Statime&amp;rsquo;s PTP capabilities directly into &lt;code&gt;ntpd-rs&lt;/code&gt;, improving the user experience by bringing all time synchronization concerns into one utility with common configuration and usage patterns, obviating the need for complex manual configuration (and troubleshooting) that users of &lt;code&gt;linuxptp&lt;/code&gt; may be familiar with.&lt;/p&gt;
&lt;h2 id="timelines-and-goals" class="relative group"&gt;Timelines and Goals &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#timelines-and-goals" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;As with our transition to &lt;code&gt;sudo-rs&lt;/code&gt; and &lt;code&gt;uutils coreutils&lt;/code&gt;, leading the mainstream adoption of foundational system utilities comes with responsibility. We want to ensure that &lt;code&gt;ntpd-rs&lt;/code&gt; matches the security isolation and performance standards our users expect from &lt;code&gt;chrony&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Canonical is funding the Trifecta Tech Foundation&amp;rsquo;s development efforts toward these goals over the coming cycles. This work will take place between July 2026 and January 2027 in several major milestones. Our current timeline and targeted goals are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ubuntu 26.10:&lt;/strong&gt; If all goes well, we aim to land the latest version of &lt;code&gt;ntpd-rs&lt;/code&gt; in the archive, making it available to test.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ubuntu 27.04:&lt;/strong&gt; By 27.04, &lt;code&gt;ntpd-rs&lt;/code&gt; should have integrated &lt;code&gt;statime&lt;/code&gt;, and we will ship the unified client/server binary for NTP, NTS and PTP in Ubuntu by default, with the aim of providing a smooth migration path for those who already manage complex &lt;code&gt;chrony&lt;/code&gt; configs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To get us there, the Trifecta Tech Foundation will be working on the following items:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Feature Parity &amp;amp; Hardware Support:&lt;/strong&gt; Adding &lt;code&gt;gpsd&lt;/code&gt; IP socket support, multi-threading support for NTP servers, and support for multi-homed servers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security &amp;amp; Isolation:&lt;/strong&gt; &lt;code&gt;chrony&lt;/code&gt; is isolated via AppArmor and seccomp. We&amp;rsquo;ll be working on robust AppArmor and seccomp profiles for &lt;code&gt;ntpd-rs&lt;/code&gt; to ensure we don&amp;rsquo;t buy memory safety at the cost of system-level privilege boundaries. We are also ensuring &lt;code&gt;rustls&lt;/code&gt; can use &lt;code&gt;openssl&lt;/code&gt; as a crypto provider to satisfy strict corporate cryptography policies.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PTP &amp;amp; Automotive Profiles:&lt;/strong&gt; Adding support for gPTP, which will allow us to support complex deployments like the Automotive profile directly from &lt;code&gt;nptd-rs&lt;/code&gt; (via Statime). Additionally, experimental support for the proposed Client-Server PTP protocol (CSPTP, IEEE 1588.1) will be added.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Benchmarking &amp;amp; Testing:&lt;/strong&gt; Comprehensive benchmarking of long-term memory, CPU usage, and synchronization performance against &lt;code&gt;chrony&lt;/code&gt; to give our cloud partners and enterprise users complete confidence in the transition.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User-experience:&lt;/strong&gt; Logging improvements and enhancements to configuration that help users configure the time synchronisation target to optimise network usage, as well as improvements to the ntp-cli&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="about-the-trifecta-tech-foundation" class="relative group"&gt;About the Trifecta Tech Foundation &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#about-the-trifecta-tech-foundation" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Trifecta Tech Foundation is a non-profit and a Public Benefit Organisation (501(c)(3) equivalent) that creates open-source building blocks for critical infrastructure software. Their initiatives on data compression, time synchronization, and privilege boundary, impact the digital security of millions of people. If you&amp;rsquo;d like to support their work, please contact them via &lt;a href="https://trifectatech.org/support" target="_blank" rel="noreferrer"&gt;https://trifectatech.org/support&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="summary" class="relative group"&gt;Summary &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#summary" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;I am really excited to deepen our already productive relationship with the Trifecta Tech Foundation to make these transitions viable for the wider ecosystem. We&amp;rsquo;ll be working hard on testing and integration to ensure seamless migration paths, and heavily document the changes ahead of the 26.10 and 27.04 releases.&lt;/p&gt;
&lt;p&gt;Stay tuned!&lt;/p&gt;</description></item></channel></rss>