La plupart des offres de VPS incluent l'IPv6, et la plupart restent à moitié configurées : l'adresse est attribuée, un enregistrement AAAA existe, mais le pare-feu ou le serveur web n'écoute jamais dessus. Un visiteur en IPv6 tente alors la voie rapide, attend l'expiration du délai, et ne se rabat qu'ensuite sur l'IPv4. Le site paraît lent pour des raisons qu'aucun test en IPv4 ne montrera.
Est-ce que cela marche vraiment
ip -6 addr show
ping6 -c2 ipv6.google.com
curl -6 -sS -o /dev/null -w '%{http_code}\
' https://yourdomain.com
C'est la dernière ligne qui compte. Si elle se bloque ou échoue alors que la version IPv4 répond, votre enregistrement AAAA pointe vers une porte derrière laquelle il n'y a personne.
Les trois endroits à vérifier
- Le serveur web — Nginx a besoin de sa propre ligne listen :
listen [::]:443 ssl; - Le pare-feu — ufw et firewalld traitent l'IPv6 séparément ; les règles iptables ne s'appliquent pas du tout à ip6tables.
- Le DNS — un enregistrement AAAA ne sert que si les deux points ci-dessus sont vrais.
# nginx
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
Votre application verra une adresse différente
Un client IPv6 arrive avec une adresse du genre 2001:db8::1. Du code qui range une IP dans une colonne de 15 caractères, ou qui la compare à une liste blanche en v4, casse en silence. Une limitation de débit fondée sur l'adresse complète est elle aussi trop étroite, puisqu'un même client dispose en général d'un /64 entier.
Si vous ne comptez pas finir le travail
Supprimez l'enregistrement AAAA. Pas d'IPv6, c'est une connexion IPv4 propre et rapide. Un IPv6 cassé, c'est un délai d'attente à chaque première visite.
