我已经将一台机器更新到 Debian 9.1,一切似乎都很好,但是我无法禁用 IPv6 自动配置。
背景:我只想在机器上使用我定义的一些特定 IPv6 地址/etc/systemd/network/10-static-eth0.network
:
[Match]
Name=eth0
[Network]
Address=2a04:52c0:xxx:xxx::xxx/48
Address=2a04:52c0:xxx:xxx::xxx/48
Address=2a04:52c0:xxx:xxx::xx/48
Gateway=2a04:52c0:xxx::1
Address=5.2.xxx.xxx/25
Address=5.2.xxx.xxx/25
Address=5.2.xxx.xxx/25
Gateway=5.2.xxx.xxx
为了禁用 IPv6 自动配置,我在末尾添加了以下内容/etc/sysctl.conf
:
net.ipv6.conf.default.autoconf=0
net.ipv6.conf.all.autoconf=0
net.ipv6.conf.eth0.autoconf=0
net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.eth0.accept_ra=0
net.ipv6.conf.default.accept_dad=0
net.ipv6.conf.all.accept_dad=0
net.ipv6.conf.eth0.accept_dad=0
重新启动后,没有动态/自动配置 IPv6 地址,但过了一段时间它就会出现在ip addr show
:
inet6 2a04:52c0:xxxx:xxxx:xxxx:xxx:xxxx:1e3d/64 scope global mngtmpaddr noprefixroute dynamic
valid_lft 2590732sec preferred_lft 603532sec
我如何避免此自动配置 IPv6 地址并确保只有静态地址能够工作?
谢谢。
答案1
我相信这些地址标记为mngtmpaddr
并noprefixroute
来自IPv6 隐私扩展标准 (RFC 4941)并且由内核本身创建。
你应该可以关闭该功能,添加
net.ipv6.conf.default.use_tempaddr=0
net.ipv6.conf.all.use_tempaddr=0
net.ipv6.conf.eth0.use_tempaddr=0
你的/etc/sysctl.conf
希望能帮助到你!