Utilisateur d'origine : Pierre
L'IPv6 est en cours de déploiement sur notre infrastructure, mais actuellement, presque tous les VPS (HDD ou SSD) de Dyjix ne supportent pas l'IPv6.
- Si l'adresse IPv4 de votre serveur est du format
37.44.xxx.xxx
, alors, votre VPS ne dispose pas d'IPv6 nativement, mais vous pouvez suivre ce tutoriel
- Si l'adresse IPv4 de votre serveur est d'un autre format, vous pouvez peut-être bénéficier d'une IPv6. Prenez contact avec notre support.
Afin de configurer l'IPv6 sur les serveur n'en disposant pas, nous allons créer un tunnel grâce à Tunnelbroker. Le tunnel est gratuit (5 par personne), et vous permettra de disposer d'un bloc d'IP /48, d'un DNS dynamique, et de réglages reverse DNS.
Création du tunnel
Rendez vous sur Tunnelbroker et créez-vous un compte. Dans la partie gauche, cliquez sur Create Regular Tunnel. Un formulaire apparaît et vous demande deux informations :
- IPv4 Endpoint (Your side) : Entrez l'adresse IPv4 de votre VPS
- Le serveur sur lequel configurer héberger votre tunnel : Choisissez le serveur le plus proche géographiquement de votre VPS (donc Paris)
Une fois le tunnel créé, vous pourrez visualiser les informations depuis la page "Main page", puis en le sélectionnant.
Commencez par régler le MTU à 1280 dans l'onglet Advanced. Puis, dans l'onglet IPv6 tunnel, notez les informations suivantes :
- L'adresse IPv4 du serveur
- L'adresse IPv4 du client (adresse IPv4 de votre VPS)
- L'adresse IPv6 du client (qui correspond à l'adresse IPv6 qui sera assignée à votre VPS)
Préparation du VPS
Maintenant que nous avons créé notre tunnel et récupéré les informations essentielles à la configuration, nous allons pouvoir préparer notre serveur. Avant de continuer, il faut déjà activer TUN/TAP sur le VPS. Pour ce faire, rendez-vous sur le panel SolusVM et connectez-vous (les identifiants se trouvent dans le mail de livraison de votre serveur, si vous l'avez perdu, vous pouvez le retrouver ici).
Dans l'onglet Paramètres, sur la fiche de votre VPS, passez le réglage TUN/TAP à Activé :

Connectez-vous désormais à votre serveur par SSH. Nous avons besoin d'installer deux outils :
apt install iproute gcc
Une fois ceci fait, nous allons télécharger tb-tun, c'est un programme qui permet d'utiliser TUN/TAP pour créer un tunnel IPv6 avec Tunnelbroker. Malheureusement, sur un VPS OpenVZ, c'est la seule manière de procéder. Téléchargez le programme, décompressez l'archive et compilez-le. Vous obtiendrez un fichier nommé tb_userspace
. Placez-le où vous voulez, mais notez son emplacement. Pour ma part, je le mets dans /root/
.
cd /root
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/tb-tun/tb-tun_r18.tar.gz
tar -xf tb-tun_r18.tar.gz
gcc tb_userspace.c -l pthread -o tb_userspace
rm tb-tun_r18.tar.gz
rm tb_userspace.c
Nous avons désormais tout ce qu'il nous faut pour configurer (enfin) le script qui permettra, à chaque démarrage du VPS, de se connecter à notre tunnel.
Le script
Exécutez un script à chaque démarrage d'un serveur pour effectuer une action n'est pas la manière la plus propre d'arriver à ses fins, je vous l'accorde (surtout que celui-là inspire assez peu confiance avec son sleep 3s
...), mais dans notre cas, c'est la seule manière de procéder. Créez donc un fichier /etc/init.d/ipv6tb
et entrez ceci dedans :
#! /bin/sh
### BEGIN INIT INFO
# Provides: ipv6
# Required-Start: $local_fs $all
# Required-Stop: $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the ipv6 tunnel
# Description: ipv6 tunnel start-stop-daemon
### END INIT INFO
# /etc/init.d/ipv6tb
touch /var/lock/ipv6tb
case "$1" in
start)
echo "Starting ipv6tb "
setsid /root/tb_userspace tb [Server IPv4] [Client IPv4] sit > /dev/null 2>&1 &
sleep 3s # Ugly, but doesn't seem to work at startup otherwise
ifconfig tb up
ifconfig tb inet6 add [Client IPv6] # Add as many of these as you need from your routed /64 allocation
ifconfig tb mtu 1480
route -A inet6 add ::/0 dev tb
;;
stop)
echo "Stopping ipv6tb"
ifconfig tb down
killall tb_userspace
;;
*)
echo "Usage: /etc/init.d/ipv6tb < start | stop >"
exit 1
;;
esac
exit 0
Il y a plusieurs choses à remplir dans ce script :
- A la ligne
setsid
, remplacez le texte entre crochets par l'adresse IPv4 du serveur Tunnelbroker ([Server IPv4]
) et de votre VPS ([Client IPv4]
). Ne conservez pas les crochets.
- A la ligne
ifconfig tb inet6
, remplacez le texte entre crochets par l'adresse IPv6 client qui sera attribuée à votre VPS (ne conservez pas les crochets)
- Si
tb_userspace
ne se trouve pas dans le répertoire /root/
, changez le à la ligne setsid
Une fois notre script prêt, il ne reste plus qu'à le rendre exécutable et l'activer au démarrage :
chmod 0755 /etc/init.d/ipv6tb
update-rc.d ipv6tb defaults
C'est terminé ! Redémarrez votre VPS pour que les modifications prennent effet et essayez votre configuration :
ping6 google.com
Pour aller plus loin
Tunnelbroker vous permet d'utiliser plusieurs IPv6, et même de vous allouer un bloc /48. Si vous comptez utiliser plusieurs IPv6 sur un même serveur, dupliquez la ligne ifconfig tb inet6 add
dans le script autant de fois que nécessaire (autant qu'il y a d'adresses à attribuer).
Désinstallation
Si vous ne souhaitez plus utiliser Tunnelbroker, supprimez le script et tb-run
:
update-rc.d ipv6tb remove
rm /etc/init.d/ipv6tb
rm /root/tb_userspace
Redémarrez ensuite votre serveur.
Sources
Le script et quelques instructions proviennent de ce cours.