La Fibre

Hébergeurs et opérateurs pro / entreprises => Hébergeurs et opérateurs pro / entreprises => Scaleway Scaleway => Discussion démarrée par: nephthys le 28 novembre 2019 à 01:19:01

Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: nephthys le 28 novembre 2019 à 01:19:01
Hello,

J'ai depuis peu un serveur dédié chez OneProvider / Online, installé sous Ubuntu 18.04.3 LTS. J'ai demandé à OneProvider si c'est possible d'avoir une adresse IPv6, ils m'ont dit oui mais qu'ils ne proposent pas "de délégation DNS et que les rDNS ne sont pas personnalisables".

Bref, ils m'ont envoyé ce genre d'infos :
2001:bc8:XXXX:YYY::
DUID: 00:03:00:01:42:XX:XX:XX:XX:XX
Netmask: /64

Ils m'ont envoyé ce lien de la documentation Online (https://documentation.online.net/en/dedicated-server/network/ipv6/prefix) mais ça reste assez abstrait pour moi d'utiliser DHCPv6. Je dois mettre quelle adresse IPv6 dans "address" du fichier /etc/network/interfaces ? 2001:bc8:XXXX:YYY::1 ?

Autant sur un serveur récent commandé chez Online directement, l'IPv6 est configurée automatiquement avec SLAAC, autant ici chez OneProvider, il faut mettre les mains dans le cambouis et quand on est pas un spécialiste réseau comme moi, on est vite perdu ;)

Merci d'avance pour votre aide.

