Archive for the ‘advanced NTP’ Category

NTP Time Server Packet Header Explained

Thursday, November 6th, 2008

Most time servers use Network Time Protocol and like other Internet based protocols NTP contains a packet header. A packet header, put simply, is just is a formatted unit of data that describes the information contained in the packet.

The NTP packet header consists of a number of 32-bit words. Here is a list of the most common packet header terms and their meaning:

IP address – the address of the NTP Time Server

NTP Version – which version of NTP (currently version 4 is the most recent)

Reference timestamp (the prime epoch ) used by NTP to work out the time from this set point (normally January 01 1900

Round trip delay (the time it takes request to arrive and come back in milliseconds)

Local clock offset – time difference between host and client

Leap indicator (if there is to be a leap second that day –normally only on 31 December)

Mode3  -  a three bit integer which values represent: 0=reserved, 1=symmetric active, 2= symmetric passive, 3=client, 4=server, 5=broadcast, 6=NTP control message, 7=reserved for private use.

Stratum level – which stratum level the NTP server is (a stratum 1 server receives the time from an atomic clock source a stratum 2 server receives the time from a stratum 1 server)

Poll Interval (How many requests is made and their intermittence)

Precision – how accurate in milliseconds is the system clock

Root Delay – This is a signed fixed-point number indicating the total roundtrip delay to the primary reference source at the root

Root dispersion (in milliseconds)- The root dispersion is the maximum (worst case) difference between the local system clock and the root of the NTP tree (stratum 1 clock)

Ref ID – 32 bit identifying the reference clock

Originate time stamp (time before synchronisation request)

Receive timestamp – the time the host/NTO time Server got the request

Transmit timestamp – the time the host sent back the request

Valid  response– is the system clock  synchronised or not

History of Timekeeping from Stonehenge to the NTP Server

Sunday, November 2nd, 2008

Keeping track of time has been as integral part of helping human civilisation to develop. It could be argued that the greatest step that mankind took was in the development of farming, allowing humans to free up more time to develop sophisticated cultures.

However, farming was fundamentally reliant on timekeeping. Crops are seasonal and knowing when to plant them is the key to all horticulture. It is believed that ancient monuments such as Stonehenge were elaborate calendars helping the ancients to identify the shortest and longest days (solstice).

As human civilisation developed, telling increasingly accurate time became more and more important. And identifying days of the year was one thing but calculating how far into a day was another.

Timing was extremely inaccurate up until the middle ages. People would rely on comparisons of time as a time reference such as how long it took to walk a mile or the time of day would be estimated from when the sun was highest (noon).

Fortunately the development of clocks during the middle of the last millennium meant that for the first time humans could tell with some degree of precision the time of day. As clocks developed so did their accuracy and civilisation became more efficient as events could be more accurately synchronised.

When electronic clocks arrived at the turn of the last century, accuracy was further increased and new technologies started to develop but it wasn’t until the rise of the atomic clock that the modern world really took shape.

Atomic clocks have enabled technologies such as satellites, computer networks and GPS tracking possible as they are so accurate – to within a second every hundred million years.

The atomic clocks were even discovered to be even more accurate than the spin of the Earth that varies, thanks to the Moon’s gravity and extra seconds have to be added to the length of a day – The leap second.

Atomic clocks mean that a global timescale accurate to within a thousandth of second has been developed called UTC – Coordinated Universal Time.

Computer networks to communicate with each other from across the globe in perfect synchronisation to UTC if they use a NTP time server.

An NTP server will synchronise an entire computer network to within a few milliseconds of UTC time allowing global communications and transactions.

Atomic clocks are still being developed the latest strontium clocks are promising accuracy to within a second every billion years.

Time Server Manufacturers

Friday, October 31st, 2008

Time servers come in several shapes and sizes. The primary difference between most dedicated time servers is in the way they receive  a timing source.

Some time servers utilise national time and frequency transmissions that are broadcast on long wave while other use the GPS network.

Some time servers are designed to be rack-mountable perfect for the average U system of racks allowing the sever to be snugly fitted into your existing rack.

Other time servers are nothing more than small boxes that can be discretely hidden.

Here is a list of top time server manufacturers:

Galleon Systems (uk)

Galleon (Europe)

Galleon USA

Elproma

Symmetricom

Meinberg

Time Tools

Timescales of NTP and advanced time server information

Monday, October 27th, 2008

The NTP timescale is based on UTC (Coordinated Universal Time) which is a global civil timescale that is based on International Atomic Time (TAI) but accounts for the slowing of the Earth’s spin by intermittingly adding ‘leap seconds.’

This is done to ensure that UTC is kept in coincidence with GMT (Greenwich Meantime, often referred to as UT1). Failing to account for the Earth’s slowing in its rotation (and occasional speeding up) would mean that UTC would fall out of synchronisation with GMT and noon, when the sun is traditionally the highest in the sky would drift. In fact if leap seconds were not added eventually noon would fall at midnight and vice versa (albeit in several millennia).

Not everybody is happy with leap seconds, there are those that feel that adding of seconds to keep the Earth’s rotation and UTC inline is nothing but a fudge. However, failing to do so would make such things as astronomical observations impossible as astronomers need to know the exact positioning of the stellar bodies and farmers are pretty reliant on the Earth’s rotation too.

The NTP clock represents time in a totally different way to the way humans perceive time. Instead of formatting time into minutes, hours, days, months and years, NTP uses a continuous number that represents the number of seconds that have past since 0h 1 January 1900. This is known as the prime epoch.

The seconds counted from the prime epoch continue to rise but wraps around every 136 years. The first wrap-around will take place in 2036, 136 years since the prime epoch. To deal with this NTP will utilise an era integer, so when the seconds reset to zero, the integer 1 will represent the first era and negative integers represent the eras before the prime epoch.

Time servers that receive their time from the GPS system are not in fact receiving UTC, primarily because the GPS network was in development before the first leap second but they are based on TAI.  However, GPS time is converted to UTC by the GPS time server.

The radio transmission broadcast from national physics laboratories such as MSF, DCF or WWVB are all based on UTC and so the time servers do not need to do any conversion.

Network Time Protocol Security

Saturday, October 25th, 2008

The protocol used by most network time servers is NTP (Network Time Protocol) and has been around for quite a long time yet it is constantly being updated and developed offering ever higher levels of accuracy and security.

Synchronisation is an essential part of modern computer networks and is essential for keeping a system secure. Without NTP and time synchronisation a computer network can be vulnerable o malicious attacks and even fraud.

Even with a perfectly synchronised network security can still be an issue but there are a few key steps that can be taken to ensure your network is kept secure.

Always use a dedicated Network Time Server. Whilst Internet time sources are common place they are a time source situated outside the firewall. This will have obvious security draw backs as a malicious user can take advantage of the ‘hole’ left in your firewall to communicate with the NTP server. A dedicated NTP server will receive a time signal from an external source.

Normally these types of dedicated time servers will utilise either the GPS network (Global Positioning System) or specialist national time and frequency radio transmissions. Both these time sources offer an accurate and reliable method of UTC time (coordinated universal time) whilst also being secure.

Another way to ensure security is to take advantage of NTP’s built-in security mechanism – authentication. Authentication is a set of encrypted keys that are used to establish if the time source is coming from where it is claiming to come from.

Authentication verifies that each timestamp has come from the intended time reference by analysing a set of agreed encryption keys that are sent along with the time information. NTP, using Message Digest encryption (MD5) to un-encrypt the key, analyses it and confirms whether it has come from the trusted time source by verifying it against a set of trusted keys.

Trusted authentication keys are listed in the NTP server configuration file (ntp.conf) and are stored in the ntp.keys file. The key file is normally very large but trusted keys tell the NTP server which set of subset of keys is currently active and which are not. Different subsets can be activated without editing the ntp.keys file using the trusted-keys config command.

Authentication is highly important in protecting a NTP server from malicious attack; however Internet time sources can’t be authenticated which doubles the risk of using an Internet based time reference.

Time Server Top Tips for Time Synchronisation

Tuesday, October 21st, 2008

Time synchronisation is an integral part of modern computer networking particularly with the Internet and online communication having become so dominant.

Communicating with machines across the globe requires exact time synchronisation otherwise many of the online tasks we take for granted would not be possible. Time in the form of timestamps is the only form of reference a computer has to identify the order of events. So with time sensitive transactions time synchronisation is pivotal.

Here are some tips to ensure your network is running precise and accurate time as possible:

NTP (Network Time Protocol) is the world’s leading time synchronisation software. There are other time protocols but NTP is the most widely used and best supported.

Most computer networks across the globe are synchronised to UTC (Coordinated Universal Time). This is a global timescale based on the time told by atomic clocks. Always use a UTC source to synchronise too.

Always use an external hardware source as a timing reference as time sources from the Internet can not be authenticated. Authentication is a security measure used by NTP to ensure a timing reference is coming from where it says it is from. Also using an Internet timing source means that the reference is outside your networks firewall, this can cause added security risks.

Dedicated time servers can receive UTC signals from radio transmissions and the GPs network. These offer the most secure, accurate and reliable method of receiving a UTC time reference.

Networks based in Britain, Germany, the USA and Japan have access to long-wave time and frequency transmissions that are broadcast by national physics labs. These broadcasts are accurate and reliable and often the dedicated time servers that receive them are less expensive than their GPS alternatives.

GPS is available everywhere on the globe as a source of UTC time. GPS antennas do good a good 180 degree view of the sky and require a good 48 hours to receive a stable ‘locked’ satellite fix.

Arrange your network into strata. Stratum levels signify the distance from a timing source. A stratum 0 server is an atomic clock while a stratum 1 server is a dedicated time server that receives the time from a stratum 0 source. Stratum 2 devices are machines that receive their timing source from a stratum 1 server but stratum 2 devices can also be used to pass on timing information. By ensuring you have enough stratum levels you will avoid congestion in your network and time server.

How to Configure an Authoritative Time Server in Windows Server 2008

Thursday, October 16th, 2008

Time synchronisation in modern computer networks is essential, all computers need to know the time as many applications, from sending an email to storing information are reliant on the PC knowing when the event took place.

Microsoft Windows Server from 2000 onwards has a time synchronisation utility built into the operating system called Windows Time (w32time.exe) which can be configured to operate as a network time server.

Windows Server 2008 can easily set the system clock to use UTC (Coordinated Universal Time, the World’s time standard) by accessing an Internet source (either: time.windows.com or time.nist.gov).

To achieve this, a user merely has to double click the clock on their desktop and adjust the settings in the Internet Time tab.

It must be noted however, that Microsoft and other operating system manufacturers strongly advise that external timing references should be used as Internet sources can’t be authenticated.

To configure the Windows Time service to use an external time source, click Start, Run and type regedit then click OK.

Locate the following subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
In the right pane, right-click Type then click Modify, in edit Value type NTP in the Value data box then click OK.

Locate the following subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags.
In the right pane, right-click AnnounceFlags and click Modify. The ‘AnnounceFlags’ registry entry indicates whether the server is a trusted time reference, 5 indicates a trusted source so in the Edit DWORD Value box, under Value Data, type 5, then click OK.

Network Time Protocol (NTP) is an Internet protocol used for the transfer of accurate time, providing time information along so that a precise time can be obtained
To enable the Network Time Protocol; NTPserver, locate and click:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\
In the right pane, right-click Enabled, then click Modify.

In the Edit DWord Value box, type 1 under Value data, then click OK.

Now go back and click on
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
In the right pane, right-click NtpServer, then Modify, in the Edit DWORD Value under Value Data type In the right pane, right-click NtpServer, then Modify, in the Edit DWORD Value under Value Data type the Domain Name System (DNS), each DNS must be unique and you must append 0×1 to the end of each DNS name otherwise changes will not take effect.

Now click Ok.

Locate and click the following
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
In the right pane, right-click SpecialPollInterval, then click Modify.

In the Edit DWORD Value box, under Value Data, type the number of seconds you want for each poll, ie 900 will poll every 15 minutes, then click OK.
To configure the time correction settings, locate:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\config
In the right pane, right-click MaxPosPhaseCorrection, then Modify, in the Edit DWORD Value box, under Base, click Decimal, under Value Data, type a time in seconds such as 3600 (an hour) then click OK.
Now go back and click:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\config
In the right pane, right-click MaxNegPhaseCorrection, then Modify.

In the Edit DWORD box under base, click Decimal, under value data type the time in seconds you want to poll such as 3600 (polls in one hour)
Exit Registry Editor
Now, to restart windows time service, click Start, Run (or alternatively use the command prompt facility) and type:

net stop w32time && net start w32time
And that’s it your time server should be now up and running.

Windows Time Server Synchronising Your Network With NTP

Wednesday, October 15th, 2008

Nearly all a computers activity involves time whether logging a timestamp for when a network was accessed to sending an email, knowing the time is crucial for computer applications.

All computers have an on-board clock that provides time and date information. These Real Time Clock (RTC) chips are battery backed so that even when off they can maintain time, however these RTC chips are mass produced and cannot maintain accurate time and tend to drift.

For many applications this can be quite adequate, however if a computer is on a network and needs to talk to other machines, failing to be synchonised to the correct time can mean many time-sensitive transactions can not be completed and can even leave the network open to security threats.

All versions of Windows Server since 2000 have included a time synchronization facility, called Windows Time Service (w32time.exe), built into the operating system. This can be configured to operate as a network time server synchronizing all machines to a specific time source.

Windows Time Service uses a version of NTP (Network Time Protocol), normally a simplified version, of the Internet protocol which is designed to synchronise machines on a network, NTP is also the standard for which most computer networks across the global use to synchronise with.

Choosing the correct time source is vitally important. Most networks are synchronized to UTC (Coordinated Universal Time) source. UTC is a global standardized time based on atomic clocks which are the most accurate time sources.

UTC can be obtained over the Internet from such places as time.nist.gov (us Naval Observatory) or time.windows.com (Microsoft) but it must be noted that internet time sources can not be authenticated which can leave a system open to abuse and Microsoft and others advise using an external hardware source as a reference clock such as a specialized NTP server.

NTP servers receive their time source from either a specialist radio transmission from national physics laboratories which broadcast UTC time taken from an atomic clock source or by the GPS network which also relays UTC as a consequence of needing it to pin point locations.

NTP can maintain time over the public Internet to within 1/100th of a second (10 milliseconds) and can perform even better over LANs.

Keeping accurate time on Linux

Friday, October 10th, 2008

If you want to be sure that your computer clock is accurate you can configure your system to use NTP (Network Time Protocol), one of the oldest Internet protocols and the industry standard for time synchronisation.

NTP on will synchronise your computer’s clock to a pool of time servers around the world that are official ‘timekeepers’. It is best to choose the closest to you so response time is minimized and to use more than one in case one goes down. There are more than 1.500 servers to choose from, but some areas are better served than others. Many servers on the internet are extremely inaccurate and Internet time references should not be used as a replacement for a dedicated time server.

However, for basic time synchronisation purposes, Internet providers will suffice. The first step should be to select three servers close to you – preferably in your country, or if there aren’t enough, in your ‘zone. Go to ntp home and browse through the tree of zones and servers to select which ones are best for you. The follow these commands to configure:

1. Configure /etc/ntp.conf
Edit this file with a text-editor. Replace
server <example-server-name>
with your servers, such as:

server 0.br.pool.ntp.org
server 1.br.pool.ntp.org
server 2.br.pool.ntp.org

2. Synchronise your clock manually
If your clock is drifting too NTP might refuse to synchronise it, but it can be done manually:

ntpdate 0.br.pool.ntp.org (server name that you choose)

3. Make your ntp daemon executable

chmod +x /etc/rc.d/rc.ntpd

4. Start NTP now without rebooting
Again, a simple command:

/etc/rc.d/rc.ntpd start

The Atomic Clock and the NTP Time Server

Wednesday, October 1st, 2008

Most people have heard of atomic clocks, their accuracy and precision are well known. An ato0mic clock has the potential to keep time for several hundred million years and not lose a second in drift. Drift is the process where clocks lose or gain time because of the inaccuracies in the mechanisms that make them work.

Mechanical clocks, for instance, have been around for hundreds of years but even the most expensive and well engineered will drift at least a second a day. Whilst electronic clocks are more accurate they also will drift by about a second a week.

Atomic clocks have no comparison when it comes to time keeping. Because an atomic clock is based on the oscillation of an atom (in most cases the caesium 133 atom) which has an exact and finite resonance (caesium is 9,192,631,770 every second) this makes them accurate to within a billionth of a second (a nanosecond).

While this type of accuracy is unparalleled it has made possible technologies and innovations that have changed the world. Satellite communication is only possible thanks to the time keeping of atomic clocks, so is satellite navigation. As the speed of light (and therefore radio waves) travel at over 300,000km a second an inaccuracy of a second could see a navigation system be hundreds of thousands of miles out.

Precise accuracy is also essential in many modern computer applications. Global communication, particularly financial transactions have to be done precisely. In Wall Street or the London stock exchange a second can see the value of stock rise or fall by millions. Online reservation also requires the accuracy and perfect synchronisation only atomic clocks can provide otherwise tickets could be sold more than once and cash machines could end up paying out your wages twice if you found a cash machine with a slow clock.

Whilst this may sound desirable to the more dishonest of us, it doesn’t take much imagination to understand what problems a lack of accuracy and synchronisation could cause. For this reason an International timescale based on the time told by atomic clocks has been developed.

UTC (Coordinated Universal Time) is the same everywhere and can account for the slowing of the Earth’s rotation by adding leap seconds to keep UTC inline with GMT (Greenwich Meantime). All computer networks that participate in global communication need to be synchronised to UTC. Because UTC is based on the time told by atomic clocks it is the most precise timescale possible. For a computer network to receive and keep synchronised to UTC  it first needs access to an atomic clock. These are expensive and large pieces of equipment and are generally only to be found in large scale physics laboratories.

Fortunately the time told by these clocks can still be received by a network time server wither by utilising time and frequency long wave broadcasts transmitted by national physics laboratories or from the GPS (Global Positioning system). NTP (network time protocol) can then distribute this UTC time to the network and use the time signal to keep all devices on the network perfectly synchronised to UTC.