使用默认网关作为 ntp 服务器

使用默认网关作为 ntp 服务器

我有很多运行 debian 的服务器,它们都必须将时钟同步到在各自默认网关上运行的 NTP 服务器。由于许多不同的网段上有许多服务器,因此我必须找出网关IP地址是什么,并/etc/ntp.conf为每个服务器手动更改。

由于这花了一些时间,而且我知道网络结构会不时发生变化,我想知道是否有一些简单的方法(比每年左右手动更改IP地址更容易)将ntp客户端设置为“自动同步到默认网关”模式。这样的事情可能吗?

答案1

与 Jeff Schaller 讨论后,我刚刚添加了一个init.d名为的简单脚本,set-gateway-as-ntp该脚本在 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-exit 挂钩,它将 dhcp 租约中列出的 ntpserver 添加到 ntp.conf 中。

相关内容