使用 SLAAC 进行全球单播时的静态 IPv6 LAN 地址

使用 SLAAC 进行全球单播时的静态 IPv6 LAN 地址

我在两个 IPv6 网络中有一些 IPv6 节点。有一个 IPv6 路由器,与所有节点都本地链接。

路由器发出包含两个网络前缀的路由器通告 (RA)。网络中的节点接受 RA 并使用前缀创建两个随机地址。

我想要配置一个节点(Alpine Linux)为两个前缀之一提供静态地址,同时在同一接口上对另一个前缀使用 SLAAC。

问题是服务器仍然需要接受 RA 来配置第二个网络的地址。我尝试解决的失败结果是我为同一个前缀配置了两个地址,而不是一个静态地址。

我为网络接口配置了一个静态地址:


/etc/network/interfaces
    iface eth0 inet6 static
        address fd22:235b:ffe9:1::17/64

配置的结果是接口获得为该前缀创建的第二个地址:


inet6 fd22:235b:ffe9:1::17/64 # desired static address 
inet6 2001:a53:638:1f01:2bc3:ec82:5ab:db1/64 # desired address derived from router advertisement 
inet6 fd22:235b:ffe9:1:ecc3:b271:273a:3836/64 # additional random address  
inet6 fe80::4971:fcbf:62cd:8137/64

控制自动地址配置的内核参数都是接口范围的,并且阻止为两个前缀创建地址,而不仅仅是为具有静态地址的前缀创建地址。

sysctl net.ipv6.conf.eth0.autoconf=0
sysctl net.ipv6.conf.eth0.accept_ra=0

如何防止自动配置两个前缀之一的地址?我不想运行 DHCPv6 服务器。

相关内容