EDIT : la solution est ici (https://lafibre.info/scaleway/comment-activer-lipv6-sur-son-serveur-dedie-chez-oneprovider-ubuntu-18/msg709345/#msg709345) (plus bas dans ce sujet).
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: kgersen le 28 novembre 2019 à 02:50:50
Il faut faire du DHCPv6-PD (a ne pas confondre avec le DHCP traditionnel en IPv4): ca consiste a envoyé le DUID indiqué via un requete DHCPv6 speciale de type PD = Prefix Delegation. Si le DUID est valide le bloc IPv6 indiqué va être routé vers le serveur.

Mais ca c'est juste l'établissement de la route.

Ensuite il faut configurer sur le serveur un ou des IPv6 de ce bloc.

Apres Ubuntu utilises Netplan qui ne supporte pas DHCPv6-PD : https://bugs.launchpad.net/netplan/+bug/1771886 (a noter que c'est ouvert et confirmé depuis mai 2018 mais depuis silence radio...).

Du coup il faut bidouillé un peu...

on en parle déja ici: https://lafibre.info/scaleway/configurer-une-ipv6-sur-un-serveur-dedibox-avec-ubuntu-18-04/

Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: vivien le 28 novembre 2019 à 11:13:39
J'ai déplacé dans la section Online by Scaleway.

A noter un autre sujet (en plus de celui mentionné par kgersen) sur l'IPv6 sur Ubuntu 18.04 chez Online / Scaleway : https://lafibre.info/scaleway/configurer-une-ipv6-online-net-sur-ubuntu-18-04/
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: nephthys le 28 novembre 2019 à 16:08:01
Il faut faire du DHCPv6-PD (a ne pas confondre avec le DHCP traditionnel en IPv4): ca consiste a envoyé le DUID indiqué via un requete DHCPv6 speciale de type PD = Prefix Delegation. Si le DUID est valide le bloc IPv6 indiqué va être routé vers le serveur.

Mais ca c'est juste l'établissement de la route.

Ensuite il faut configurer sur le serveur un ou des IPv6 de ce bloc.

Apres Ubuntu utilises Netplan qui ne supporte pas DHCPv6-PD : https://bugs.launchpad.net/netplan/+bug/1771886 (a noter que c'est ouvert et confirmé depuis mai 2018 mais depuis silence radio...).

Du coup il faut bidouillé un peu...

on en parle déja ici: https://lafibre.info/scaleway/configurer-une-ipv6-sur-un-serveur-dedibox-avec-ubuntu-18-04/
Okay merci, j'avais bien compris l'utilisation du DUID mais c'est vrai qu'en pratique c'est autre chose...

J'avais vu le sujet en question mais je crois que Netplan n'est pas non plus vraiment recommandé. Il n'y a pas une autre solution ? Quitte à passer sous Debian 9 ou 10 ? Sinon je suis censé utiliser quelle adresse sur mon "bloc" IPv6 ?

J'ai déplacé dans la section Online by Scaleway.

A noter un autre sujet (en plus de celui mentionné par kgersen) sur l'IPv6 sur Ubuntu 18.04 chez Online / Scaleway : https://lafibre.info/scaleway/configurer-une-ipv6-online-net-sur-ubuntu-18-04/
Merci. J'avais vu ce sujet aussi mais j'ai pas tout compris et j'ai préféré parler de mon cas personnel dans un nouveau sujet  ;)
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: kgersen le 28 novembre 2019 à 16:43:28
J'avais vu le sujet en question mais je crois que Netplan n'est pas non plus vraiment recommandé. Il n'y a pas une autre solution ? Quitte à passer sous Debian 9 ou 10 ? Sinon je suis censé utiliser quelle adresse sur mon "bloc" IPv6 ?

j'ai une Debian chez Online.

j'utilise cette conf service systemd, pas testé avec Ubuntu donc je ne sais l'interaction avec Netplan mais si t'as aucun conf IPv6 ca ne devrait pas interagir.

creer /etc/systemd/system/dhclientv6-pd.service avec dedans (ajuster "enp1s0" au nom de ton interface) :
[Unit]
Description=dhclient for sending DUID IPv6
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
ExecStart=/sbin/dhclient -cf /etc/dhcp/dhclient6.conf -6 -P -v enp1s0

[Install]
WantedBy=multi-user.target

puis creer /etc/dhcp/dhclient6.conf avec dedans (donc le duid fournit):
interface "enp1s0" {
   send dhcp6.client-id 00:03:00:xx:xx:xx:xx:xx:xx:xx;
}

activer le service:
sudo systemctl daemon-reload
sudo systemctl enable dhclientv6-pd.service

le demarrer (il demarrera tout seul au boot):
sudo systemctl start dhclientv6-pd.service
voir ce qui se passe:

sudo systemctl status dhclientv6-pdet
sudo journalctl -t dhclientv6-pd
il va te manquer la route par défaut, elle est en principe fournit par RA (router advertissment)

je l'active comme suit:
creer un fichier /etc/sysctl.d/01-ipv6-networking.conf (ajuster "enp1s0" comme avant):
# activate routing
net.ipv6.conf.all.forwarding=1
# online ipv6: disable slaac but allow default route
net.ipv6.conf.enp1s0.autoconf=0
net.ipv6.conf.enp1s0.accept_ra=2
pour l'activer sans reboot:
sudo sysctl --system
a partir de la tu devrais avoir:
- une route IPv6 par défaut (visible avec "ip -6 route")
- un bail DHCPv6  (visible dans "/var/lib/dhcp/dhclient6.leases")

de la il suffit d'ajouter une IPv6 a ton interface "enp1s0". Tu peux utiliser n'importe quelle adresse du bloc (visible dans le bail DHCPv6) :

sudo ip a add 2001:bc8:xxx:xxx::1/64 dev enp1s0
un bug/feature de "dhclient" empêche de mettre c'est config au boot car a l'obtiention du bail, dhclient vire cette IP de l'interface ...j'ai pas encore trouvé de solution a cela (j'ai pas reboot le serveur depuis 229 jours mais s'il reboot je doit remettre cette IPv6 a la main). C'est dans ma todo list mais en basse prio car je n'utilise quasi pas l'ipv6 de cette interface (j'utilise un autre block /64 du /56 pour Docker)... je pense qu'un script ou un hook (dans /etc/dhcp/dhclient-exit-hooks.d/..) devrait faire l'affaire.

Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: nephthys le 28 novembre 2019 à 17:08:18
Merci pour les (précieuses) infos kgersen, ça parait bien plus clair :) Reste à savoir si ça va fonctionner sur Ubuntu 18.04 ^^

