IPv6, OpenWRT et de mauvaises comprehensions

J’ai lutté pendant un certain temps contre l’IPv6 sur la configuration de ce site web. C’est assez simple, ce site tourne sur un Raspberry pi4 avec 2GB de ram, avec nginx, PHP, Mariadb et un disque USB externe pour stocker les données. Le pi a une adresse IPv6 que j’envoie à Cloudflare, pour la protection et la mise en cache. Cela permet également aux personnes qui ne disposent que d’une connexion IPv4 d’accéder à cette page. Mais j’ai eu du mal à faire fonctionner les choses de manière cohérente pendant un certain temps. Mon routeur est basé sur OpenWRT, mon FAI m’a alloué un préfixe /64 complet… Tout aurait donc dû être facile. Sauf que ce n’était pas trivial.

Ce qui se passait, c’est que mon pi me donnait une adresse IPv6 accessible globalement, et que le site fonctionnait quand je mettais les bons trous dans mon firewall pour CloudFlare… Mais à chaque redémarrage du routeur, l’adresse IPv6 du pi changeait. Cela n’aurait pas dû se produire, puisqu’il y a une valeur DUID cohérente qui est normalement transmise au serveur DHCPv6 et que vous pouvez ensuite obtenir la même IP à nouveau.

Que s’est-il donc passé ? Il s’avère que j’avais mal configuré mon routeur DHCPv6. OpenWRT a une multitude de paramètres, et l’un des plus déroutants sur les parties IPv6 était pour le paramètre DHCP IPv6 de l’interface LAN, il avait les modes Relais, Serveur ou Hybride disponibles. Ne connaissant pas mieux, j’ai pensé que le mode hybride (relais ou serveur selon les besoins) serait la solution la plus simple et la meilleure.

Il m’a fallu beaucoup d’approfondissement pour me rendre compte qu’avec mon architecture de réseau relativement simple, j’étais bien mieux loti avec le mode serveur. Les modes Relais et Hybride sont destinés aux cas où vous essayez d’allouer des adresses IPv6 à des périphériques qui sont hors site ou qui arrivent par des réseaux invités dont la topologie n’est pas simple. Et je suis sûr que plus de la moitié des détails sont erronés.

En bref, cela ajoutait de la complexité et des contrôles qui me donnaient juste assez de corde pour me pendre. C’est pourquoi je suis revenu au mode serveur standard. Retour au mode serveur standard. Maintenant, *tous* mes périphériques réseau compatibles IPv6 reçoivent une adresse DHCPv6 dans le routeur. Cela rend la gestion beaucoup plus facile pour moi, puisque la vue d’ensemble d’OpenWRT me montre maintenant quels sont mes périphériques IPv6 sur le réseau. Et le pi ? Son IP survivra aux redémarrages. Je n’aurai donc plus besoin de me connecter à plusieurs reprises à Cloudflare ou à mon routeur et de copier-coller la nouvelle adresse IPv6 pour vous permettre d’accéder à ce site web.