我有 2 个实验室系统与外界没有连接。我们的实验室没有 ipv6 基础设施。我们不需要 ipv6。这些机器连接到三个网络,一个是 1GbE 网络,另外两个是 10-GbE 网络。两者都使用简单的非托管交换机。它们本质上是一个 HPC 集群。我们被迫在这个设置上使用 Ubuntu 18.04 LTS,因为其中一台机器只受供应商支持该版本。
我们面临的问题是我们的网络被路由器请求数据包淹没。我们决定先解决一个接口的问题。
我们尝试通过 sysctl.conf 添加以下代码来禁用 ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.enp2s0.disable_ipv6 = 1
这似乎使得 ipv6 地址等消失了,并且各种检查 ipv6 是否处于活动状态的方法都表明它不是。/proc/net/inet_if6 是一个空白文件。sysctl -a 返回
net.ipv6.conf.enp2s0.disable_ipv6 = 1
我们还在 /etc/default/grub 中添加了以下行
GRUB_CMDLINE_LINUX="ipv6.disable=1"
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
但路由器请求数据包仍在继续。因此,我们接着将强大的 Google 认为应该可以阻止此行为的内容添加到 /etc/sysctl.conf 中
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.lo.autoconf = 0
net.ipv6.conf.enp2s0.autoconf = 0
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.enp2s0.forwarding = 0
net.ipv6.conf.all.accept_ra = 0 <tried 1 here as well. Anything but 2 should work>
net.ipv6.conf.default.accept_ra = 0
net.ipv6.conf.lo.accept_ra = 0
但是他们继续前进。tcpdump 显示了以下连续的操作:
12:06:45.860057 IP6 ubuntu18 > ip6-allrouters: ICMP6, router solicitation, length 8
在 1 GbE 上,流量约为 640 Mbits/s!
我们肯定遗漏了什么,但又想不通。也许有人知道答案。
net.ipv6.conf.enp2s0.accept_ra = 0