ntpd で時刻同期されない

前から、nptd で「Invalid argument」のエラーがでて、ntpq で調べると同期していないことがよくあった。

sendto(210.173.160.87) (fd=23): Invalid argument: 84 time(s)

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ntp-b2.nict.go. .NICT.           1 u   4d 1024    0   28.833   -0.974   0.000
 ntp-b3.nict.go. .NICT.           1 u   4d 1024    0   28.564   -0.524   0.000
 ntp3.jst.mfeed. 133.243.236.20   2 u   4d 1024    0   24.476   -0.475   0.000
*LOCAL(0)        .LOCL.          13 l   22   64  377    0.000    0.000   0.001

再起動すると正常に同期するが、また何日かすると同じエラーがでて同期していないということが続いたのでちょっと調べた。すると以下のメーリングリストに全く同じ現象の質問があり、回答もあった。

今のNTPDは自ホストのIPアドレスDHCP等によって変化した場合、再起動が必要なようです。
(http://lists.ntp.isc.org/pipermail/questions/2005-August/006340.html あたりにありました)

sendto(x.y.z.w): Invalid argumentというメッセージがログに多発しているようならこの問題かも知れません。対策はインターフェースがアップし直す度にインターフェースの起動スクリプトからNTPDも再起動せよということのようです。

なるほど、こちらのIPが変わるとダメなようだ。
pppoeの再起動シェルにntpを再起動する処理を追加した。これで少し様子を見てみる。