linux - 为什么NTP监听的是广播IP

标签 linux ntp ntpd

这是一台物理SBC机器,客户创建了很多虚拟IP(这与电信中的relem和vnet概念有关)

这里我们创建了 eth2eth3 作为信号接口(interface)。 eth2eth3 被视为一个 vlan 并绑定(bind) relem eth2:6eth3.1238: 0 到这些 vlan

在我们的例子中,我们从 ntp.conf 中丢弃了 eth2eth3,因为有多个 relem 绑定(bind)到 eth2eth3 所以 ntp 尝试为每个 session 创建一个套接字,问题是所有文件描述符都用完了。这就是为什么我们只添加 eth0 接口(interface)并且我们不希望 npt 监听除 eth0 之外的任何接口(interface)所以我使用了接口(interface)忽略通配符选项。

但是我们可以看到,在 ntp.conf 中进行更改后,它正在尝试监听广播地址,但由于意外错误而无法绑定(bind)。

ntpd[89217]: ./../lib/isc/unix/ifiter_ioctl.c:617: unexpected error:
ntpd[89217]: eth2:6: getting broadcast address: Cannot assign requested address
ntpd[89217]: i/o error on routing socket No buffer space available – disabling
ntpd[5410]: ./../lib/isc/unix/ifiter_ioctl.c:617: unexpected error:
ntpd[5410]: eth3.1238:0: getting broadcast address: Cannot assign requested address
ntpd[5410]: ntpd exiting on signal 15
ntpd[1508]: ntpd exiting on signal 15

ntp.conf

fudge 127.127.1.0 stratum 10
Authentication stuff
keys /etc/ntp.keys
path for keys file
trustedkey 1
define trusted keys
requestkey 1
server 172.23.5.8 iburst
server 172.23.5.9 iburst
restrict 172.23.5.8
restrict 172.23.5.9
key (7) for accessing server variables
controlkey 15 # key (6) for accessing server variables
extra lines to fix issue about NTP Daemon
interface listen eth0
interface ignore wildcard

打个电话

256: eth3.897@eth3: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 00:1e:67:53:e0:b2 brd ff:ff:ff:ff:ff:ff
inet 169.254.66.8/18 brd 169.254.127.255 scope global eth3.897:0
inet6 fe80::21e:67ff:fe53:e0b2/64 scope link nodad
valid_lft forever preferred_lft forever
257: eth3.951@eth3: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 00:1e:67:53:e0:b2 brd ff:ff:ff:ff:ff:ff
inet 169.254.66.118/18 brd 169.254.127.255 scope global eth3.951:0
inet6 fe80::21e:67ff:fe53:e0b2/64 scope link nodad
valid_lft forever preferred_lft forever
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet6 ::1/128 scope host nodad

谁能告诉我如何解决这个错误?

最佳答案

我一直无法重现您的问题,但我怀疑有一些问题在起作用;

某处您的某个接口(interface)上可能存在 IP 地址配置问题(这就是您收到绑定(bind)错误的原因)我也想知道您的系统上是否有多个配置文件,因为您之前的问题文本显示有效ntpq -pcrv 的输出,这意味着它在您进行该测试时正在运行。

在较早的 edit关于你的问题,你显示了 ntpq -pcrv 的有效输出,表明 ntp 已经在运行。您可能安装了多个版本,或者尝试运行多个实例 - 您还应该检查一下。

信号 15 是 SIGTERM - 这意味着“某事”终止了它,而不是它死亡/崩溃等。

下面是我在生产环境中的配置文件。 (这是一个带有直接连接引用时钟的 S1 服务器,但我已经删除了配置的冗余位)

#YOU SHOULD ALSO ADD:
interface ignore wildcard
interface listen eth0

driftfile /var/lib/ntp/drift
leapfile "/etc/ntp/leap-seconds.3676752000"

restrict default kod nomodify
restrict -6 default kod nomodify
restrict 127.0.0.1
restrict -6 ::1

server server1
server server2
server server3
server server4
server server5

#REQUIRES MCAST SETUP/CONFIG
broadcast 224.0.1.1 key 6
manycastserver 239.255.254.254

includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
trustedkey 6

serverX 替换为您自己的上游服务器 - 您需要 最少 3 个服务器,最好是 5 个服务器以实现稳健的 ntp 操作。

重新启动 ntp 并等待一段时间 - 然后运行 ​​ntpq -pcrv 并检查输出。以下是我的供引用;

    ntpq -pcrv
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-server1         10.10.10.14      2 u   50   64  377   29.791    0.421   0.147
-server2         .GPS.            1 u   66   64  377    9.694    0.255   0.218
#server3          10.10.10.74     2 u   23   64  377    7.376    0.685   0.057
+server4         .PPS.            1 u    3   64  377   16.979   -0.894   0.185
-server5         .DCFa.           1 u   13   64  377    9.016    0.481   0.251
 ntp.mcast.net   .MCST.          16 u    -   64    0    0.000    0.000   0.002
 LOCAL(0)        .LOCL.          10 l    -   64    0    0.000    0.000   0.000
+SHM(0)          .GPS.            0 l    6   16  377    0.000    6.366   8.976
*SHM(1)          .PPS.            0 l   16   16  377    0.000   -0.046   0.011
associd=0 status=0415 leap_none, sync_uhf_radio, 1 event, clock_sync,
version="ntpd 4.2.6p5@1.2349-o Tue May 31 10:09:21 UTC 2016 (1)",
processor="x86_64", system="Linux/4.7.3-1.el6.elrepo.x86_64", leap=00,
stratum=1, precision=-19, rootdelay=0.000, rootdisp=1.225, refid=PPS,
reftime=dbc612ab.93ca4dbf  Thu, Nov  3 2016 19:46:51.577,
clock=dbc612bc.05f5dedc  Thu, Nov  3 2016 19:47:08.023, peer=52638, tc=4,
mintc=3, offset=-0.129, frequency=-68.142, sys_jitter=0.115, clk_jitter=0.051, clk_wander=0.012, tai=36, leapsec=201507010000,
expire=201612010000

我的飞跃是未武装的,因为我没有重新加载以包括今年年底到期的最新插入内容。

关于linux - 为什么NTP监听的是广播IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40150029/

相关文章:

amazon-web-services - aws s3 时间未同步,使用 awsaccesskeyid 的身份验证失败

c#-4.0 - 将 NTP 时间戳转换为 UTC

linux - 设备正在从 ntpd 获取时间,但 "ntpq -p"命令正在超时

linux - VirtualBox 自定义屏幕分辨率问题

linux - 为什么我编译的bash(3.8M)比我的系统提供的bash(937K)大?

linux - 从 Linux 服务器中删除旧用户的主目录

linux - 了解 'local' 输出中的 "ntpd -c peers"列

time - 我期望来自以太网同一子网上的 0 层 NTP 服务器的时间有多准确?

带参数的 C++ 简单线程(无 .net)