I have several Ubuntu virtual machine running within a Hyper-V server. The server is a Windows 2012r2 machine. The Ubuntu VMs are either Ubuntu 14.04 or Ubuntu 16.04 (the current LTS releases).
It seems that when the virtual machines first power on they often have a timestamp of several days in the future. This can be seen in the syslog. The system time is corrected once the network connection comes up and NTP starts.
Why are virtual-machines running under Hyper-V starting with a date several days in the future?
The Hyper-V host server is connected to a UPS so has a very long uptime. It has the correct date and time at present. It is set to use a 0.uk.pool.ntp.org server as a time source. The ADDC and DC on my network also act as time servers to most of the client machines. Both of these have the correct time & date at present. Both of these are also setup to use several .pool.ntp.org servers as a reference. w32tm /query /peers
confirms the settings on all three machines.
This time error on start up causes problems with my DNS entries for the VMs as well. When the Ubuntu system comes up it acquires an IPv4 address with a DHCP reservation. My network currently hands out 8 day reservations. Sometimes the power on date error is so great that the reservations look as if the were requested in the future, after the current date. When I look at the /var/lib/dhcp/dhclient.eth0.leases
file modification date it is several days in the future. This then seems to make the Ubuntu DHCP client think it has a reservation which runs until a date several days in the future. The client then does not to reserve (or renew) a new IP Address over DHCP and its DNS entries expire on the server side.