IPv6 sur VPS Hetzner / NetBSD
Ayant découvert il y a quelques mois que mon hébergeur (Hetzner) proposait IPv6 sur ses offres VPS, je me suis décidé à l'activer, pour avoir un aperçu de la configuration requise.
Configuration envoyée par Hetzner:
IPs: 2a01:4f8:d13:1d00:: /64
Gateway: 2a01:4f8:d13:1d00::1 /64
Useable IP addresses:
2a01:4f8:d13:1d00::2 to 2a01:4f8:d13:1d00:ffff:ffff:ffff:ffff
On ajoute la première adresse du pool IPv6 à l'interface réseau:
cat /etc/ifconfig.rtk0
inet 78.47.36.230 netmask 0xfffffff0
inet6 2a01:4f8:d13:1d00::2 prefixlen 64
et on définit la passerelle IPv6:
cat /etc/mygate6
2a01:4f8:d13:1d00::1
Après avoir ajouté une entrée de type AAAA sur le registrar DNS (pour moi Gandi) on vérifie que cette entrée est bien accessible:
host -t AAAA libera.cc
libera.cc has IPv6 address 2a01:4f8:d13:1d00::2
Par défaut Apache httpd "écoute" seulement sur IPv4, il faut ajouter "Listen [::]:80" dans /usr/pkg/etc/httpd/httpd.conf:
grep ^Listen httpd.conf
Listen 0.0.0.0:80
Listen [::]:80
Avons une socket ouverte en IPv6 sur le port 80 ?
sockstat -f inet6 -ln | grep 80
www httpd 700 4 tcp6 *.80 *.*
www httpd 1958 4 tcp6 *.80 *.*
www httpd 1971 4 tcp6 *.80 *.*
root httpd 2100 4 tcp6 *.80
On peut donc tester depuis une machine cliente si Apache envoie répond bien sur IPv6:
curl -6 libera.cc
Computer says:
Business as usual ...
Configuration envoyée par Hetzner:
IPs: 2a01:4f8:d13:1d00:: /64
Gateway: 2a01:4f8:d13:1d00::1 /64
Useable IP addresses:
2a01:4f8:d13:1d00::2 to 2a01:4f8:d13:1d00:ffff:ffff:ffff:ffff
On ajoute la première adresse du pool IPv6 à l'interface réseau:
cat /etc/ifconfig.rtk0
inet 78.47.36.230 netmask 0xfffffff0
inet6 2a01:4f8:d13:1d00::2 prefixlen 64
et on définit la passerelle IPv6:
cat /etc/mygate6
2a01:4f8:d13:1d00::1
Après avoir ajouté une entrée de type AAAA sur le registrar DNS (pour moi Gandi) on vérifie que cette entrée est bien accessible:
host -t AAAA libera.cc
libera.cc has IPv6 address 2a01:4f8:d13:1d00::2
Par défaut Apache httpd "écoute" seulement sur IPv4, il faut ajouter "Listen [::]:80" dans /usr/pkg/etc/httpd/httpd.conf:
grep ^Listen httpd.conf
Listen 0.0.0.0:80
Listen [::]:80
Avons une socket ouverte en IPv6 sur le port 80 ?
sockstat -f inet6 -ln | grep 80
www httpd 700 4 tcp6 *.80 *.*
www httpd 1958 4 tcp6 *.80 *.*
www httpd 1971 4 tcp6 *.80 *.*
root httpd 2100 4 tcp6 *.80
On peut donc tester depuis une machine cliente si Apache envoie répond bien sur IPv6:
curl -6 libera.cc
Computer says:
Hello World !
Business as usual ...