Table des matières Préfixe IPv6 /48 Configurer le client DHCPv6 Démarrage du client DHCPv6 avec SystemD Configuration du réseau avec Netplan sous Ubuntu 18.04 Configuration du réseau sous Ubuntu 16 / Debian 8 et 9 Configuration alternative pour les autre système d'INIT Sous CentOS 7 Tester la configuration Debug Limitation du trafic de votre client En mode secours Ceci est une ancienne révision du document ! Préfixe IPv6 /48 Critères requis : Vous avez un compte sur console.online.net Vous avez un serveur dédié Dedibox Si vous n'avez pas encore commandé votre bloc, vous pouvez le faire directement depuis votre console. Sur les serveurs supportant IPv6 SLAAC, SLAAC doit être activé afin de garantir le bon fonctionnement du DHCPv6. Si SLAAC est désactivé, un serveur ne pourra pas apprendre sa route IPv6 par défaut. À cause de bug identifié dans dibbler-client, nous ne recommandons plus ce client dhcpv6 Configurer le client DHCPv6 Nous utiliserons ici dhclient. Il vous faudra modifier le fichier /etc/dhcp/dhclient6.conf : interface "eno0" { send dhcp6.client-id DUID; } Il vous faudra adapter le nom de l'interface (eno0) et le DUID disponible dans votre console. Démarrage du client DHCPv6 avec SystemD Une fois le client configuré, il vous faudra créer un service SystemD en adaptant le nom de l'interface (eno1) pour lancer le dhclient qui permettra l'utilisation de votre DUID (pour votre identification sur le réseau) à chaque démarrage. Créez le fichier /etc/systemd/system/dhclient.service : [Unit] Description=dhclient for sending DUID IPv6 Before=network-pre.target Wants=network-pre.target [Service] Restart=always RestartSec=10 Type=forking ExecStart=/sbin/dhclient -cf /etc/dhcp/dhclient6.conf -6 -P -v eno1 ExecStop=/sbin/dhclient -x -pf /var/run/dhclient6.pid [Install] WantedBy=network.target Le chemin du dhclient peut changer selon votre OS. Pour connaître le chemin exacte à utiliser, utilisez la commande which dhclient Puis, activez-le au démarrage : systemctl enable dhclient.service. Configuration du réseau avec Netplan sous Ubuntu 18.04 A partir de la version 18.04 (Bionic Beaver) Ubuntu utilise Netplan pour la configuration réseau. L'utilisation de dhclient n'est plus nécessaire. Les commandes présentées ci-dessous sont à utiliser en root ou avec sudo. Commencez par éditer le fichier /etc/netplan/01-netcfg.yaml comme suit : network: version: 2 renderer: networkd ethernets: enp1s0f0: dhcp4: yes dhcp6: yes addresses: - <IPV6ADDRESS>/<PREFIXLEN> Editez le fichier /etc/systemd/networkd.conf comme suit : DUIDType=vendor DUIDRawData=<LE_DUID_DE_VOTRE_SOUS_RESEAU> Appliquez la configuration à Netplan : sudo netplan apply La connexion IPv6 sera automatiquement configurée pendant le processus de démarrage de votre Dedibox. Configuration du réseau sous Ubuntu 16 / Debian 8 et 9 Les commandes présentées ci-dessous sont à utiliser en root ou avec sudo. Commencez par éditer le fichier /etc/network/interfaces comme suit : auto eno1 iface eno1 inet6 static address IPV6ADDRESS netmask PREFIXLEN Il vous faudra remplacer eno1 par le nom de votre interface. Sous Debian et les anciennes versions de Ubuntu, elle se nomme généralement eth0. L'interface réseau est initialisée avec la commande allow-hotplug par défaut sur Debian 9. Il est possible que le redémarrage du réseau échoue avec cette configuration. Dans ce cas, vous pouvez initialiser le réseau avec auto pour éviter le problème. Configuration alternative pour les autre système d'INIT Si vous n'utilisez pas SystemD pour démarrer vos services, vous pouvez configurer votre fichier /etc/network/interfaces comme suit : iface eno1 inet6 static pre-up modprobe ipv6 pre-up dhclient -cf /etc/dhcp/dhclient6.conf -6 -P -d -v $IFACE address IPV6ADDRESS netmask PREFIXLEN Toujours en adaptant le nom de l'inferface (eno1) à vos besoins. Il en va de même pour l'IPv6 et le Netmask. Sous CentOS 7 Les commandes présentées ci-dessous sont à utiliser en root ou avec sudo Sous CentOS7, après avoir configuré le dhclient et SystemD, il vous faudra configurer le fichier /etc/sysconfig/network-scripts/ifcfg-eth0 : # Generated by parse-kickstart UUID=xxxxx DNS1=62.210.16.6 BOOTPROTO=none DEVICE=eth0 ONBOOT=yes TYPE=Ethernet IPADDR=62.210.xx.xx PREFIX=24 GATEWAY=62.210.xx.1 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6ADDR="IPV6ADDRESS/PREFIXLEN" IPV6_AUTOCONF=yes NAME="System eth0" Une fois la configuration terminée, vous pouvez redémarrer pour vérifier que les services & la configuration soient bien appliquées au démarrage ! Il vous faudra autoriser dans votre pare-feu le port 546/UDP en entrant et le port 547/UDP en sortant. Tester la configuration Lancer le dhclient en ligne de commande : dhclient -cf /etc/dhcp/dhclient6.conf -6 -P -v eth0 Pour vérifier que tout fonctionne correctement, un simple ping suffit : ping6 ipv6.google.com Debug Si les configurations ne fonctionnent pas pour vous, vérifiez le nom de vos interfaces avec la commande suivante : ifconfig -a D'autre part, votre serveur doit être configuré pour accepter le RA (Router Advertisement). Par défaut, votre serveur n'acceptera pas de forward des paquets d'une interface à une autre si il est configuré automatiquement (via DHCPv6). Si vous avez besoin de forward des paquets tout en utilisant une configuration via DHCPv6, il vous faudra configurer votre sysctl net.ipv6.conf.all.accept_ra à 2 dans le fichier /etc/sysctl.conf. C'est généralement utile pour les Hyperviseur comme Proxmox. Les exemples sont donnés pour eth0/eno1, si l'interface principale s'appelle différemment il faudra donc modifier toutes les occurrences à cette dernière par le nom de la vôtre. Limitation du trafic de votre client Dans certains cas, certains client DHCPv6 ont malheureusement tendance à envoyer plusieurs requêtes par seconde (notamment dhcp6c). Ce qui engendre un blocage de la part de nos protections automatique, puisque vous êtes alors vue comme une source de Flood UDP. Pour circonvenir à ce problème nous vous invitons à limiter le trafic émis par votre dhclient6 au niveau de votre pare-feu directement. Voici un exemple pour IPTABLES : ip6tables -A OUTPUT -p udp --dport 547 -m limit --limit 10/min --limit-burst 5 -j ACCEPT ip6tables -A OUTPUT -p udp --dport 547 -j DROP En mode secours Pour tester l'IPv6 de votre serveur en mode secours, lancez d'abord la machine en Ubuntu 14, le client dhclient est déjà installé dessus. Créez le fichier qui contiendra le DUID (l'équivalent de la MAC Virtuelle) en vous aidant de la documentation ci-dessus et renseignez le DUID disponible dans votre console. nano /etc/dhcp/dhclient6.conf Puis, démarrez le client DHCPv6 : dhclient -cf /etc/dhcp/dhclient6.conf -6 -P -v <interface> Et pour terminer, configurez votre adresse IPv6 sur votre interface réseau : /sbin/ifconfig <interface> inet6 add ADRESSEIPV6/TAILLEDUBLOCK Test de l'IPv6 : ping6 ipv6.google.com