Configurer dibbler-client pour IPv6 sur une Dedibox (Online.net) avec Debian 8 (Jessie)
Par Mathieu le mercredi 21 octobre 2015, 14:24 - Hacks - Lien permanent
La documentation d’Online pour IPv6 ne traite pas le cas de Debian, Ubuntu, ou toute distribution utilisant systemd (CentOS6, etc). La documention doit être étendue pour ajouter le service sysetmd au démarrage, en lieu et place de l’init script.
Vérifiez que l’IPv6 est activé
Cela devrait normalement être le cas, puisque le noyau par défaut de Debian 8 inclut nativement IPv6 et ne peut pas être désactivé. Mais au cas où vous ne verriez pas le link-local sur vos interfaces :
Changer dans /etc/modprobe.d/local.conf :
options ipv6 disable=0
Ajouter dans /etc/modules :
ipv6
Il faudra sans doute redémarrer pour appliquer les changments.
Récupérez votre préfixe et votre DUID depuis la console d’Online
Vous devez demander l’activation de IPv6 au support et créer votre /64 dans la console d’Online pour obtenir votre DUID.
Créez un /64 et n’utilisez pas le /48 ou le 56 directement, vous pourriez le regretter si vous souhaitez redécouper le réseau. Vous n’avez qu’un seul /48 par compte, un /56 pour chaque serveur, et un /64 pour chaque failover souscrit.
Configurez l’interface réseau
Encore une fois, c’est sans doute facultatif puisque Dibbler reconfigure l’interface lorsqu’il se lance, donc explicitons ça dans le fichier /etc/network/interfaces, juste au cas où :
iface eth0 inet6 static address your_ipv6_address netmask 64 accept_ra 2
Notes sur Proxmox et le forwarding
Sous Proxmox on travaille sur l’interface bridge, c’est vmbr0 et non pas eth0.
Si le forwarding est activé, vous devez forcer le accept_ra à 2, une valeur de 1 fera ignorer les router advertisements lorsque le forwarding est activé. Explications. Ajoutez dans sysctl.conf :
net.ipv6.conf.vmbr0.accept_ra = 2
Notez bien que dans le cas où vous adressez vos machines virtuelles en IPv6 vous ne devez pas brancher l’interface IPv6 de vos VM directement sur l’interface vmbr0. Voilà pourquoi.
Compilez et installez Dibbler
- Téléchargez Dibbler 1.0.1 à partir du site officiel
- Installez build-essential :
apt-get install build-essential
- Décompressez Dibbler :
tar -xzf dibbler-1.0.1.tar.gz && cd dibbler-1.0.1
- Compilez et installez Dibbler :
./configure && ./make
Configurez Dibbler
Créez les dossiers et fichiers de configuration comme le précise la documentation :
Configurez le DUID dans /var/lib/dibbler/client-duid :
mkdir /var/lib/dibbler/ touch /var/lib/dibbler/client-duid chmod 640 /var/lib/client-duid # Set up you duid in client-duid vim /var/lib/client-duid
Configurez /etc/dibbler/client.conf :
mkdir /etc/dibbler vim /etc/dibbler/client.conf
Voici le contenu de mon client.conf :
auth-protocol reconfigure-key auth-replay monotonic auth-methods digest-hmac-md5 duid-type duid-ll inactive-mode log-level 8 iface eth0 { pd ia }
Encore une fois, c’est à adapter en fonction du nom de votre interface.
Démarrez le client pour tester la connectivité :
dibbler-client run
Pour vérifier que Dibbler a configuré l’interface, pressez CTRL+Z pour suspendre le processus et vérifiez que l’IP et les routes sont bien configurées. Tapez la commande “fg” pour retourner au processus en cours d’exécution, et tapez CTRL+C pour stopper Dibbler.
Si pendant l’opération les routes et les IPs sont incorrectes, vérifiez que votre pare feu accepte les connexions entrantes par le port 546 UDP.
Configurez Dibbler au démarrage
Cette section est différente de la documentation d’Online.
Avant systemd, le système d’init par dépendances se contentait d’un script dans /etc/init.d/. Avec systemd, il faut créer un fichier service dans /etc/systemd/system/ .
Créez le fichier suivant : /etc/systemd/system/dibbler.service :
[Unit] Description=Dibbler After=network.target [Service] Type=simple ExecStart=/usr/local/sbin/dibbler-client start ExecStop=/usr/local/sbin/dibbler-client stop PrivateTmp=true NonBlocking=yes [Install] WantedBy=multi-user.target
Lancez la commande suivante pour que systemd lise le fichier :
systemctl daemon-reload
Et activez le service :
systemctl enable dibbler.service
Et essayez de le lancer pour la première fois :
systemctl start dibbler.service
Vérifions que tout est correct :
service dibbler status ifconfig route -6 ping6 whatever-you-want.com
Si tout va bien, redémarrez et l’IPv6 fonctionnera dès le démarrage ! :)
Addendum : juste au cas où, n’utilisez pas resolvconf pour pousser les DNS IPv6 automatiquement, conservez autant que possible vos DNS IPv4. Ça serait tellement dommage que votre connectivité IPv6 saute et que vous vous retrouviez sans DNS (oui ça m’est arrivé…).
Sources
- http://documentation.online.net/en/serveur-dedie/reseau/ipv6-prefix
- http://www.lowendtalk.com/discussion/48591/configuring-ipv6-for-proxmox-kvm-on-dedibox-online-net
- http://unix.stackexchange.com/questions/47695/how-to-write-startup-script-for-systemd
- https://sulek.fr/index.php?article60/configuration-ipv6-pour-une-dedibox-sous-centos-7
- http://www.mattb.net.nz/blog/2011/05/12/linux-ignores-ipv6-router-advertisements-when-forwarding-is-enabled/
- https://forum.online.net/index.php?/topic/5380-configuring-ipv6-in-proxmox-on-dedibox-from-onlinenet/