我的输出中有一些奇怪的消息dmesg
:
[ 7.588762] IPv6: ADDRCONF(NETDEV_UP): enp3s0: link is not ready
[ 7.589616] IPv6: ADDRCONF(NETDEV_UP): enp3s0: link is not ready
[ 7.591897] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready
[ 7.827124] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready
一般来说我不需要ipv6并且它被禁用:
~$ cat /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
甚至eno1
还被拔掉电源。那么为什么我在输出中看到这些消息dmesg
以及如何修复它?
答案1
请随时仔细检查ip -6 addr
。但这些特定的消息往往是一个谜,最好忽略:)。
我启用了 IPv6(但没有 IPv6 路由器或任何东西),我得到
[ 2.229087] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 4.445878] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
由此我得出结论,这与 IPv6 重复地址检测 (DAD) 有关,用于链路本地地址 (LLA) 的无状态地址自动配置 (SLAAC)。即选择一个随机本地地址,它必须检查它是否在本地网络中使用,并等待几秒钟才能收到该结果。
$ ip -6 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::12bf:48ff:fe79:f3a1/64 scope link
valid_lft forever preferred_lft forever
$ ip -6 route
fe80::/64 dev eth0 proto kernel metric 256
没有becomes ready
消息或任何 IPv6 地址,听起来很安全!
让它消失
但也许您迫切需要减少攻击面和/或根本不信任运行任何 ipv6 代码。在这种情况下,您可以在内核命令行上配置另一个禁用选项。例如,按照您的发行版文档在 GRUB 中进行设置。选项是ipv6.disable=1
.
https://wiki.archlinux.org/index.php/IPv6#Disable_functionity