Donc on ne touche pas au fichier /etc/network/interfaces ici (c'est pour ça que l'IPv6 n'est pas "persistante") ? L'IPv6 est configurée avec ta dernière commande "sudo ip a add [..]", si je comprends bien.

Si ça ne fonctionne pas sur Ubuntu, je tenterai d'installer Debian 10 mais c'est un peu laborieux chez OneProvider car ils ne proposent pas du tout Debian dans les choix d'OS pour ce serveur (et ils se limitent à Ubuntu... 14 !). Il faudrait utiliser IPMI pour installer l'ISO de Debian 10, mais bon on en est pas encore là. J'avais un autre serveur et ils proposaient pourtant Debian. Étrange...
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: vivien le 28 novembre 2019 à 17:29:28
Si l'on souhaite ne plus utiliser Netplan avec Ubuntu 18.04 et revenir à l'ancienne méthode de configuration, il suffit d'installer le paquet ifupdown.

sudo apt install ifupdown
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: kgersen le 28 novembre 2019 à 17:42:39

Donc on ne touche pas au fichier /etc/network/interfaces ici (c'est pour ça que l'IPv6 n'est pas "persistante") ? L'IPv6 est configurée avec ta dernière commande "sudo ip a add [..]", si je comprends bien.


oui quand je mets l'ipv6 dans /etc/network/interfaces, facon canonique de faire sur Debian, l'IPv6 monte au boot mais dégage quasi de suite. C'est dhclient qui la supprime pour une raison qui m'est inconnue (je pense que dhclient cherche a trop en faire et considere qu'il doit aussi gerer les IPv6 de cette interface et pas seulement le prefix delegation sur cette interface).
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: nephthys le 28 novembre 2019 à 17:48:33
oui quand je mets l'ipv6 dans /etc/network/interfaces, facon canonique de faire sur Debian, l'IPv6 monte au boot mais dégage quasi de suite. C'est dhclient qui la supprime pour une raison qui m'est inconnue (je pense que dhclient cherche a trop en faire et considere qu'il doit aussi gerer les IPv6 de cette interface et pas seulement le prefix delegation sur cette interface).
Ah c'est moche. J'ai trouvé un code sympa sur les forums Scaleway : https://community.scaleway.com/t/ipv6-stability-on-dedicated-servers-with-and-without-virtualisation/7284/5

Ça a l'air d'être un mélange de ta solution avec le service systemd et de l'ajout de l'interface IPv6 directement dans ce dernier. Au premier abord, on dirait que ça fonctionne chez moi :

# ping6 ip.lafibre.info
PING ip.lafibre.info(lafibre.info (2a01:6e00:10:410::2)) 56 data bytes
64 bytes from lafibre.info (2a01:6e00:10:410::2): icmp_seq=1 ttl=59 time=6.01 ms
64 bytes from lafibre.info (2a01:6e00:10:410::2): icmp_seq=2 ttl=59 time=6.02 ms
64 bytes from lafibre.info (2a01:6e00:10:410::2): icmp_seq=3 ttl=59 time=5.94 ms
^C
--- ip.lafibre.info ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 5.948/5.997/6.027/0.072 ms

Je vais faire pointer un nom de domaine dessus et continuer mes quelques tests mais ça va dans le bonne direction. Encore merci !  :)
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: kgersen le 28 novembre 2019 à 17:58:45
oui cette config  est pas  mal car complete au niveau 'systemd' (voir trop mais c'est une question de gout :))

le code important est:

Type=forking
ExecStart=/sbin/dhclient -1 -v -pf /run/dhclient6.pid -cf /etc/dhcp/dhclient6.conf -lf /var/lib/dhcp/dhclient6.leases -6 -P ${DH6IF}
ExecStartPost=/sbin/ip -6 addr add ${DH6IP}/${DH6PF} dev ${DH6IF}

ca lance dhclient en mode forking ce qui déclenche ExecStartPost donc 'ip add' quasi toute de suite apres. Ca peut marcher mais c'est de la bibouille niveau timing...si l'obtiention du bail prend trop de temps, dhclient risque de supprimer l'ip configurée dans l'ExecStartPost .


La méthode 'propre' serait de toute facon de faire un hook dhclient, un script qui est appelé quand un bail est reçu/renouvelé/supprimé. et c'est dans ca hook qu'on fait l'ip add ou ip del. En plus ca permet de ne pas mettre en dur le prefix mais d'utiliser la valeur recu par DHCPv6-PD.
Faut juste que quelqu'un mette ce script au point...moi j'ai pas trop de temps pour ca. Dommage qu'Online s'en tape quand meme.
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: kgersen le 28 novembre 2019 à 18:04:30
errata: ah je n'avais pas vu le '-1' donc ca peut être bon niveau timing. dhclient attend d'avoir une bail pour passer en mode background (forking) donc ca garantie que le bail est la quand ExecStartPost est lancé.

C'est une bonne config donc. manque l'aspect dynamique d'un hook mais c'est mieux que rien.
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: nephthys le 28 novembre 2019 à 18:16:40
errata: ah je n'avais pas vu le '-1' donc ca peut être bon niveau timing. dhclient attend d'avoir une bail pour passer en mode background (forking) donc ca garantie que le bail est la quand ExecStartPost est lancé.

C'est une bonne config donc. manque l'aspect dynamique d'un hook mais c'est mieux que rien.
Oui ça a l'air très correct au premier abord, en tout cas c'est simple à mettre en place et ça doit fonctionner sans problème lors d'un reboot (il faut que je teste quand même ^^).

En attendant mieux, je vais me contenter de ça. Comme tu dis, c'est dommage qu'Online se moque du problème. Quand tu vois l'état de la documentation, tu comprends vite qu'il va falloir chercher la solution tout seul. C'est bête car je pense qu'une des missions d'un hébergeur est de faciliter le déploiement de nouvelles technologies, en l'occurence ici l'IPv6. Pourtant la maison mère Free est l'opérateur français qui déploie le plus ses clients fixes en IPv6, donc c'est un peu paradoxal...
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: kgersen le 28 novembre 2019 à 18:53:01
J'ai mis cette config sur mon Debian, j'ai reboot , c'est niquel.

je la repost ici au cas ou le post sur le forum Online disparaisse


source: https://community.scaleway.com/t/ipv6-stability-on-dedicated-servers-with-and-without-virtualisation/7284/5

1. créer le fichier: /etc/systemd/system/dhclient6.service (tel quel, il n'y a rien a personaliser dedans)
[Unit]
Description=ISC DHCP client to send DUID for IPv6 and add IPv6 to interface
After=network.target
Wants=network.target network-online.target
Before=network-online.target
ConditionPathExists=/etc/dhcp/dhclient6.conf
ConditionPathExists=/etc/dhcp/dhclient6.vars

[Service]
EnvironmentFile=/etc/dhcp/dhclient6.vars
Type=forking
Restart=always
RestartSec=2s
TimeoutSec=10s
ExecStart=/sbin/dhclient -1 -v -pf /run/dhclient6.pid -cf /etc/dhcp/dhclient6.conf -lf /var/lib/dhcp/dhclient6.leases -6 -P ${DH6IF}
ExecStartPost=/sbin/ip -6 addr add ${DH6IP}/${DH6PF} dev ${DH6IF}
ExecStop=/sbin/ip -6 addr del ${DH6IP}/${DH6PF} dev ${DH6IF}
ExecStop=/sbin/dhclient -r -v -pf /run/dhclient6.pid -cf /etc/dhcp/dhclient6.conf -lf /var/lib/dhcp/dhclient6.leases -6 ${DH6IF}
PIDFile=/run/dhclient6.pid

[Install]
WantedBy=multi-user.target network-online.target

2. créer le fichier /etc/dhcp/dhclient6.conf (adapter au nom de l'interface enXXX et au DUID fournit par l'interface Online):
interface “enXXX” {
  send dhcp6.client-id 00:03:00:01:XX:XX:XX:XX:XX:XX;
}

3. Creer le fichier /etc/dhcp/dhclient6.vars (choisir une IPv6 DH6IP et un longueur de préfix DH6PF pour votre interface DH6IF):
# For dhclient6.service, provide IPv6 IP, desired prefix, and interface
DH6IP=2001:bc8:XXXX:XXXX::1
DH6PF=64
DH6IF=enXXX

4. recharger les configs systemd et activer le service:
sudo systemctl daemon-reload
sudo systemctl enable dhclient6.service

5. creer /etc/sysctl.d/01-ipv6-networking.conf (ajuster "enXXX" comme avant):

# set routing
net.ipv6.conf.all.forwarding=0 # 1 if routing is needed
# online ipv6: disable slaac but allow default route
net.ipv6.conf.enXXX.autoconf=0
net.ipv6.conf.enXXX.accept_ra=1 # 2 if forwarding=1

6. reboot

ou pour l'activer sans reboot:
sudo sysctl --system
sudo systemctl start dhclient6

L'étape 5 diffère si on veut faire du routing ou pas. Si on a des VMs, des containers ou des tunnels sur le serveur et qu'on veut propager IPv6 dedans il faut activer le routing (forwarding=1) et forcer le RA (accept_ra=2).
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: mirtouf le 29 novembre 2019 à 16:02:05
Pour les containers et VMs, il existe aussi l'option du proxy NDP selon sa topologie réseau.

La configuration de kgersen est très utile si vous avez un bridge car le script proposé par Online ne fonctionne correctement que sur un interface physique, sur un bridge l'interface virtuelle n'est pas prête à temps et le script se lance quand même et finit par une erreur de dhclient.
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: ValpeX le 29 novembre 2019 à 19:41:17
Je viens de me prendre une nouvelle machine chez Online.net que j'ai installé sur Debian.

J'ai la possibilité d'utiliser l'IPv6 SLAAC qui fonctionne bien mais j'aimerais configurer plusieurs IPv6 sur ma machine et c'est pour ça que je souhaitais faire comme @kgersen.Cependant après de multiples essais, il m'est impossible de ping le net en v6 même après reinstallation complète de la machine.

@kgersen : as-tu effectué d'autres étapes avant celles-ci pour monter tes IPv6 ?

Pour info, je n'ai pas de VM je veux directement monter les IP sur ma machine physique.

Merci !  ;D
 
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: kgersen le 29 novembre 2019 à 22:39:42

@kgersen : as-tu effectué d'autres étapes avant celles-ci pour monter tes IPv6 ?


J'ai pas souvenir d'autres étapes.

y'a 3 points a vérifier:
1. le routage : "ip -6 route" affiche quoi (ou "ip -6 route show default" ne pour voir que la route par défaut)
2. le bail dhcpv6-pd: contenu de '/var/lib/dhcp/dhclient6.leases'
3. l'ipv6 sur l'interface : "ip -6 -br a" (ou "ip -6 -br a show scope global" pour les IPv6 globales)

attention: "Sur les serveurs supportant IPv6 SLAAC, SLAAC doit être activé afin de garantir le bon fonctionnement du DHCPv6."

donc dans la console Online il faut aussi activer slaac meme si on n'utilise pas cette IP.(étape5, la ligne "net.ipv6.conf.enXXX.autoconf=0" indique qu'on ne veut pas se configurer une IPv6 avec SLAAC).
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: mirtouf le 29 novembre 2019 à 22:58:37
2 choses en plus:
- attention au pare-feu, il faut laisser passer les paquets UDP sur le port kivabien
- attention au chemin des exécutables qui varie d'une distro à l'autre.
Titre: Comment activer l'IPv6 sur son serveur dédié chez OneProvider (Ubuntu 18.04) ?
Posté par: ValpeX le 30 novembre 2019 à 00:36:10
Alors,

attention: "Sur les serveurs supportant IPv6 SLAAC, SLAAC doit être activé afin de garantir le bon fonctionnement du DHCPv6."

donc dans la console Online il faut aussi activer slaac meme si on n'utilise cette IP.(étape5, la ligne "net.ipv6.conf.enXXX.autoconf=0" indique qu'on ne veut pas se configurer une IPv6 avec SLAAC).

C'était la partie qu'il me manquait ! En activant SLAAC cela fonctionne maintenant correctement !  ;D

2 choses en plus:
- attention au pare-feu, il faut laisser passer les paquets UDP sur le port kivabien
- attention au chemin des exécutables qui varie d'une distro à l'autre.

Je partais d'une installation fraiche sans rien d'installé dessus et j'avais bien vérifié le chemin de dhclient, il me manquait juste l'infos de devoir avec SLAAC dans la console  ::)
Merci pour l'aide  ;)