二月 19, 2020

浅谈 Linux 上的 SLAAC:原理、配置和系统行为

TL; DR:本文简要介绍了 IPV6 自动配置的基本概念和原理,并讨论了在 Linux 下自动配置(aka. SLAAC)原理和坑点,其中:

启用 IPV6 SLAAC 并允许内核自动添加 IPV6 默认路由需要使 net.ipv6.conf.{iface}.autoconf = 1 且 net.ipv6.conf.{iface}.accept_ra = 1
如果启用了 net.ipv6.conf.{iface}.forwarding ,则对应网卡接口 accept_ra 需要为 2
上述 iface 既可以是 default/all,也可以是具体某个网卡接口,但是需要特别注意,对于部分 IPV6 配置项,仅修改 net.ipv6.conf.all 时不会应用到全部网卡接口,使用时请确认所需的网卡接口上配置正确。
另外在部分发行版中可能修改 accept_ra 实际不生效,系统可能出现预期外行为(无法自动获取的地址和路由,或配置为不需要 SLAAC 时系统仍会进行配置等),此时可检查系统中是否存在其他网络管理工具如 netplan 造成了遗留影响。