デフォルトゲートウェイをntpサーバーとして使用する

デフォルトゲートウェイをntpサーバーとして使用する

Debian を実行しているサーバーが複数あり、すべてのデフォルトゲートウェイで実行されている NTP サーバーにクロックを同期する必要があります。さまざまなネットワークセグメントに多数のサーバーがあるため、ゲートウェイのIPアドレスが何であるかを調べ、/etc/ntp.conf各サーバーに対して手動で変更する必要があります。

この作業には時間がかかり、ネットワーク構造が頻繁に変更されることがわかっているので、どのような部分があるのか​​疑問に思います。簡単な方法(毎年IPアドレスを手動で変更するよりも簡単です。)ntpクライアントを「デフォルトゲートウェイへの自動同期」モードに設定します。そのようなことは可能ですか?

答え1

Jeff Schallerと議論した後、ntpの前に実行され、ゲートウェイアドレスを次に追加するinit.d簡単なスクリプトを追加しました。set-gateway-as-ntp/etc/ntp.conf

#! /bin/sh
### BEGIN INIT INFO
# Provides:          setgatewayasntp
# Required-Start:    $network
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Start-Before:    $ntp
# Short-Description: Set gateway as NTP server
# Description:       Set gateway address to /etc/ntp.conf
### END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Set Gateway as NTP"

. /lib/init/vars.sh
. /lib/lsb/init-functions

case "$1" in
  start)
    gateway_ip=`ip route show default | awk '/default/ {print $3}'`
    sed -i /etc/ntp.conf -e "s/^server .*/server $gateway_ip/"
    ;;
  stop)
    ;;
  *)
    echo "Usage: $SCRIPTNAME {start|stop}" >&2
    exit 3
    ;;
esac

:

私はこの解決策はあまり誇りに思っていませんが、私の問題を解決しました。

答え2

最も簡単な解決策は、dhcpリースにntp-servers optinoを提供することです。

subnet 192.168.10.0 netmask 255.255.255.0 {
    option routers 192.168.10.1;
    option ntp-servers 192.168.10.1, 192.168.10.50;
    BLAH BLAH
 }

デフォルトでは、Debian の ntp パッケージには、dhcp リースリストにリストされている ntp サーバーを ntp.conf に追加する dhcp-exit フックが含まれています。

関連情報