Mettre en place l'IPv6 sur un Kimsufi

janv. 14, 2021

L'article a été initialement sur le forum mondedie.fr à cette adresse.
Mondedie.fr est le site et surtout la communauté qui m'a permit d'en arriver là. Il s'agit d'un forum pour débutant en administration système. Donc comme vous vous en doutez, cet article est plutôt orienté débutant donc de nombreuses étapes vous semblerons peut-être évidentent si vous êtes expérimenté.

Dans tout les cas la première étape qui explique l'intérêt de l'IPv6 peut être apprécié de tous ;)

Bonne lecture.


Lorsque vous commandez un serveur Kimsufi, ce dernier est livré avec cloud-init qui, entre autre, configure votre carte réseau pour récupérer votre adresse IPv4 en DHCP. Cela simplifie pas mal la gestion côté hébergeur mais ça introduit un problème côté Debian si vous souhaitez mettre en place l'IPv6 sur votre Kimsufi. Vous ne récupérez pas l'IPv6 en SLAAC (le remplaçant du DHCP) ou DHCPv6, vous devez donc configurer l'IPv6 en statique sur votre machine.
Sauf que
L'IPv4 configuré en DHCP avec un bail de 24h, l'IPv6 en statique. Lors du renouvellement du bail DHCP, le serveur ne sait plus s'il doit faire du dynamique ou conserver sa configuration statique et donc le serveur ne renouvelle pas l'IPv4 et là... C'est le drame.

Dans ce mini tutoriel, nous allons donc voir ensemble comment mettre en place l'IPv6 sur sa machine sans perdre l'IPv4.

