L’encapsulation 6in4 (décrite dans la RFC 4213) est une méthode éprouvée pour transporter des paquets IPv6 à travers un réseau de transit exclusivement IPv4. Ce mécanisme encapsule directement l’en-tête IPv6 au-dessus d’IPv4 en utilisant le protocole IP numéro 41 (SIT pour Simple Internet Transition). C’est une solution rapide et légère pour relier deux réseaux locaux distants ou raccorder un serveur isolé à une infrastructure IPv6 sans la lourdeur d’un VPN complexe.
Prérequis réseau et pare-feu
Pour mettre en place un tunnel 6in4 entre deux machines Debian, plusieurs conditions préalables doivent être validées :
- Les deux hôtes doivent disposer d’une connectivité IPv4 directe ou routable entre eux.
- Si un pare-feu intermédiaire ou local filtre le trafic, il doit explicitement autoriser le protocole IP 41 (attention, il s’agit d’un numéro de protocole de niveau 3 et non d’un port TCP ou UDP).
- Vous devez disposer des privilèges d’administration (root ou sudo) sur les deux serveurs.
- Le module noyau sit doit être chargé. Si vous utilisez un environnement minimaliste où ce composant a été désactivé, vous pourriez devoir adapter vos modules ou complier un noyaux linux adapté pour activer l’option CONFIG_IPV6_SIT.
Configuration persistante dans /etc/network/interfaces
La méthode la plus robuste sous Debian consiste à déclarer l’interface de tunnel dans le gestionnaire classique /etc/network/interfaces. Prenons un cas d’usage avec deux nœuds :
- Passerelle A : IPv4 locale 198.51.100.1 / IPv6 assignée au tunnel 2001:db8:1::1/64
- Passerelle B : IPv4 locale 203.0.113.2 / IPv6 assignée au tunnel 2001:db8:1::2/64
Configuration sur la machine A
Éditez le fichier /etc/network/interfaces et ajoutez la strophe suivante :
auto tun6in4
iface tun6in4 inet6 v4tunnel
address 2001:db8:1::1
netmask 64
local 198.51.100.1
endpoint 203.0.113.2
ttl 64
mtu 1480
up ip -6 route add 2001:db8:2::/64 via 2001:db8:1::2 dev tun6in4
Configuration sur la machine B
Sur le second serveur, la configuration est symétrique. Éditez également /etc/network/interfaces :
auto tun6in4
iface tun6in4 inet6 v4tunnel
address 2001:db8:1::2
netmask 64
local 203.0.113.2
endpoint 198.51.100.1
ttl 64
mtu 1480
up ip -6 route add 2001:db8:3::/64 via 2001:db8:1::1 dev tun6in4
Gestion de la MTU
L’encapsulation 6in4 ajoute une surcharge fixe de 20 octets correspondant à l’en-tête IPv4. Sur un réseau Ethernet standard avec une MTU de 1500 octets, la MTU optimale du tunnel est donc de 1480 octets (1500 – 20). Une valeur trop haute provoquera une fragmentation indésirable au niveau IPv4 ou des pertes de paquets silencieuses si l’ICMP est mal filtré. Selon les normes RFC d’IPv6, la MTU minimale absolue est de 1280 octets ; vous ne devez jamais descendre en dessous de cette valeur.
Activation et validation du tunnel
Pour activer l’interface sans redémarrer le serveur, utilisez la commande suivante :
ifup tun6in4
Une fois le tunnel monté, il est nécessaire de vérifier que l’adresse et le lien sont bien actifs. Vous pouvez consulter notre mémo pour afficher l’IPv6 d’une interface et vérifier que les adresses de lien local (fe80::) ainsi que l’adresse globale configurée sont opérationnelles.
Pour valider la communication de bout en bout, effectuez un test avec l’utilitaire ping :
ping -6 2001:db8:1::2
Si les requêtes n’aboutissent pas, assurez-vous que les règles iptables ou nftables des deux machines acceptent bien le trafic du protocole 41 dans leur chaîne d’entrée (INPUT) :
iptables -A INPUT -p 41 -j ACCEPT




