MulticastNtp
Once you have MulticastRoutes set up, you can configure network time synchronization (via the Network Time Protocol, NTP) to use multicast. Theoretically this could significantly reduce the load on your time server. Also, it generalizes the configuration of your clients, since they no longer have to be pointed at a specific time server.
I have only been able to make this work totally correctly with ntp v4.0.99k and later.
- Add a 'broadcast' entry to /etc/ntp.conf on the ntp server(s):
broadcast 224.0.1.1 # broadcast to the multicast address.
- Remove all 'server' entries from /etc/ntp.conf on client systems.
- Add a multicast client entry to /etc/ntp.conf on each client:
multicastclient # listen on the reserved ntp multicast address of 224.0.1.1
Optional: The unix ntp client will refuse to start up if the system clock is more than 1 hour off the server clock. If you know the server is always right, you can add a call to 'ntpdate' before ntpd starts. This happens automatically under RedHat if the file /etc/ntp/step-tickers exists and contains a list of servers. If you place only the address '224.0.0.1' in this file, ntpdate will set the system clock to the time that is being multicasted. I don't know why, but this address has to be 224.0.0.1, not 224.0.1.1.
Under other Unix-ish OSes, you can accomplish the same with a call to ntpdate in an rc script before ntpd starts:
ntpdate 224.0.0.1
Now that you have this configured and ntpd restarted on all the systems, test it out:
- ntpq -p should print the name of every multicast server that the system is synchronized to.
- ntpdate -q 224.0.0.1 should report the time on every multicast server.
(Let the server run a few minutes before trying these out, to give everything time to start up and stabilize)