This article describes how to build and configure your very own stratum one NTP Server. By adding a relatively cheap GPS or radio time standards receiver to your Linux box, you can have your own precise NTP server. Your NTP server can be used to synchronize all the machines on your network to the precise time.
NTP is available as source code for compilation and configuration on a Linux machine. The source code freely downloadable from the NTP.org website. Most Linux installations, such as SUSE and Fedora provide NTP pre-installed. Many other Linux disto's provide NTP as a RPM.
In order to build a stratum one NTP server, you need an accurate external timing reference. Many timing references are available, most utilise GPS or national time and frequency radio sources such as WWVB, DCF77 and MSF. The Global Positioning System (GPS) is a great timing reference, since it is available worldwide and the equipment required for receiving time and positioning information is very low-cost.
Many GPS systems provide a serial port that can be connected to a PC serial port. Many GPS receivers utilise the NMEA protocol that provides continous time and positioning information. An NTP server can utilise the timing information provided by a NMEA receiver as an accurate timing reference. Some GPS receivers also provide a highly precise pulse per second (PPS) output that can be used as a highly accurate timing reference. Any timing pulse generated by a GPS receiver may need to be converted into a usable RS232 signal level. A TTL level pulse output can be converted to RS232 levels by feeding it into a RS232 driver.
There are many radio receivers available that receive transmitted national time and frequency information. WWVB is a US radio time and frequency transmission, DCF77 is transmitted from Germany, MSF is available throughout the UK. The advantage of a radio signal as a reference clock for your NTP server is that you can usually pick up a good signal indoors, close to the NTP server. In contrast, GPS requires an antenna with a good view of the sky.
Once you have your NTP server external reference clock set-up and installed, you need to configure the clock in the NTP configuration file 'ntp.conf'. This usually involves finding and specifying the reference clock code for your timing reference. Once configured, your NTP server will act as an accurate source of time for your network time clients.
Many modern operating systems can use the Network Time Protocol to synchronize time. Linux and Unix machines can utilise the NTP distribution itself. Modern Windows operating systems such as XP and 2003 have pre-installed SNTP clients that can point to the IP address or DNS name of a NTP server for synchronisation. Many network devices such as routers and switches can also utilise your NTP server for synchronization.