Sur un hôte Ubuntu Xenial, j'exécute LXD 2.12 à partir des backports xenial. Alors qu'il est facile de changer l'adresse ipv4 d'un conteneur en une adresse statique depuis l'extérieur du conteneur, je ne peux pas changer son adresse ipv6. Quelle est la bonne façon de procéder ?
J'ai configuré lxd avec un pont lxdbr0 avec IPv4 et IPv6. La partie correspondante dans la configuration ressemble à ceci :
ipv4.address: 10.122.45.1/24
ipv4.nat: "true"
ipv6.address: fd42:7146:f400:1::1/64
ipv6.nat: "true"
Après avoir lancé un conteneur avec Xenial (contxenial), sa ifconfig pour eth0 ressemblait à quelque chose comme ceci :
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
:
Maintenant je voulais changer les deux, son adresse ipv4 ET son adresse ipv6 en adresses ip statiques en utilisant les commandes suivantes :
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
Finalement, j'ai redémarré mon conteneur.
peter@led:~$ lxc restart contxenial
À ma grande surprise, l'adresse IPv4 a changé comme prévu, mais pas l'adresse IPv6 !
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
:
Cependant, dnsmasq.hosts contient à la fois l'adresse IPv4 modifiée et l'adresse IPv6 modifiée.
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
Qu'est-ce que je fais de travers ? Quelle est la bonne façon d'y parvenir actuellement (depuis LXC/LXD 2.3 ou plus) ?