进一步阅读

进一步阅读

我在虚拟专用服务器上安装了 OpenBSD 5.9。与当今 No More IPv4 Address Space For You 的其他人一样,该计算机仅分配了 /32,即只有一个 IPv4 地址的 LAN。 LAN 上的(唯一)其他节点是托管提供商提供的通往世界的默认网关。它实际上是一个由两个节点组成的 LAN,但没有 IP 广播。

解决这个问题的方法相当简单并且众所周知。像平常一样设置默认路由,并通过 LAN 网络接口创建静态路由以到达默认网关本身。后者是在我的/etc/hostname.vio0以下行中完成的

!路由添加188.165.223.254 -static -link -iface vio0

不幸的是,这不起作用。该机器经常失去与整个世界的连接。

我发现,一两天后,通过该接口的静态路由已完全从路由表中消失,看起来是随机的,一天中没有特别规律的时间。添加回来后,它又会消失。检查后发现没有 cron 作业或其他计划任务可以触发它,而且它也不会与分钟边界对齐。此外,在发生这种情况的大多数情况下,机器基本上处于闲置状态。

route monitor通过管道连接cyclog到日志目录并使其运行数天,以便在问题发生时捕获问题,结果表明是内核本身在执行此操作,而不是某些用户进程:

2016-07-29 06:27:08.436729680 于 2016 年 7 月 29 日星期五 06:27:08 收到大小为 144 的消息
2016-07-29 06:27:08.436740030 RTM_DELETE:删除路由:len 144,优先级 0,表 0,ifidx 1,pid:0,seq 0,errno 0
2016-07-29 06:27:08.436747000 标志:
2016-07-29 06:27:08.436752930 使用:0 mtu:0 过期:0
2016-07-29 06:27:08.436759100 锁:初始化:
2016-07-29 06:27:08.436764620 sockaddrs:
2016-07-29 06:27:08.436770290 188.165.223.254 链接#1

为什么 OpenBSD 内核要这样做?我该如何阻止它?

进一步阅读

答案1

一位同事认为“这是 OpenBSD 邮件列表的一个”。遵循圣人的建议发帖前务必先阅读邮件列表我发现它已经由 Matthieu Herrb 于 2016 年 2 月提出

事实证明,这是一个 OpenBSD 5.9 内核错误,是 Martin Pieuchot 实现的“新”OpenBSD 路由表自 5.8 以来引入的回归。

应用 M. Pieuchot 的内核补丁sys/netinetsys/netinet6以及重建和安装内核)可以阻止这种情况的发生。

进一步阅读

相关内容