Outils pour utilisateurs

Outils du site


admin:ipv6

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
admin:ipv6 [2017/07/03 09:21] – créée adminadmin:ipv6 [2018/05/04 16:34] (Version actuelle) – maj suite à ipv6 v2 qgibeaux
Ligne 6: Ligne 6:
   * Maine :   * Maine :
              * enp0s31f6 (WAN) : 2a01:4f8:10b:c41::/64              * enp0s31f6 (WAN) : 2a01:4f8:10b:c41::/64
-             * virbr1 (interface ipv6 entre les VMs locales) : 2a01:4f8:10b:c41::1/64 
              * virbr0 (routage inter hôte via carte réseau locale) : 2a01:4f8:10b:c41::1:4/64              * virbr0 (routage inter hôte via carte réseau locale) : 2a01:4f8:10b:c41::1:4/64
   * Coon :   * Coon :
              * enp0s31f6 (WAN) : 2a01:4f8:10b:c42::/64              * enp0s31f6 (WAN) : 2a01:4f8:10b:c42::/64
-             * virbr1 (interface ipv6 entre les VMs locales) : 2a01:4f8:10b:c42::1/64 
              * virbr0 (routage inter hôte via carte réseau locale) : 2a01:4f8:10b:c42::1:5/64              * virbr0 (routage inter hôte via carte réseau locale) : 2a01:4f8:10b:c42::1:5/64
  
 ===== Attribution des adresses IPv6 ===== ===== Attribution des adresses IPv6 =====
  
-Chaque VM a une adresse IPv6 unique et constante, elle est basée sur l'adresse que prend la VM automatiquement à partir du réseau /64 et de son adresse MAC. En temps normal, la communication entre les machines et le routeur de Hetzner fait qu'en configuration "automatique", les machines s'attribuent d'elle même cette adresse IP pour un temps donné, et renouvellent eux même ce bail lors que le routeur vient appliquer ses protocoles de découverte des routes. Malheureusement, le fait que nous ayons deux interfaces (enp0s31f6 et virbr1) fait que cette communication ne passe pas. Les VMs sont donc en configuration statique de ce type :+Chaque VM a une adresse IPv6 unique et constante, elle est basée sur l'adresse IPv4 que prend la VM automatiquement (elle reprend le suffixe 57 de 192.168.1.57 par exemple). En temps normal, la communication entre les machines et le routeur de Hetzner fait qu'en configuration "automatique", les machines s'attribuent d'elle même cette adresse IP pour un temps donné, et renouvellent eux même ce bail lorsque le routeur vient appliquer ses protocoles de découverte des routes. Malheureusement, le fait que nous ayons deux interfaces (enp0s31f6 et tap) fait que cette communication ne passe pas. Deux adresses IPv6 sont attribuées chacune venant du /64 des deux hosts, pour palier au manque d'IPv6 failover de hetzner, comme cela tout est déjà configuré sur les VM en cas de bascule, il n'y a que le DNS à modifier. Les VMs sont donc en configuration statique de ce type :
 <code> <code>
-# The primary network interface 
 allow-hotplug ens8 allow-hotplug ens8
 iface ens8 inet6 static iface ens8 inet6 static
-    address 2a01:4f8:10b:c41:5054:ff:fed4:9f7f/64 +    address 2a01:4f8:10b:c42::57/128 
-    gateway 2a01:4f8:10b:c41::1+    gateway fe80::fc54:ff:fec3:b9c7 
 +    post-up ip -6 address add 2a01:4f8:10b:c41::57/128 dev ens8
 </code> </code>
  
-Étant donné que l'interface virbr0 des hôtes est configuré pour du NAT, un second bridge est déployé pour ne gérer que l'IPv6 (qui est ouvert sur internet), c'est virbr1. Chaque VM possède également une seconde carte réseau branchée sur ce bridge (ens8). L'IPv6 est désactivé sur l'interface virbr0 et ens3 de chaque VM via la configuration suivante (/etc/sysctl.d/98-no-ipv6-ens3.conf) :+Étant donné que l'interface virbr0 des hôtes est configuré pour du NAT, une seconde interface TAP est déployée via libvirt pour ne gérer que l'IPv6 (qui est ouvert sur internet), nommée par exemple vm-ipv6-mail. Chaque VM possède également une seconde carte réseau branchée sur cette interface TAP (ens8). L'IPv6 est désactivé sur l'interface virbr0 et ens3 de chaque VM via la configuration suivante (/etc/sysctl.d/98-no-ipv6-ens3.conf) :
 <code> <code>
 net.ipv6.conf.ens3.disable_ipv6=1 net.ipv6.conf.ens3.disable_ipv6=1
Ligne 33: Ligne 31:
 Il y a deux routages à effectuer : indiquer aux hôtes où envoyer les paquets venant du WAN à destination des VMs et indiquer aux hôtes de faire passer le traffic entre les deux /64 de Maine et Coon via l'interface réseau locale entre les deux serveurs. Il y a deux routages à effectuer : indiquer aux hôtes où envoyer les paquets venant du WAN à destination des VMs et indiquer aux hôtes de faire passer le traffic entre les deux /64 de Maine et Coon via l'interface réseau locale entre les deux serveurs.
  
-Le premier routage est effectué par des règles de ce type, ajoutées sur chaque hôte pour toutes les VMs qu'il héberge, ajoutées via le hook réseau de libvirt :+Le premier routage est effectué par des règles de ce type, ajoutées sur chaque hôte pour toutes les VMs qu'il héberge, ajoutées via le hook qemu de libvirt :
 <code> <code>
-2a01:4f8:10b:c41:5054:ff:fe08:48ff dev virbr1 metric 1024  pref medium+2a01:4f8:10b:c41::57 via fe80::5054:ff:fec3:b9c7 dev vm-ipv6-mail metric 1024  pref medium
 </code> </code>
-Cela indique que l'adresse IP est accessible dans l'interface virbr1. Elle est poussée par la commande suivante :+Cela indique que l'adresse IP est accessible dans l'interface vm-ipv6-mail. Elle est poussée par la commande suivante :
 <code> <code>
 +/sbin/ip route add 2a01:4f8:10b:c41::57/128 via fe80::5054:ff:fec3:b9c7 dev vm-ipv6-mail
 +</code>
 +
 +Le second routage est effectué par une route indiquant sure l'hôte opposé que l'adresse IPv6 est accessible via l'adresse link-local de l'interface virbr0 ([[https://en.wikipedia.org/wiki/Link-local_address#IPv6|Link local]]) associée à cette interface, par exemple sur Maine :
 +<code>
 +2a01:4f8:10b:c41::57 via fe80::5054:ff:fe3c:686 dev virbr0 metric 1024  pref medium
 +</code>
 +
 +Elle est poussée via cette commande, inscrite dans le script hook qemu de libvirt de l'hôte qui n'héberge pas la VM :
 +<code>
 +/sbin/ip route add 2a01:4f8:10b:c41::57/128 via fe80::5054:ff:fe3c:686 dev virbr0
 +</code>
  
 +===== ToDo =====
  
 +Faire en sorte d'avoir de l'IPv6 fonctionnel lorsque l'on bascule les VM d'un hôte à l'autre, dans le cas d'une indisponibilité longue durée d'un des hôtes.
  
admin/ipv6.1499073661.txt.gz · Dernière modification : 2017/07/03 09:21 de admin