Obtenir une IPv6 grâce au VPN

Malgré l'année dans laquelle nous vivons, certains fournisseurs d'accès ne proposent toujours pas de connectivité IPv6. Vous pouvez heureusement proposer vos services en IPv6 après avoir configuré un VPN vers un fournisseur qui en dispose : openbsd.amsterdam, vultr... (voir il y a quelques chapitres la partie "Quelqu'un peut-il héberger OpenBSD pour moi?").

On va pour cela mettre en place un VPN avec wireguard comme vu précédemment, en y ajoutant la connectivité ipv6 à un client qui n'en dispose pas.

Prérequis

Ce site vous aide à générer une rangée ipv6 privée

Sur le serveur distant :

Pensez à activer l'option d'ip forwarding pour l'ipv6 dans "/etc/sysctl.conf":

net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1

Le fichier "/etc/hostname.wg0" servant à configurer wireguard doit désormais préciser l'ipv6 du point de sortie du VPN. Ici, c'est "fd9c:f774:0bfa:acfc::1/64".

Chaque client doit pouvoir disposer aussi de son ipv6. On ajoute tout simplement une nouvelle option "wgaip" en plus de l'ancienne. La configuration ressemble alors à ceci :

# cat /etc/hostname.wg0
inet 10.0.0.1/24
inet6 fd9c:f774:0bfa:acfc::1/64
wgkey [...snip...]
wgport 4545
# peer 1
wgpeer [...snip...] wgaip 10.0.0.2/32 wgaip fd9c:f774:0bfa:acfc::2/128
# peer 2
wgpeer [...snip...] wgaip 10.0.0.3/32 wgaip fd9c:f774:0bfa:acfc::3/128
# peer 3
wgpeer [...snip...] wgaip 10.0.0.4/32 wgaip fd9c:f774:0bfa:acfc::4/128
up

⚠ C'est important que chaque ipv6 des clients soit bien précisée avec à la fin "/128".

Sur la machine qui veut récupérer une ipv6 :

Dans le fichier "/etc/hostname.wg0", on doit ajouter quelques éléments par rapport à précédemment :

La configuration de wireguard ressemble à ceci :

# cat /etc/hostname.wg0
wgkey [...snip...]
wgpeer [...snip...] \
	wgendpoint <XX.XX.XX.XX> 4545 \
	wgaip 0.0.0.0/0 \ # <--- !
	wgaip ::0/0 \
	wgpka 25
inet 10.0.0.3/24
inet6 fd9c:f774:0bfa:acfc::3/64 # <--- !
wgrtable 1
up
!route add -inet default 10.0.0.1
!route add -inet6 default fd9c:f774:0bfa:acfc::1 # <--- !

Et voilà, vous disposez désormais d'un accès ipv6 au travers du VPN.

Vérifiez-le par exemple avec cette commande :

curl -6 https://ifconfig.co