2

I'm trying to get NTP multicast set up between a few computers. Right now I'm getting NTP multicast packets from a computer that I have neither access to nor information on (let's call that A) that is serving as a stratum 4 NTP multicast server and I'm trying to get a few computers' time to synchronize to that.

The computers that I'm trying to sync (let's call them B) are running CentOS6.4 and use ntpd version 4.2.4p8. B can receive the multicast packet from A but can't access A otherwise (can't ping). From B, A is the only NTP server available. ntpd is set to start when computer boots up and is called with the "-g" flag. From the NTP multicast packets I gathered that A is sending to multicast address "224.0.1.1" from IP address "192.168.1.103"

Below is ntp.conf from B:

tinker panic 0
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
restrict 192.168.1.103 kod nomodify noquery notrap
multicastclient 224.0.1.1
disable auth

Right now computer B receives NTP packets from A, and given enough time, ntpstat on B will show that it is synced to A. If time on B is essentially (within seconds) the same as that on A when I started ntpd on B, then if I change time on B after ntpstat shows "synchronized" on B, time gets changed back within about ~30minutes. If I change the time on B to be minutes different from A or greater and start ntpd on B, ntpstat will eventually say "synchronized" but the time will still be wrong and will not change at all (so far waited for up to 3 days). Using ntpq -pn shows the offset as something in the tens (10~40) while the time on B off by something that's well into minutes or hours.

I'm hoping to get B set up so that even if the time on B is different from A by some arbitrarily large amount when it syncs to A it will adjust back. I'm wondering if there's a way to either configure ntpd on B to be able to do that or to have something that parses the multicast packets from A and either gives me a correct timestamp or the time difference between A and B.

So far I've tried ntpdate and sntp, neither worked. I've also tried getting the timestamps using ntpq, but that turned out to be not helpful (either 0 or simply local time).

0
  • Please try to remove "nopeer" flag from the "restrict" statement. If "nopeer" is not removed multicast connection cannot be established.
  • You can also disable all other restrict statements except the default one and keep just the lines as followings below:

driftfile /var/lib/ntp/drift

restrict -4 default notrap nomodify

broadcast 224.0.1.1

disable auth

multicastclient 224.0.1.1

Also after the configuration it is needed to restart ntp service:

service ntp restart

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.