DĂ©jĂ  quatres petites notions :

  • Le DHCP est un protocole venu avec l'IPv4 pour attribuer dynamiquemement une IP Ă  chaque PC. Le principal soucis de ce protocole est que CHAQUE pĂ©riphĂ©rique crient dans tout les sens (broadcast) sur le rĂ©seau pour avoir une IP, dirent qu'ils l'ont... Une plaie et niveau sĂ©curitĂ© c'est pas ça.
  • Le bail DHCP c'est une sorte de contrat de location entre votre serveur DHCP (agence) et votre pĂ©riphĂ©rique. Cela stipule que le PC a le droit d'avoir exclusivement cette IP lĂ  pour le temps du contrat (24h chez Kimsufi)
  • Le SLAAC est censĂ© ĂŞtre le remplaçant du DHCP. En gros vos pĂ©riphĂ©riques lance un message sur une IP multicast (une IP qu'Ă©coute le ou les routeurs) qui va rĂ©pondre et transmettre certaines info. Le problème c'est que les serveurs DNS ne sont pas spĂ©cifiĂ©es.
  • le DHCPv6 c'est la mĂŞme chose que le DHCP (berk) -> c'est une plaie Ă  configurer

Et maintenant vous allez vous demander :
"Pourquoi mettre de l'IPv6 alors que les serveurs ont de l'IPv4 et ça marche très bien ?"

Alors en effet, ça marche (très bien on en reparlera). Mais à sa conception, l'IPv4 n'était pas du tout prévu pour notre besoin croisant de connectivité et est donc depuis le 25 novembre 2019 le RIPE NCC n'a plus aucune IPv4 de libre. De ce fait internet ne pourra plus grandir et ainsi plus de nouveau FAI, plus de nouveaux hébergeurs... Plus rien. Plus rien de nouveaux, que du vieux.
Les marchés parallèles (gris ou noir) ont déjà envahi la place et louent des IPs voir en achète puis les revendent à l'autre bout du monde (ce qui n'était clairement pas prévu et dangeureux pour le réseau (plus d'échange BGP, plus de trafic inutile).
Cette pénurie entrenera donc un autre problème : Le coup de location d'une IPv4 va augmenter drastiquement d'ici quelques années, influant donc sur le prix de location d'un serveur dédié.

"Avec une demande croissante pour un nombre d’IPv4 fixes, le coût de location d'une IPv4 va doubler d'ici à 2 ans."

Jérémy Martin, Directeur Technique de Firstheberg.com/TechCrea Fibre

Cette pénurie, nous la vivons déjà, enfin nous... Nos FAI. Ces derniers mettent donc en place certains mécanismes de substitution. Les équipements Carrier-grade NAT (CGN) permettent par exemple partager une adresse IPv4 entre plusieurs clients. (L'exemple de Free est le plus courant.
Cependant, ces subterfuges entrainent aussi avec eux plusieurs effets négatifs qui rendent complexe le maintien d’IPv4 et quasi impossible un certain nombre usages comme le pair-à-pair (ou peer-to-peer), l’accès à distance à des fichiers partagés sur un NAS ou à des systèmes de contrôle de maison connectée, certains jeux en réseau, etc...
Ce n'est donc plus qu'une simple question de technique mais de neutralité du net qui est en jeu.

Plus d'IP, plus de croissance

Mais nous avons une parade à cela : l'IPv6. Contrairement à Microsoft le protocole n'a pas fait IPv4 puis IPv6 mais il y a bien eu un standard qui s'approche d'IPv4 : L'Internet Stream Procol. Mais souffrant du même handicap qu'IPv4, il n'a pas été retenu. Et c'est ainsi qu'en nacquis l'IPv6. Bon, en fait c'était en 1990, que le protocole a été designé. En 1998 il a été finalisé dans la RFC 2460 et standarisé en 2017 dans la RFC 8200. D'autres avantages sont présent dans ce protocol comme une meilleur sécurité et un routage optimisé qui, à notre niveau, réduit la latence réseau et également la consommation de ressource par tout les périphériques transitaires (routeur / switch).

L'énorme différence entre IPv4 est que l'adresse n'est plus encodé sur 32 bits mais sur 128 bits. Nous pouvons non plus avoir 4 294 967 296 comme en IPv4 mais 340 sextillions (soit plus de 340 000 000 000 000 000 000 000 000 000 000 000 000 IPv6 différentes.). De quoi attribuer 667 millions d’IPv6 pour chaque millimètre carré de surface terrestre.
Autant vous dire qu'on a beaucoup de temps avant l'Ă©puisement total de ces IPs.

Hormis tout les avantages cité ci dessus ainsi que celui de permettre à internet de grandir, un autre avantage est possible avec l'IPv6 : l'écriture de mot dans son adresse ! Facebook a comme IPv6 : 2620:0:1c00:0:face:b00c:0:2, vous pouvez également écrire I see a bad code car vous avez le droit a tous les chiffres et les lettres de A à F (hexadécimal). Voici un petit site pour vous aider. Sinon vous pouvez tout simplement mettre une IPv4 dans votre IPv6 ;)

Et donc dans ce tutoriel, je vais vous expliquer comment profiter de cette merveilleuse technologie qu'est l'IPv6 sur un Kimsufi !

Trève de blabla, la pratique !

Ce tutoriel va donc se séparer en 3 étapes :

  • La prĂ©paration
  • La mise en place de l'IPv4
  • La mise en place de l'IPv6

Cela va de soit qu'il s'agit de votre serveur, que je ne suis pas responsable si vous cassez quelque chose et que vous perdez des données / du trafic, du chiffre d'affaire.

Avant toute chose, chaque fichier que vous allez modifier ou supprimer, vous le mettez d'abord en sureté par exemple dans le répertoire root qui n'est pas effaçable sans un rm -rf / --no-preserve-root.

Vous êtes prévenu, continuons.

La préparation

Nous allons donc supprimer cloud-init qui introduit le DHCP sur votre serveur. Qui dit DHCP dit que la passerelle nous sera transmise. Si nous supprimons le DHCP, nous perdons l'IP de cette dernière.
Nous allons donc récupérer la passerelle, pous ça vous allez taper sur votre terminal :

ip route

ou

ip r

Cela va afficher plein de ligne dont celles ci :

default via 5.196.95.254 dev enp3s0 onlink
5.196.95.0/24 dev enp3s0 proto kernel scope link src 5.196.95.6

La première des deux lignes indique donc que tout le trafic par défaut passe par 5.196.95.254 en sortant par l'interface nommé enp3s0.
La seconde indique que le réseau 5.196.95.0/24 est accessible au travers de l'interface réseau enp3s0 et que cette dernière a pour IP 5.196.95.6.
Le /24 est la version racourci d'indiquer que le réseau a pour masque 255.255.255.0. Cela signifie qu'il y a 253 machines sur cette plage réseau + une passerelle. Cet excellent article de Wikipedia pourra vous aider à mieux comprendre cette notion
Bien sur chez chaque hébergeur cela peut différer. Par exemple chez Hetzner la gateway sur une IP failover est l'interface réseau principal du serveur.
Le nom de la carte réseau enp3s0 peut varier et être enp4s0, eth0, en0...

Maintenant que vous avez ces informations lĂ , vous les notez dans un coin.
Nous allons supprimer cloud-init :

apt remove cloud-init

La mise en place de l'IPv4

Il faut ensuite vider le dossier /etc/network/interfaces.d
Dans ce même dossier, vous allez créer un fichier /etc/network/interfaces.d/lo qui contiendra :

auto lo
iface lo inet loopback

Puis vous créez un fichier du nom de votre carte réseau à côté du fichier lo. Pour moi il s'agira du fichier /etc/network/interfaces.d/enp3s0

auto enp3s0
allow-hotplug enp3s0
iface enp3s0 inet static
    address 5.196.95.6
    netmask 255.255.255.0
    gateway 5.196.95.254

Vous remplacerez ici 5.196.95.6 et 5.196.95.254. Le masque de sous réseau ne devrait pas changer, mais au cas ou vérifiez qu'il est s'agit d'un /24, sinon modifiez le en vous basant sur le tableau présent dans cet article wikipedia

Vous pouvez si vous le souhaitez relancer votre serveur. Un up/down du périphérique fera comme indiqué plus haut : votre serveur va s'attendre a une configuration DHCP et vous lui filer du static. Il risque de se perdre et de perdre sa configuration.
Mais vous pouvez aussi relancer plus tard votre serveur.

La mise en place de l'IPv6

Maintenant nous allons récupérer notre IPv6 présente sur le manager Kimsufi dans l'onglet IP. Il s'agit d'un /64.

Sur votre machine, vous allez désactiver l'autoconfiguration de l'IPv6. Pour cela, créez un fichier /etc/sysctl.d/10-ipv6 et ajoutez le contenu suivant :

net.ipv6.conf.all.autoconf=0
net.ipv6.conf.all.accept_ra=0

Puis appliquez le changement en tapant la commande sysctl -p

En se referent Ă  la documentation d'OVHcloud Ă  ce sujet Ensuite nous allons calculer l'IP de notre passerelle. Chez Kimsufi il s'agit d'une racine en /62 puis ensuite pleiiin de 00FF.
En gros vous conserver les 14 premiers caractères de votre adresse IPv6 (en excluant les ":"), sachant qu'une adresse IPv6 en /64 c'est 14 caractères.
Mon pool d'IPv6 est 2001:41d0:a:fe06::/64, donc ma gateway est 2001:41d0:a:feFF:FF:FF:FF:FF

Heu... Mais lol, tu parle de 14 caractères mais toi t'en a 13. Tu nous prendrais pas pour des cons ?

Alors non ;) mais pour l'IPv6, comme pour l'IPv4 d'ailleurs un bit nul n'a pas besoin d'être indiqué.

En IPv4, tapez ping 1.1 vous tomberez sur 1.0.0.1 (qui est d'ailleurs un serveur DNS de cloudflare). Donc pour Ă©conomiser du temps d'ailleurs, au lieu de faire ping 8.8.8.8, tapez ping 1.1

Et bien en IPv6 c'est pareil, les bits nul n'ont pas besoin d'être marqué.
Donc 2001:41d0:a:fe06::1 est en réalité 2001:41d0:000a:fe06:0000:0000:0000:0001. (Je vous conseil d'ailleurs cet excellent outil pour pas vous casser le crâne.).

Vous voyez donc mes premiers 14 caractères ? Il s'agit donc de 2001:41d0:000a:fe. Suite à cela nous allons rajouter FF:FF:FF:FF:FF. L'IP ressemblera donc à 2001:41d0:000a:feFF:FF:FF:FF:FF (ou à ça si vous l'avez passez dans "l'expender" : 2001:41d0:000a:feff:00ff:00ff:00ff:00ff
Ou encore à ça si vous l'avez fait compresser : 2001:41d0:a:feff:ff:ff:ff:ff.

Maintenant que vous avez bien triturer votre pauvre IPv6, il va ĂŞtre temps de la mettre sur votre serveur.

Nous allons ajouter dans le fichier /etc/network/interfaces.d/enp3s0 les informations suivante :

iface enp3s0 inet6 static
    address 2001:41d0:a:fe06::1
    netmask 128
    post-up /sbin/ip -f inet6 route add 2001:41d0:a:feFF:FF:FF:FF:FF dev enp3s0; /sbin/ip -f inet6 route add default via 2001:41d0:a:feFF:FF:FF:FF:FF
    pre-down /sbin/ip -f inet6 route del 2001:41d0:a:feFF:FF:FF:FF:FF dev enp3s0; /sbin/ip -f inet6 route del default via 2001:41d0:a:feFF:FF:FF:FF:FF

En modifiant bien sur l'IP 2001:41d0:a:fe06::1 par la votre et l'IP 2001:41d0:a:feFF:FF:FF:FF:FF avec celle calculé.

Maintenant vous pouvez relancer votre machine.

Une fois relancé, vous pouvez tapez la commande suivante pour tester votre IPv6 chez OVHcloud :

ping6 -c 4 2001:4860:4860::8888

Ou celle ci pour voir votre IP :

curl -6 https://ip.dryusdan.fr

Et voilĂ  pour la configuration de l'IPv6 sur un Kimsufi :)

Ho, j'allais oublier : il faut sécuriser votre machine en IPv6 comme en IPv4. Donc définir à minima des règles iptables avec ip6tables.

J'espère que ce tuto vous a plus.

Sur ce, portez-vous bien.

Photo by Nathan Dumlao

Source :

Suivi de l’épuisement des adresses IPv4 | Arcep
épuisement des adresses IPv4, transition vers IPv6, données RIPE NCC
Baromètre annuel de la transition vers IPv6 en France | Arcep
IPv6 — Wikipédia
Sous-réseau — Wikipédia
Configurer IPv6 sur un serveur dédié
Decouvrez comment configurer des adresses IPv6 sur notre infrastructure.

Dryusdan

Chasseur de bug et régleur de problème (alias DevOps).

Super ! Vous vous êtes inscrit avec succès.
Super ! Effectuez le paiement pour obtenir l'accès complet.
Bon retour parmi nous ! Vous vous êtes connecté avec succès.
Parfait ! Votre compte est entièrement activé, vous avez désormais accès à tout le contenu.