Root cause: Ubuntu 26.04 switched from systemd-timesyncd to chrony by default, with NTS-secured pool servers (*.canonical.com) enabled out of the box. Chrony's authselectmode directive defaults to mix, but the effective behavior observed was that the NTS pool entries had require applied automatically (visible as R in EOpts via chronyc selectdata). Since those NTS pool sources were unreachable on the home network, chrony refused to synchronize from any source — including the healthy, agreeing local servers — logging:
Can't synchronise: no required source in selectable sources
Fix: Added to /etc/chrony/chrony.conf:
authselectmode ignore
This disables chrony's automatic require/trust injection for authenticated (NTS) sources, so selection is governed purely by the explicit prefer/trust flags in the sources file. The NTS pool stays configured (useful when off the home network) but no longer blocks sync when unreachable.
Verification:
sudo systemctl restart chrony chronyc sources # local servers show as selected (*/+) chronyc tracking # Leap status: Normal, Reference ID populated
Key diagnostic commands used: chronyc tracking, chronyc sources, chronyc selectdata
