avahi-daemon 重复注册/撤回地址记录导致网络故障

Pau*_*l D 7 networking avahi ethernet

我使用的是 Ubuntu 15.10,通过以太网连接到我的电缆型号路由器。安装 Ubuntu 后我没有以任何方式自定义网络设置。我注意到启动后大约 12 到 24 小时后,Ubuntu 开始断开互联网连接。通常我会在网页无法加载图像或 CSS 文件后注意到这一点。发生这种情况时,我注意到/var/syslog充满了如下条目:

Jan  8 05:26:40 46lbs avahi-daemon[730]: Registering new address record for 2605:e000:850e:8800:d9cb:5166:bac1:61d2 on eth0.*.
Jan  8 05:26:40 46lbs avahi-daemon[730]: Withdrawing address record for 2605:e000:850e:8800:d9cb:5166:bac1:61d2 on eth0.
Jan  8 05:26:43 46lbs avahi-daemon[730]: Registering new address record for 2605:e000:850e:8800:d9cb:5166:bac1:61d2 on eth0.*.
Jan  8 05:26:43 46lbs avahi-daemon[730]: Withdrawing address record for 2605:e000:850e:8800:d9cb:5166:bac1:61d2 on eth0.
Jan  8 05:26:46 46lbs avahi-daemon[730]: Registering new address record for 2605:e000:850e:8800:d9cb:5166:bac1:61d2 on eth0.*.
Jan  8 05:26:46 46lbs avahi-daemon[730]: Withdrawing address record for 2605:e000:850e:8800:d9cb:5166:bac1:61d2 on eth0.
Jan  8 05:26:49 46lbs avahi-daemon[730]: Registering new address record for 2605:e000:850e:8800:d9cb:5166:bac1:61d2 on eth0.*.
Jan  8 05:26:49 46lbs avahi-daemon[730]: Withdrawing address record for 2605:e000:850e:8800:d9cb:5166:bac1:61d2 on eth0.
Jan  8 05:26:52 46lbs avahi-daemon[730]: Registering new address record for 2605:e000:850e:8800:d9cb:5166:bac1:61d2 on eth0.*.
Jan  8 05:26:52 46lbs avahi-daemon[730]: Withdrawing address record for 2605:e000:850e:8800:d9cb:5166:bac1:61d2 on eth0.
Run Code Online (Sandbox Code Playgroud)

通常我可以通过使用 Ubuntu 工具栏中的网络图标断开有线连接,然后重新连接来恢复正常的互联网使用。然而,这很麻烦。我想保留 avahi 守护进程以供发现之用。有谁知道如何阻止这种行为?作为记录,这是我的输出ifconfig

eth0      Link encap:Ethernet  HWaddr 08:62:66:7c:ea:35  
      inet addr:192.168.0.4  Bcast:192.168.0.255  Mask:255.255.255.0
      inet6 addr: 2605:e000:850e:8800:8729:2a19:e7c8:5738/128 Scope:Global
      inet6 addr: fe80::a62:66ff:fe7c:ea35/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:4638380 errors:0 dropped:9 overruns:0 frame:0
      TX packets:2164811 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:5378789738 (5.3 GB)  TX bytes:231746518 (231.7 MB)
      Interrupt:20 Memory:fb200000-fb220000 

lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:65536  Metric:1
      RX packets:40049332 errors:0 dropped:0 overruns:0 frame:0
      TX packets:40049332 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:2898153546 (2.8 GB)  TX bytes:2898153546 (2.8 GB)
Run Code Online (Sandbox Code Playgroud)

小智 2

我也遇到了同样的问题,在寻找答案时发现了你的问题。我还在serverfault 上发现了这个问题

如果该服务器使用的 DNS 服务器有 .local 域,那么 avahi 将无法工作。有关详细信息,请参阅http://avahi.org/wiki/AvahiAndUnicastDotLocal 。

当我从 DNS 服务器中删除 .local 域时,问题就消失了。希望你也能取得同样的成功。


Pet*_*etr 0

一条评论指向https://github.com/lathiat/avahi/issues/41,其中解释了该问题:

当设置 ipv6.ip6-privacy 2(启用,首选临时 IP)时,最终 Preferred_lft 达到 0 秒,该地址将被弃用,此时 avahi-daemon 会变得疯狂并开始每三秒淹没日志。日记中 80% 的内容都充满了这些信息。

在解决此问题之前,解决方法是删除这些日志消息。用于rsyslog写入

if $programname == "avahi-daemon" and
    ($msg contains "Registering new address record for" or
     $msg contains "Withdrawing address record for") then {
  stop
}
Run Code Online (Sandbox Code Playgroud)

/etc/rsyslog.d/50-avahi-rsyslog-b41.conf重新启动守护进程就可以了。