【问题标题】:Why is NTP listenning broadcast IP为什么NTP监听广播IP
【发布时间】:2016-10-20 09:06:54
【问题描述】:

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

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

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

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

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

ip a sh

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

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

【问题讨论】:

    标签: linux ntp ntpd


    【解决方案1】:

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

    您的一个接口上可能有 IP 地址配置问题(这就是您收到绑定错误的原因)我也想知道您的系统上是否有多个配置文件,因为您之前的问题文本显示有效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
    

    我没有准备好飞跃,因为我没有重新加载以包括今年年底到期的最新插入。

    【讨论】:

    • 谢谢,让我看看你的脚本,我会尽快用我的输出更新你。
    • 问题不可重现。我在等一个问题。如果我们将来调试这个问题,你能告诉我我们需要什么日志吗?
    • 我会留意/var/log/messages 并不时运行ntpq -pcrv 以检查一切是否正常。希望您不会再遇到任何问题。
    • 谢谢,实际上这个 NTP 服务是在客户机器上运行的,那么我怎样才能不时获取 ntpq -pcrv 日志呢?我无法控制那台机器。
    • 除非您可以访问机器,否则它有点棘手。取决于你的脚本有多好,你可以做一些拉统计的东西,或者你可以走 RRD/MRTG 路线。老实说,nptd 的日志记录并不为人所知。
    猜你喜欢
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多