On commence par éditer la VM via virt manager pour lui ajouter une interface.
Pour cela on édite la définition de la machine.
On fait « ajouter un matériel ». On sélectionne « network » et en source on sélectionne « default NAT ».
Ensuite on valide et on redémarre la machine.
Se connecter sur l'host, faire virsh edit “le-nom-de-la-vm”, chercher les deux sections “<interface type='network'>” puis éditer la seconde section comme suit :
remplacer <interface type='network'> en <interface type='ethernet'> supprimmer la balise <source …> ajouter une balise <target dev='vm-ipv6-nomVM'/>
Cela devrait donner une section similaire :
<interface type='ethernet'> <mac address='52:54:00:c3:b9:c7'/> <target dev='vm-ipv6-mail'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </interface>
Sauvegarder et quitter, virsh shutdown le-nom-de-la-vm, virsh start le-nom-de-la-vm.
Récupérer l'adresse link-local côté host :
=(^-^)=root@coon:~# ip a show vm-ipv6-mail | grep inet6 inet6 fe80::fc54:ff:fec3:b9c7/64 scope link
Se connecter à la VM :
Récupérer le suffix ipv4 (ici 57):
=(^-^)=root@mail:~# ip a | grep 192 inet 192.168.1.57/24 brd 192.168.1.255 scope global ens3
Configurer l'interface ens8 comme suit (ajouter une ipv6 :c42::suffix_ipv4 et une seconde en post-up :c41::suffix_ipv4 (dans ce cas de coon la principale est en c42 et la secondaire en c41, pour maine c'est l'inverse) et mettre en gateway l'adresse link-local notée précédement) :
vim /etc/network/interfaces allow-hotplug ens8 iface ens8 inet6 static address 2a01:4f8:10b:c42::57/128 gateway fe80::fc54:ff:fec3:b9c7 post-up ip -6 address add 2a01:4f8:10b:c41::57/128 dev ens8
puis :
ifdown ens8; ifup ens8
Copier le dernier paquet firewall-chapril sur la vm et l'installer.
Par exemple, cela donne cette conf firehol sur mail :
=(^-^)=root@mail:~# cat /etc/firehol/firehol.conf | grep -v '#' | grep -v '^$' ipv6 interface any v6interop proto icmpv6 client ipv6neigh accept server ipv6neigh accept policy return interface ens3 dhcp policy return client dhcp accept interface "ens3 ens8" internal_trafic src4 "192.168.1.0/24 " dst4 192.168.1.57 src6 "2a01:4f8:10b:c41::/64 2a01:4f8:10b:c42::/64" dst6 "2a01:4f8:10b:c42::57 2a01:4f8:10b:c41::57" policy reject client dhcp accept server ICMP accept server ICMPV6 accept server smtp accept server ssh accept server icinga accept source /etc/firehol/firehol-lan2me.conf client all accept interface "ens3 ens8" external_trafic src4 not "${UNROUTABLE_IPV4} 192.168.1.0/24 " dst4 192.168.1.57 src6 not "${UNROUTABLE_IPV6} 2a01:4f8:10b:c41::/64 2a01:4f8:10b:c42::/64" dst6 "2a01:4f8:10b:c42::57 2a01:4f8:10b:c41::57" policy drop server ICMPV6 accept source /etc/firehol/firehol-ext2me.conf client all accept
Noter l'adresse link-local de la vm :
=(^-^)=root@mail:~# ip -6 a | grep fe80 inet6 fe80::5054:ff:fec3:b9c7/64 scope link
Retourner sur le host, éditer /etc/libvirt/hooks/qemu et ajouter une section comme suit (avec les deux adresses IP précédement choisie et l'adresse link-local de la vm et l'interface tap de la vm) :
"mail") case "$action" in "started") /sbin/ip route add 2a01:4f8:10b:c42::57/128 via fe80::5054:ff:fec3:b9c7 dev vm-ipv6-mail /sbin/ip route add 2a01:4f8:10b:c41::57/128 via fe80::5054:ff:fec3:b9c7 dev vm-ipv6-mail ;; "stopped") /sbin/ip route del 2a01:4f8:10b:c42::57/128 via fe80::5054:ff:fec3:b9c7 dev vm-ipv6-mail /sbin/ip route del 2a01:4f8:10b:c41::57/128 via fe80::5054:ff:fec3:b9c7 dev vm-ipv6-mail ;; *) echo action $action not supported exit 0 ;; esac
Aller sur l'hôte opposé, éditer /etc/libvirt/hooks/network et ajouter les lignes suivantes dans les section started et stopped :
started : # mail /sbin/ip route add 2a01:4f8:10b:c42::57/128 via fe80::5054:ff:fe3c:686 dev virbr0 /sbin/ip route add 2a01:4f8:10b:c41::57/128 via fe80::5054:ff:fe3c:686 dev virbr0 stopped : # mail /sbin/ip route del 2a01:4f8:10b:c42::57/128 via fe80::5054:ff:fe3c:686 dev virbr0 /sbin/ip route del 2a01:4f8:10b:c41::57/128 via fe80::5054:ff:fe3c:686 dev virbr0
Puis exécuter les deux lignes ip route add ajoutée sur l'hôte opposé.
Ensuite sur la machine dns, on ajoute dans la zone DNS:
mail.cluster AAAA 2a01:4f8:10b:c42::57
Puis un reload:
rndc reload chapril.org in internal
Sur les deux hosts, modifier la configuration firehol dans /etc/firehol/firehol.conf pour ajouter vm-ipv6-mail dans la variable vmIp6Ifaces. Puis recharger le firewall avec un firehol start.