NTP synchronization fails between VMs on different ESXi hosts
I ran out of ideas, so maybe someone can help troubleshoot this…
3 x ESXi Servers (all standalone, two are 6.5 but different builds, one is 6.7), AD infrastructure (two VMs on different hosts), other windows stuff spread across hypervisors (Win2008R2, Win2012R2, Win2016, Win2019). Pretty much flat network (one subnet).
The problem is: PDC can not sync time with external source (pool.ntp.org, time.google.com, time.windows.com, whatever). And only some servers can sync time to the PDC - that is servers that are on same ESXi host as PDC. PDC itself and other servers are getting "Local CMOS Clock" or "Free-running System Clock". Though "w32tm /stripchart /computer:xxx" works with any computer correctly on any VM.
What I've done allready:
Time sync with hypervisor is disabled (when enabled nothing changes).
Tried to exclude AD (misconfigurations maybe) and set up new fresh Win2019 server in workgroup. No luck, still cannot sync to PDC or external servers.
Then I Installed Linux VM (Rocky 8.4 minimal, open-vm-tools installed) on the same host with Win2019 - it works, syncs with external host, no problem!
Tried to get time in Win2019 from this Linux NTP - it works!
Tried to sync PDC with Linux NTP - nothing.
Installed another Linux VM "closer" to PDC (same ESXi) - Linux syncs with external server, PDC syncs with Linux NTP!
Tried to sync time from one Linux NTP to another (different ESXi hosts) - works perfectly!
Then i updated vmware-tools on Windows VMs with no result.
It seems like Windows machines (any version) can sync time only within single ESXi host, for some reason. Linux VMs are working as expected. I am completely baffled. Is there anything, that I can check?