Setting up time synchronization
I wanted to setup time synchronization on my Linux router. I then wanted to have my Windows machine synchronize time with the router.
Here is the article about how I accomplished that.
Contents |
Setting up a Linux NTP server
Had to install the NTP server software and configure it to the configuration that would work for me.
yum Package
The applicable yum package is ntp:
yum install ntp
Configuration file
The applicable configuration file is /etc/ntp.conf. The sections I had to modify pertained to the restrict and server options.
restrict options
The first restrict options allow the local machine to access the ntp daemon:
restrict 127.0.0.1 restrict -6 ::1
Now, I added a section to allow LAN machines to be able to query the server but not to be able to modify configuration or provide trap service (quoting from the man page: which is intended for use by remote event logging programs):
restrict 192.168.3.0 mask 255.255.255.0 nomodify notrap restrict 192.168.4.0 mask 255.255.255.0 nomodify notrap
Finally, we need to allow access to the servers we will be using to synchronize time. I got these servers from the pool.ntp.org Project. Same restrictions as the LAN with the added restriction that these servers are not allowed to perform query on our servers:
restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery restrict 2.pool.ntp.org mask 255.255.255.255 nomodify notrap noquery
For more information on the restrict options:
man ntp_acc
server options
Finally, we setup which servers we want to synchronize with. As mentioned above, I got these servers from the pool.ntp.org Project:
server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org
Starting NTP service
To start the ntpd service, you would do something like this:
/sbin/service ntpd start
To configure it to start automatically:
/sbin/chkconfig ntpd on
Testing and troubleshooting
First thing, we should make sure it starts correctly. After starting the server, grep /var/log/messages for ntpd just to make sure things started up fine:
[belminf@home ~]# sudo grep ntpd /var/log/messages home ntpd[15000]: ntpd 4.2.4p2@1.1495-o Mon Sep 24 14:40:07 UTC 2007 (1) home ntpd[15001]: precision = 1.000 usec home ntpd[15001]: Listening on interface #0 wildcard, 0.0.0.0#123 Disabled home ntpd[15001]: Listening on interface #1 lo, 127.0.0.1#123 Enabled home ntpd[15001]: Listening on interface #2 eth2, 68.161.230.103#123 Enabled home ntpd[15001]: Listening on interface #3 eth0, 192.168.3.1#123 Enabled home ntpd[15001]: Listening on interface #4 eth1, 192.168.4.1#123 Enabled home ntpd[15001]: kernel time sync status 0040 home ntpd[15001]: frequency initialized 307.091 PPM from /var/lib/ntp/drift
We could then use the ntpq command to view the current status of the server and what other srevers it's interacting with by using the -p option.
When you first start up the server, you should see something like this:
[belminf@home ~]# /usr/sbin/ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
mail2.safire.bz 18.103.0.198 2 u 3 64 7 58.155 -3.329 0.856
phoenix.netserv 64.113.44.54 2 u 63 64 3 59.387 1.998 0.697
kiri.nonexiste. 66.36.239.104 3 u 65 64 3 57.072 4.045 0.504
LOCAL(0) .LOCL. 10 l 62 64 3 0.000 0.000 0.001
But as the sever synchronizes with other servers, you should see something like this:
[belminf@home root]$ /usr/sbin/ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*mail2.safire.bz 18.103.0.198 2 u 10 64 77 57.713 -2.274 0.890
+phoenix.netserv 64.113.44.54 2 u 4 64 77 59.038 1.368 1.327
+kiri.nonexiste. 66.36.239.104 3 u 8 64 77 56.552 3.564 0.505
LOCAL(0) .LOCL. 10 l 6 64 77 0.000 0.000 0.001
For info on the significance of this output, man ntpq.
Getting a Windows PC to synchronize
Setting the NTP server
The following command will set your server and then, just to make sure the change was successful, perform a query:
C:\>net time /setsntp:192.168.3.1&& net time /querysntp The command completed successfully. The current SNTP value is: 192.168.3.1 The command completed successfully.
Restarting the service
And probably good to restart the w32time service:
C:\>net stop w32time&& net start The Windows Time service is stopping. The Windows Time service was stopped successfully. The Windows Time service is starting. The Windows Time service was started successfully.
Manual time synchronization
If force the time to synchronize, use this command:
w32tm /resync

