Ntpdは、その認証機構がIPアドレスと結びついているため、マルチキャストパケットを送信する際に、送信元となる自分自身のIPアドレスをntpd自身が明示的に知る必要があります。そのため、IPマルチキャスト用のソケット(socket)を取得する際、そのIPマルチキャストアドレス(通常なら 224.0.1.1)で経路情報(routing table)を引き、得られたネットワークインターフェースのIPアドレスを送信元IPアドレスとするようです。この赤字の部分が誤り。
まず、マルチキャストサーバモードの時の動作だが、manpageの記述も間違っている。
IPマルチキャストを使う場合、つまり、
- broadcast
- For type b and m addresses (only), this command mobilizes a persistent broadcast mode association. Multiple commands can be used to specify multiple local broadcast interfaces (subnets) and/or multiple multicast groups. Note that local broadcast messages go only to the interface associated with the subnet specified, but multicast messages go to all interfaces.
/etc/ntp.conf
の中で、broadcast
コマンドにIPマルチキャストアドレス(m address)を指定した場合、すべてのインターフェースに対してマルチキャストメッセージが送信される、となっている。実際には、この通りにはならない。実際には、複数のインターフェースを持っている場合には、マルチキャストメッセージが送信されるのは、それらのインターフェースの中の一つのみ。しかも、それは
ip route show
で表示されるルーティングテーブルとは無関係の様だ。この現象は、NTP BugzillaのBug ID 785として扱われているようだ。バージョン4.2.6辺りで修正されるのかもしれない。
0 件のコメント:
コメントを投稿