Outils pour utilisateurs

Outils du site


admin:ipv6

Ceci est une ancienne révision du document !


Implémentation de l'IPv6 sur les machines virtuelles

L'ajout de l'IPv6 permet aux machines virtuelles, au contraire du NAT, d'être accessibles directement sur internet. Son implémentation au sein de l'infrastructure libvirt s'est faite de manière empirique et n'est peut être pas optimisée, mais fonctionne correctement.

Adresses IPv6 attribuées sur les hôtes

  • Maine :
    • 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
  • Coon :
    • 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

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 :

# The primary network interface
allow-hotplug ens8
iface ens8 inet6 static
    address 2a01:4f8:10b:c41:5054:ff:fed4:9f7f/64
    gateway 2a01:4f8:10b:c41::1

É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) :

net.ipv6.conf.ens3.disable_ipv6=1

Routage

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 :

2a01:4f8:10b:c41:5054:ff:fe08:48ff dev virbr1 metric 1024  pref medium

Cela indique que l'adresse IP est accessible dans l'interface virbr1. Elle est poussée par la commande suivante : <code>

admin/ipv6.1499073661.txt.gz · Dernière modification : 2017/07/03 09:21 de admin