Em um host Ubuntu Xenial, estou executando o LXD 2.12 a partir do xenial-backports. Embora seja fácil alterar um endereço ipv4 de contêineres para um endereço estático de fora do contêiner, não posso alterar seu endereço ipv6. Qual é a maneira certa de fazer isso?
Eu configurei o lxd com uma ponte lxdbr0 com IPv4 e IPv6.
A parte relacionada na configuração é assim:
ipv4.address: 10.122.45.1/24
ipv4.nat: "true"
ipv6.address: fd42:7146:f400:1::1/64
ipv6.nat: "true"
Depois de lançar um contêiner com o Xenial (contxenial), seu ifconfig para eth0 era parecido com isto:
peter@led:~$ lxc exec contxenial -- ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:16:3e:bc:f5:8d
inet addr:10.122.45.223 Bcast:10.122.45.255 Mask:255.255.255.0
inet6 addr: fd42:7146:f400:1:216:3eff:febc:f58d/64 Scope:Global
inet6 addr: fe80::216:3eff:febc:f58d/64 Scope:Link
:
Agora, eu queria alterar ambos, seu endereço ipv4 AND ipv6 para endereços IP estáticos usando os seguintes comandos:
peter@led:~$ lxc network attach lxdbr0 contxenial eth0
peter@led:~$ lxc config device set contxenial eth0 ipv4.address 10.122.45.71
peter@led:~$ lxc config device set contxenial eth0 ipv6.address fd42:7146:f400:1::71
Por fim, reiniciei meu contêiner.
peter@led:~$ lxc restart contxenial
Para minha surpresa, o endereço IPv4 mudou como esperado, mas o endereço IPv6 não mudou!
peter@led:~$ lxc exec contxenial -- ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:16:3e:bc:f5:8d
inet addr:10.122.45.71 Bcast:10.122.45.255 Mask:255.255.255.0
inet6 addr: fd42:7146:f400:1:216:3eff:febc:f58d/64 Scope:Global
inet6 addr: fe80::216:3eff:febc:f58d/64 Scope:Link
:
No entanto, o dnsmasq.hosts contém tanto o endereço IPv4 alterado quanto o endereço IPv6 alterado.
peter@led:~$ sudo cat /var/lib/lxd/networks/lxdbr0/dnsmasq.hosts
00:16:3e:bc:f5:8d,id:*,10.122.45.71,[fd42:7146:f400:1::71],contxenial
O que é isso, estou fazendo errado? Qual é o caminho certo para alcançar isso atualmente (desde o LXC / LXD 2.3 ou superior)?