Keeping the correct time on workstations and servers on your network is critical. If you remember the NetWare 2.x and 3.x days, you probably have flashbacks of having to change the server’s time twice a year or more and wishing there was a simpler way to do it. Novell heard your pleas for relief and started to provide some options when it introduced NetWare 4.x. With NetWare 5.1, you can now get away from the command-line interface and start spending your time on other more pressing projects. In this Daily Drill Down, I’ll show you how to configure Network Time Protocol (NTP) on your NetWare 5.1 server.
What is NTP?
NTP has been around for some time. It provides a way for you to synchronize the clocks on your workstations and servers with trusted time sources on the Internet.
If you really want to get under the hood, you can reference three RFCs on the Internet: RFC 1119, 1503, and 2030. These RFCs can take you a lot further into the how and why of NTP. The beauty of NTP and NetWare is that as long as you have a full-time Internet connection, you can keep your servers set to the correct time with a degree of accuracy of a few seconds.
Configuring the servers to use NTP
You begin the process of implementing NTP on your NetWare 5.1 servers by going into NetWare 5 Console Monitor. Highlight Server Parameters in the Available Options list and press [Enter]. When the Select A Parameter Category option list appears, scroll down until you see Time appear. At this point, highlight Time and press [Enter]. You should now see a screen similar to Figure A. This screen displays a series of time-related configuration options.
If you’ve worked with multiple NetWare servers in a single tree, you’re probably familiar with the different time server types that can be present in the tree: Single Reference, Primary, Secondary, and Reference. When you implement NTP on your NetWare 5.1 server, you won’t use the Single Reference or Primary time server type. Instead, you’ll select the Reference type.
This is different from the way you would set things on a NetWare 5.0 or NetWare 4.x server. If you don’t configure the server that uses NTP as Reference, you’ll have intermittent synchronization or no time synchronization at all.
For the first server, change the Default Time Server Type and Timesync Type fields to Reference. Scroll through the list of Time Parameter options until you see Timesync Time Sources. This is where you’ll enter the list of time servers you want to use as a reference for setting time on your network. The correct syntax to use on this line is the time server’s IP address followed by :123. (123 represents the TCP/IP port used by NTP.) Repeat this process for each additional time server you’re referencing. Be sure to separate the time server addresses with semicolons.
I suggest using at least two or three different time servers. By setting multiple time sources, you won’t suddenly have network time problems if one of the time servers stops responding to your inquiries. TIMESYNC.NLM will set your time based on the average time difference reported by all the time servers you’ll use.
To obtain a list of time servers available in the US, go to this US Naval Observatory site. For operations outside the US, you can find a listing of servers that are closest to you.
As you begin the search, you’ll see some terms you probably haven’t dealt with before. For example, you may see the term Stratum. This term is usually followed by a number and indicates how far away this time server is from a verifiable time source, such as an atomic cesium clock.
A Stratum 1 NTP server is getting its time directly from a cesium clock or other known time source. A Stratum 2 server gets its time from a Stratum 1 NTP server. Looking closely, you’ll notice an N-1 relationship among the NTP servers. No matter what Stratum number a server has, it will always refer to a server with a Stratum number one less than itself. You may find that a server with a higher Stratum number is easier to get to. However, there could be more “clock drift” the farther down the NTP server food chain you go.
The accepted rule of thumb is to use a Stratum 2 NTP server if your network has less than 100 devices and reference a Stratum 1 NTP server when you cross over the 100-device level.
Once you’ve entered all the NTP server IP addresses, press [Esc] to back out to the main NetWare 5 Console Monitor screen. Next, press [Alt][Esc] to switch to the System Console screen, type unload timesync, and press [Enter] to unload TIMESYNC.NLM. Once you see a message that Timesync has finished unloading, type load timesync and press [Enter]. NetWare reloads TIMESYNC.NLM and implements the changes you just made.
Most of the time, product documentation can help you through procedures such as these. However, this is not one of those times. Novell’s documentation for these procedures indicates that you should enter a command line, such as load timesync time sources, and then the list of the IP addresses of the NTP time server. Don’t do this for any reason. If you do, the server will abend. You will have to down the server and restart to recover from the abend.
After you’ve restarted TIMESYNC.NLM, watch for the Time Synchronization Has Been Established message. You can check the functioning of the NTP time sync process by typing set timesync debug = 7 at the System Console screen and pressing [Enter].
When you issue this command, another screen will appear that displays the time server synchronization traffic, as shown in Figure B. This screen should list all the NTP servers you’re looking to for time information.
Don’t be overly concerned if you don’t see any information on this screen for a minute or so after issuing the Timesync Debug command. As soon as the server starts the NTP syncing process, you’ll begin to see activity.
You’ll see a line for each NTP time server you’re referencing. A numeric value indicates how far off your clock is compared with the clock of the NTP server that’s being checked. You’ll also see a line called Uniform Adjustment Requested at the bottom of the section for each NTP pass. This line represents the amount of time correction Timesync will apply based on the average time differences found among the NTP servers you’re referencing.
You should periodically use the debug screen to ensure you are getting responses from the various time servers. Unless you are really paranoid about knowing that the time sync process is running, you don’t need to leave the debug screen up and running constantly. You can close the screen by switching back to the console prompt, typing set timesync debug = 0, and pressing [Enter].
If you have other servers in your NDS tree that will reference the NetWare server that’s getting its time from the Internet, you’ll want to make at least one of them a Primary server and point it to this server’s IP address (followed by :123;) in the Timesync Time Sources field. You’ll also want to put the Primary server’s IP address in the Timesync Time Sources field on the Reference server.
Checking for proper time sync
On a regular basis, you should take advantage of the Time Synchronization option in DSREPAIR.NLM. This option will tell you on a network-wide basis how well the time servers are staying in sync. Don’t be too concerned if you see an occasional drift of a few seconds or so.
You may have to select the Time Synchronization option and press [Enter] several times over a period of 10 to 15 minutes to get an accurate picture. Look for changes in the information displayed on the screen. When you’re doing this, you should see a screen that looks similar to Figure C.
Watch for two important items on this screen. First, make sure that Yes appears in the Time Is In Sync column. Second, ensure that the values shown in the Time +/- column are close to, if not, 0.
If you see something different on your screen, you need to look at the servers to find out what the problem is. Seeing a value in the Time +/- column of 1 or 2 on a server shouldn’t be cause for alarm. Most of the time, all servers should report a 0 time difference.
If you have multiple servers in your tree, it’s not good enough to check just one of them for proper time synchronization. You should periodically check other servers in your tree as well. If you consistently find that one or more of the servers are running behind the time set by the reference server, look to see whether IDEATA.HAM is loaded in the server’s STARTUP.NCF or AUTOEXEC.NCF file. This module is normally associated with servers that are using the IDE interface for one of the server’s hard drives or CD-ROM drive.
Try unloading this module and see whether the time sync problem goes away. If it does, you have two choices. If you don’t have any IDE devices the server needs to access, remark out this module in the .NCF file where you found it. If you do need to use a device accessed by this module, you’ll have to obtain a file named IDEATA5.EXE. This file contains an updated IDEATA.HAM file that should correct the situation. Unfortunately, because of the restricted nature of this file, you’ll have to call Novell Support to obtain it.
With the improvements Novell has made in TIMESYNC.NLM over the years, you are pretty close to having a set-it-and-forget-it deal in terms of time synchronization. The Timesync Debug command will be your best tool in making sure time synchronization is working properly.
The authors and editors have taken care in preparation of the content contained herein but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for any damages. Always have a verified backup before making any changes.