ESX Server 2.0.1 and Later
To configure NTP on the service console, you must:
- Edit the following configuration files, as described in the
following sections:
- /etc/ntp.conf
- /etc/ntp/step-tickers
-
/etc/hosts
-
For ESX Server 3.0 only, run the following command. This opens
the appropriate ports and enables the NTP daemon to talk with the
external server.
[root@esxhost]# esxcfg-firewall --enableService
ntpClient
- Restart ntpd.
Editing /etc/ntp.conf
Specify a pool of NTP servers to which your ESX Server system
will sync (for more information about using NTP server pools, see
http://www.pool.ntp.org/use.html).
- Log on to the service console as the root user.
-
You are going to replace the content of
/etc/ntp.conf, so make a backup copy of this file:
cp /etc/ntp.conf /etc/ntp.conf.bk
-
Edit the contents of the default /etc/ntp.conf, which
the ESX Server installation creates for you, so the file looks like
this:
restrict
127.0.0.1
restrict default kod nomodify notrap
server 0.vmware.pool.ntp.org
server 1.vmware.pool.ntp.org
server 2.vmware.pool.ntp.org
driftfile /var/lib/ntp/drift
-
restrict –
The first restrict
is required because ntpd needs to resolve hostname addresses via
the loopback network. If this entry does not exist, the system log
( /var/log/messages)
will show something like this:
ntpd_initres: ntpd returns a
permission denied error
For systems directly connected to the Internet, the second
restrict line provides a basic level of protection from
general UDP spoofing of NTP.
-
kod – Sends a KoD packet when an access violation
occurs.
-
nomodify – Denies ntpq and ntpdc
queries that attempt to modify the run-time configuration of the
server. Queries that return information are permitted.
-
notrap – Declines to provide mode 6 control message
trap service to matching hosts. The trap service is a subsystem of
the ntpdq control message protocol, which is intended for
use by remote event logging programs.
For better protection, you may want to add noquery,
which prevents remote queries, and nopeer, which prevents
a host from trying to peer with your server and to allow a rogue
server to control the clock.
Refer to http://www.eecis.udel.edu/~mills/nt...ccopt.html
for a full description of these access control commands.
The 0, 1, and 2.vmware.pool.ntp.org
names point to a random set of servers that change every hour.
The driftfile line indicates the name of the file where
the value for the system's clock drift (frequency error) is stored.
For a more complete definition of driftfile, see http://www.eecis.udel.edu/~mills/nt...otes.html.
Editing /etc/ntp/step-tickers
Perform the following steps as the root user on the service
console.
-
If you want, make a backup copy of your
/etc/ntp/step-tickers file:
cp /etc/ntp/step-tickers /etc/ntp/step-tickers.bk
-
Edit /etc/ntp/step-tickers so that the file looks
like the following example:
0.vmware.pool.ntp.org
1.vmware.pool.ntp.org
2.vmware.pool.ntp.org
Editing /etc/hosts
Perform the following step as the root user on the service
console.
- Edit /etc/hosts.
-
Add the following list of NTP pool servers to the end of your
existing hosts list.
0.vmware.pool.ntp.org
1.vmware.pool.ntp.org
2.vmware.pool.ntp.org
Adding this list of NTP servers minimizes the impact of DNS lookup
failures during NTP synchronization.
ESX 3.0 Only: Enabling NTP Client for Firewall
As noted earlier in this article, remember to run the
following command. This opens the appropriate ports and enables the
NTP daemon to talk with the external server.
[root@esxhost]# esxcfg-firewall --enableService
ntpClient
Restarting and Monitoring the NTP Service
Perform these steps as root on the service console.
- After you have edited the previous files, restart the NTP
service.
-
To restart the service now, run:
service ntpd restart
-
To enable the NTP daemon to autostart when the server is
rebooted, run:
chkconfig --level 345 ntpd on
-
Now you can set the local hardware clock to the NTP
synchronized local system time. Run:
hwclock --systohc
As ntpd successfully polls NTP servers, the kernel
automatically sets the hardware clock to the system clock time
periodically.
- Monitor the NTP service as desired:
-
To see the offset (in seconds) between the local clock and the
source clock, run:
ntpdate -q time_server_name_or_ip_address
If the correction resulting from synchronizing the local clock with
the time server is large enough, it could affect the operating
systems or applications running in virtual machines when they
synchronize their clocks with the ESX Server system on which they
are running.
-
To watch the status of the ntpd process, run:
watch "ntpq -p"
Press Ctrl-c to stop watching the process.
Note the information in the following columns:
-
The character in the first column indicates the quality of the
source.
-
The asterisk ( * ) indicates the source is the current
reference.
-
remote lists the IP address or host name of the
source.
-
when indicates how many seconds have passed since the
source was polled.
-
poll indicates the polling interval. This value
increases depending on the accuracy of the local clock.
-
reach is an octal number that indicates reachability of
the source. A value of 377 indicates the source has
answered the last eight consecutive polls.
- offset is the time difference between the source and the
local clock in milliseconds.
Note: If ntpq -p returns ntpq: read: Connection
refused, check /var/log/messages for a more detailed
error message.
Additional documentation for NTP is available at http://ntp.isc.org/bin/view/Main/Do...tionIndex.