我可以在不禁用 IPv6 的情况下停止 IPv6“路由器通告”填充系统日志吗?

我可以在不禁用 IPv6 的情况下停止 IPv6“路由器通告”填充系统日志吗?

我的系统日志如下所示:

Apr  1 19:05:25 raspberrypi dhcpcd[699]: eth0: Router Advertisement from fe80::c23e:fff:fe63:5170
Apr  1 19:07:35 raspberrypi dhcpcd[699]: eth0: Router Advertisement from fe80::c23e:fff:fe63:5170
Apr  1 19:10:26 raspberrypi dhcpcd[699]: eth0: Router Advertisement from fe80::c23e:fff:fe63:5170
Apr  1 19:13:10 raspberrypi dhcpcd[699]: eth0: Router Advertisement from fe80::c23e:fff:fe63:5170
Apr  1 19:15:13 raspberrypi dhcpcd[699]: eth0: Router Advertisement from fe80::c23e:fff:fe63:5170
Apr  1 19:17:01 raspberrypi CRON[8809]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Apr  1 19:18:05 raspberrypi dhcpcd[699]: eth0: Router Advertisement from fe80::c23e:fff:fe63:5170
Apr  1 19:20:41 raspberrypi dhcpcd[699]: eth0: Router Advertisement from fe80::c23e:fff:fe63:5170
Apr  1 19:24:41 raspberrypi dhcpcd[699]: eth0: Router Advertisement from fe80::c23e:fff:fe63:5170
Apr  1 19:27:49 raspberrypi dhcpcd[699]: eth0: Router Advertisement from fe80::c23e:fff:fe63:5170
Apr  1 19:29:30 raspberrypi dhcpcd[699]: eth0: Router Advertisement from fe80::c23e:fff:fe63:5170
Apr  1 19:29:43 raspberrypi dhcpcd[699]: eth0: Router Advertisement from fe80::c23e:fff:fe63:5170
Apr  1 19:31:25 raspberrypi dhcpcd[699]: eth0: Router Advertisement from fe80::c23e:fff:fe63:5170
Apr  1 19:35:23 raspberrypi dhcpcd[699]: eth0: Router Advertisement from fe80::c23e:fff:fe63:5170
Apr  1 19:36:25 raspberrypi dhcpcd[699]: eth0: Router Advertisement from fe80::c23e:fff:fe63:5170

我很难理解这是什么,但这使得扫描系统日志有点烦人(我是 Linux 新手,在 Raspbian Jessie Lite 上进行设置,并试图密切关注这一点以确保我没有设置任何内容)正在引起问题)。

我在网上找到了很多信息,说我应该输入,noipv6rs/etc/dhcpcd.conf手册上却说Disable solicitation and receipt of IPv6 Router Advertisements。我不清楚这意味着什么;我真的只是希望它不要向我的日志发送垃圾邮件,而不是改变任何行为。

我真的对更改 DHCP 客户端或从现在开始的任何内容不感兴趣(我正在尝试对 Raspbian Jessie Lite 映像进行尽可能少的更改)。

所以;设置的含义是什么noipv6rs和/或有更好的方法吗?我应该设置logfile并让 DHCP 登录到另一个地方并忽略它吗?

答案1

Raspbian 使用 rsyslog 作为其系统日志服务。如果您查看 rsyslog 文档过滤条件它可以告诉您如何对任何过滤器操作执行此操作。

要回答您的具体问题,您可以将此行放在 rsyslog 配置文件顶部附近(通常位于 /etc/rsyslog.conf):

:msg, contains, "Router Advertisement from" stop

让我来分解一下...

:msg这指定您将查看系统日志消息正文

contains可以在消息中的任何位置

"Router Advertisement from"这就是您正在寻找的

~这是丢弃动作

您还应该注意,文件中的位置是相关的,因为操作是按顺序执行的。文档中的丢弃示例更详细地解释了这一点。

答案2

我查了一下原因;它对你没有帮助,但也许很有趣。我在使用支持 IPv6 的 OpenWrt 路由器时没有注意到这一点。

/* We don't want to spam the log with the fact we got an RA every
 * 30 seconds or so, so only spam the log if it's different. */
if (options & DHCPCD_DEBUG || rap == NULL ||
    (rap->expired || rap->data_len != len ||
     memcmp(rap->data, (unsigned char *)icp, rap->data_len) != 0))
{
    if (rap) {
        free(rap->data);
        rap->data_len = 0;
    }
    syslog(LOG_INFO, "%s: Router Advertisement from %s",
        ifp->name, sfrom);

我尚未确认这可能会导致该消息,但查看上述测试我注意到一个嫌疑人。如果 RA 在收到下一个 RA 之前“过期”,它将记录下来。后来的版本将该消息降级为调试语句,并描述相关原因。

/* We could change the debug level based on new_data, but some
     * routers like to decrease the advertised valid and preferred times
     * in accordance with the own prefix times which would result in too
     * much needless log spam. */
    logger(ifp->ctx, new_rap ? LOG_INFO : LOG_DEBUG,
        "%s: Router Advertisement from %s",
        ifp->name, ctx->sfrom);

发送立即过期的路由器通告是完全合法的。显然,它应该表明源不应用作默认路由器,但该声明可以提供其他信息,这些信息将有自己的生命周期。 (例如,可能是特定路由或 DNS 服务器)。

路由器寿命

16 位无符号整数。与默认路由器关联的生命周期(以秒为单位)。该字段可以包含最大 65535 的值,接收者应该处理任何值,而第 6 节中的发送规则将生命周期限制为 9000 秒。生命周期为 0 表示该路由器不是默认路由器,并且不应出现在默认路由器列表中。路由器生命周期仅适用于路由器作为默认路由器的有用性;它不适用于其他消息字段或选项中包含的信息。需要对其信息进行时间限制的选项包括其自己的生命周期字段。

对于普通的“客户边缘路由器”,我提到的两种路由器行为都是特别推荐的。

为了支持在多前缀环境 [MULTIHOMING-WITHOUT-NAT] 中不处理多宿主的主机实现,IPv6 CE 路由器不应(如下文要求中详述)将自己通告为 LAN 接口上的默认路由器当 WAN 接口上没有 IPv6 连接或未为其配置 IPv6 地址时。

如果您有任何依赖 IPv4 正常工作的旧设置(旧 DHCP 不支持多个路由器),则此概念可能会很糟糕。也许是旧的网络打印机,或者 Linux 使用 Avahi 实现的 MDNS 来发现其他计算机和打印机,默认情况下禁用 IPv6。

答案3

我的 Raspbian 附带DHCPCD服务在默认值上运行。

我更改了配置文件,/etc/dhcpcd.conf通过在末尾添加一些我自己的选项(这是man dhcpcd.conf对于任何有兴趣的人):

# the rest of the options are above
ipv4only
noipv6
nodhcp6

然后重新启动服务:sudo service dhcpcd restart。从那时起日志就更干净了。

PS:我对这些选择很偏执。我确信只要其中之一就足够了,但我没有耐心去一一测试。如果你知道它是哪一个,请评论我。

答案4

正如anzo2001指出的那样,dhcpcd在Raspbian上默认处于活动状态,并且它使用dhcpv6。

通过添加以下选项在 /etc/dhcpcd.conf 中禁用 dhcpv6:

nodhcp6

IPV6 可能仍然有效,但它将使用SLAAC 代替 dhcpv6用于地址归属,并且不再记录自己的路由器广告。

相关内容