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

Les deux révisions précédentes Révision précédente
admin:ipv6 [2017/07/03 11:28]
admin [Routage]
admin:ipv6 [2018/05/04 18:34] (Version actuelle)
qgibeaux maj suite à ipv6 v2
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 lorsque 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 ​-6 route add 2a01:​4f8:​10b:​c41:​5054:​ff:​fe08:48ff dev virbr1+/sbin/ip route add 2a01:​4f8:​10b:​c41::57/128 via fe80::5054:ff:fec3:b9c7 dev vm-ipv6-mail
 </​code>​ </​code>​
  
-Le second routage est effectué par une route indiquant ​que le /64 de l'​hôte ​voisin ​est atteignable ​via virbr0 par l'​adresse ​IPv6 locale ​([[https://​en.wikipedia.org/​wiki/​Link-local_address#​IPv6|Link local]]) associée à cette interface, par exemple sur Maine :+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>​ <​code>​
-2a01:​4f8:​10b:​c42::/64 via fe80::​5054:​ff:​fe3c:​686 dev virbr0 metric 1024  pref medium+2a01:​4f8:​10b:​c41::57 via fe80::​5054:​ff:​fe3c:​686 dev virbr0 metric 1024  pref medium
 </​code>​ </​code>​
  
-Elle est poussée via cette commande, inscrite dans le script hook réseau ​de libvirt :+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>​ <​code>​
-ip -6 route add 2a01:​4f8:​10b:​c42::/64 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
 </​code>​ </​code>​
  
admin/ipv6.txt · Dernière modification: 2018/05/04 18:34 par qgibeaux