[pfSense] Ajouter un accès IPv6 à une connexion Internet IPv4 (via un tunnel)
08/09/2020
La solution présentée repose sur le service Tunnelbroker d'Hurricane Electric. Ce service est gratuit et permet de bénéficier d'une plage /48 d'adresses IPv6.
La méthodologie suivie est, bien évidemment, applicable pour d'autres fournisseurs de tunnels IPv6.
Pré-requis
Le seul pré-requis est que nous disposions d'une adresse IPv4 publique pouvant répondre aux PING. Il n'est pas nécessaire que cette adresse IPv4 soit fixe.
1. Création d'un compte sur Tunnelbroker.net
La première étape consiste à se créer un compte sur le site tunnelbroker.net.
On valide l'inscription en suivant le lien envoyé par e-mail. Puis on peut se connecter au site Tunnelbroker.
Dans la colonne de gauche "User functions", nous cliquons sur le lien "Create Regular Tunnel" :
Il faut renseigner son adresse IPv4 publique (qui doit répondre aux ping) et choisir le serveur avec lequel le tunnel IPv6 sera monté. Étant basé en France métropolitaine, nous choisissons le serveur Hurricane de Paris. Nous cliquons enfin sur "Create Tunnel".
Une fois le tunnel créé, nous disposons de toutes les informations nécessaires pour créer notre interface IPv6 sur notre pfSense :
Depuis l'onglet "Advanced", il est possible de personnaliser un certain nombre de paramètres :
- MTU : il est de 1 480 par défaut. Si vous utilisez une connexion Internet montée via le protocole PPPoE, alors il faut réduire ce MTU. 1 452 devrait être une bonne valeur.
- Adresse IP publique dynamique : si votre connexion Internet IPv4 ne dispose que d'une adresse IP publique dynamique, alors il faudra mettre à jour automatiquement le tunnel à l'aide de l'Update Key (nous décrivons la procédure dans la suite de l'article).
2. Préparer pfSense au tunnel IPv6
Comme indiqué en pré-requis, il est nécessaire que notre adresse IPv4 publique puisse répondre au PING. Pour configurer notre pfSense afin qu'il réponde au ping sur son adresse IPv4 publique, nous nous rendons dans le menu Firewall > Rules :
Depuis l'onglet WAN, nous cliquons sur le bouton "+ Add" afin d'ajouter une nouvelle règle qui comportera les paramètres suivants :
- Action : Pass
- Interface : WAN, ou d'une façon générale, l'interface sur laquelle est rattachée votre connexion Internet
- Address Family : IPv4
- Protocol : ICMP
- ICMP Types : any
- Source : "Single host or Alias" et nous indiquons l'adresse IP du serveur choisi à l'étape précédente. Soit dans notre cas : 216.66.84.42
- Destination : This firewall
Nous cliquons sur "Save", puis sur "Apply Changes" pour sauvegarder et appliquer la configuration.
La règle une fois créée devrait ressembler à quelque chose comme ceci :
Enfin, il est nécessaire que notre pfSense accepte le trafic IPv6. Il s'agit de la configuration par défaut de pfSense. Cependant, si le support d'IPv6 a été désactivé, il est possible de le réactiver en se rendant dans le menu System > Advanced, onglet "Networking" :
Vérifier que la ligne "Allow IPv6" soit bien cochée, puis cliquer sur "Save".
3. Création de l'interface IPv6 sur pfSense
Nous pouvons maintenant créer une nouvelle interface pour notre connexion IPv6. Pour cela, se rendre dans le menu Interfaces > Assignment > GIFs :
Nous cliquons sur le bouton vert "+ Add". Les champs à remplir sont les suivants :
- Parent Interface : WAN dans notre cas
- GIF Remote Address : l'adresse IPv4 du serveur distant, soit dans notre cas : 216.66.84.42
- GIF tunnel local address : l'adresse IPv6 du client. Cette information correspond à la ligne "Client IPv6 Address" du tableau "Tunnel Details" vu précédemment. Soit, dans notre cas : 2001:470:abcd:781::2
- GIF tunnel remote address : l'adresse IPv6 du serveur. Cette information correspond à la ligne "Server IPv6 Address" du tableau "Tunnel Details" vu précédemment. Soit, dans notre cas : 2001:470:abcd:781::1
- GIF tunnel subnet : la taille du sous-réseau IPv6 (au format CIDR). Soit, dans notre cas : 64.
Les autres options doivent être laissées vides ou non-cochées, à moins que vous ne sachiez ce que vous faites.
Exemple de résultat obtenu :
Notre tunnel GIF est créé.
Il reste à lui associer une interface logique. Pour cela, nous nous rendons dans l'onglet Assignment, choisissons l'interface GIF nouvellement créée et cliquons sur le bouton "+ Add" :
Nous cliquons sur notre interface OPT1 (ou OPTx d'un façon générale) afin de la configurer de la manière suivante :
- Enable : cocher la case pour activer l'interface
- Description : le nom de l'interface. On lui donne un nom plus parlant qu'OPT1. Exemple : WANv6
Les autres options doivent être laissées vides ou non-cochées, à moins que vous ne sachiez ce que vous faites.
Exemple de résultat obtenu :
4. Configuration de la gateway IPv6 sur pfSense
Lors de la création de l'interface IPv6 (WANv6), une gateway est automatiquement ajoutée.
Si vous possédez déjà une passerelle IPv6, la nouvelle passerelle ne sera pas marquée comme passerelle par défaut. Si vous le souhaitez, il faut donc penser à modifier votre passerelle par défaut depuis le menu System > Routing et renseigner les champs du tableau "Default gateway" :
5. Ajouter des résolveurs DNS IPv6
TunnelBroker fournit un résolveur DNS IPv6 qui sera ajouté automatiquement à pfSense lorsque l'interface GIF sera montée. Cependant, il est toujours possible d'opter pour d'autres résolveurs DNS. Cette configuration s'opère depuis le menu System > General Setup.
Voici quelques exemples de résolveurs DNS IPv6.
DNS Google :
- 2001:4860:4860::8888
- 2001:4860:4860::8844
DNS Quad9 :
- 2620:fe::fe
- 2620:fe::9
DNS FDN :
- 2001:910:800::12
- 2001:910:800::40
6. Configurer le LAN pour IPv6
À ce stade, pfSense lui-même dispose d'une connectivité IPv6. Pour en faire bénéficier les ordinateurs du LAN, une possibilité est de configurer un dual-stack IPv4/IPv6.
Se rendre dans le menu Interfaces > LAN et apporter les modifications suivantes :
- IPv6 Configuration Type : choisir "Static IPv6"
- IPv6 address : indiquer une adresse comprise dans le /64 routé fourni par tunnelbroker. Cette information se trouve à la ligne "Routed /64" du tableau "Tunnel Details" vu précédemment. Soit, dans notre cas 2001:470:abce:781::/64 ; nous pouvons, par exemple, choisir l'adresse 2001:470:abce:781::1 comme adresse IPv6 pour la patte LAN du pfSense
Exemple de résultat obtenu :
Puis, nous cliquons sur "Save" et "Apply Changes" pour valider les modifications.
Nous nous rendons ensuite dans le menu Services > DHCPv6 Server & RA. Les champs à renseigner sont les suivants :
- DHCPv6 Server : cocher la case pour activer DHCPv6 sur le LAN
- Range : choisir la plage d'adresses IP que nous souhaitons utiliser pour le service DHCP
Exemple de résultat obtenu :
Nous cliquons sur "Save" pour sauvegarder les changements, puis nous basculons sur l'onglet "Router Advertisements"
Enfin, il ne nous reste plus qu'à configurer une règle de firewall afin d'autoriser le trafic IPv6 pour le LAN. Normalement, une telle règle existe déjà par défaut, mais si nous l'avons supprimée, il faudra la re-créer. Pour cela, nous nous rendons dans le menu Firewall > Rules, onglet LAN et nous cliquons sur "+Add" afin d'ajouter une règle avec les paramètres suivants :
- Action : pass
- Interface : LAN
- Address Family : IPv6
- Protocol : any
- Source : LAN net
- Destination : any
Exemple de résultat obtenu :
À ce stade, tout doit fonctionner. On peut tester !
Plusieurs sites permettent de tester sa connectivité. LaFibre.info : ip.lafibre.info/
Test-IPv6.com : test-ipv6.com
Mise à jour du tunnel pour les connexions IPv4 avec une adresse IP publique dynamique
Dernier point qui ne concerne que ceux qui ne disposent pas d'une adresse IPv4 fixe : il faut maintenir le tunnel à jour. Pour cela, il faut naviguer dans le menu Services > Dynamic DNS et cliquer sur le bouton "+Add" et configurer les champs de la manière suivante :
- Service Type : HE.net Tunnelbroker
- Interface to monitor : WAN
- Hostname : le tunnel ID qui se trouve sur la première ligne de notre tableau "Tunnel Details"
- Username : saisir le nom d'utilisateur pour l'accès au site tunnelbroker.net
- Password : saisir l'Update Key configurable depuis l'onglet "Advanced" du tableau "Tunnel Details"
Cliquer sur "Save" pour sauvegarder les paramètres.
Voilà, nous avons ajouté un accès IPv6 à une connexion Internet n'offrant qu'une connectivité IPv4.
TunnelBroker n'est pas la seule solution existante. Il existe une liste comparative sur Wikipedia (EN)
Pour aller plus loin
[pfSense] Comprendre la gestion des interfaces réseaux
[pfSense] Configurer son serveur DHCP
Tous nos articles classés par thème
Voir un article au hasard
Vous avez aimé cet article ? Vous cherchez du matériel de qualité ? Alors contactez-nous.
Retrouvez nos services et firewall pour pfSense & OPNsense
4 commentaires
FanPfsense - 14/09/2020 à 16:27:28
merci pour cet article intéressant, fonctionnel et très bien expliqué.
petite question : est-il possible de d'ouvrir un port ipv6 avec cette technique ?
par ex : serveur web accessible en ipv6 avec l'ipv6 de tunnelbroker ?
merci
Guillaume - 14/09/2020 à 21:06:58
@FanPfsense :
Bonjour,
Oui, tout à fait.
Cordialement,
Guillaume
--
Provya
jmguilbert - 30/01/2024 à 18:20:03
Bonjour,
Dans une configuration différente d'IPv6 avec Pfsense, je ne parviens pas à faire passer mes paquets IPv6 du Lan vers le Wan.
Puis-je me permettre de vous expliquer ?
Mon FAI me mets à disposition une plage V6 telle que 2a0d:xxxx::/31
Je m'interconnecte avec lui via le Wan sur la plage 2a0d:xxxx::/64
Lui est en 2a0d:xxxx::1/64
Mon wan Pfsense est en 2a0d:xxxx::2/64
Jusque là tout va bien: les deux papotent bien ensemble.
Puis je pioche dans la range attribuée un 2a0d:xxxx:1::/64 pour configurer mon LanV6.(2a0d:xxxx:1::1 et suivants)
J'annonce cette plage via RA.
Les règles firewall sont ok.
Et paf le chien ... mes paquets V6 en provenance du Lan s'arrêtent au Wan et ne remontent pas chez mon FAI.Que je configure le Lan en fixe ou avec dhcpv6.
Auriez-vous une piste, une idée pour me sortir de la gadoue d'un presque débutant?
JM.
Guillaume - 18/04/2024 à 14:05:28
@jmguilbert :
Bonjour,
Votre FAI ne vous fournit-il pas une délégation de préfixe ?
Sinon, il vous faudrait un proxy NDP ; ce qui, à ma connaissance, n'existe pas sous pfSense.
Cordialement,
Guillaume
--
Provya
Flux RSS des commentaires de cet article