Configuration IPv6 NAT via OpenWRT

oct. 02, 2018

Cette configuration a été mise en place sur un Linksys WRT1900ACS avec dessus un OpenWRT (dans la version 18.06). Le routeur ne remplace ici pas la box (10.0.0.1) mais se trouve juste derriÚre gérant un autre réseau (10.0.0.2 <=> 10.0.1.1). L'idée étant d'avoir de l'IPv6 mais privée pour garder un contrÎle strict sur mes appareils. Ce pourquoi j'ai opté pour du NAT6.

Installation des dépendances

J'espĂšre que vous avez dĂ©jĂ  un accĂšs SSH (root) au routeur, si ce n'est pas le cas occupez vous dĂ©jĂ  de ça (je dĂ©tails rien, il existe pas mal de tuto sur le net (voir mĂȘme la doc)). On s'attaque dans un premier temps aux dĂ©pendances pour le support des outils IPv6 (certains des packages sont dĂ©jĂ  installĂ©s par dĂ©faut) :

$ opkg update
$ opkg install ip6tables kmod-ipt-nat6 iputils-tracepath6

Configuration WAN et WAN6

On va faire simple, je pars du principe que ces 2 interfaces soient connectés en mode DHCP, en gros vous n'avez pas besoin de modifier quoi que ce soit. Votre routeur doit récupérer une IPv4 et IPv6 depuis la box.

Configuration du NAT

On configure le NAT pour transferer le traffic IPv6, pour ça il faut rajouter la ligne ci-dessous dans le fichier /etc/firewall.user (qui existe déjà) :

$ ip6tables -t nat -A POSTROUTING -o $(uci -q get network.wan6.ifname) -j MASQUERADE

Configuration de la gateway

Et pour terminer on configure la gateway, le mieux étant de faire un script qui sera automatiquement exécuté lors du démarrage des interfaces réseaux, oui toutes mais la route sera rajoutée uniquement si ça concerne le wan6, le fichier /etc/hotplug.d/iface/90-ipv6 sera trÚs certainement à créer :

#!/bin/sh
[ "$ACTION" = ifup ] || exit 0
[ "$INTERFACE" = wan6 ] && {
    route -A inet6 add ::/0 gw $(tracepath6 -n xorhak.io | grep ' 1: ' | awk 'NR==1 {print $2}') dev $(uci -q get network.wan6.ifname)
}

Et ne pas oublier les droits d'exécution :

$ chmod +x /etc/hotplug.d/iface/90-ipv6

VĂ©rification

Bon avant de vérifier quoi que ce soit, il faudra redémarrer le routeur pour la prise en charge des modifications (forcément), attendez quelques minutes...

Maintenant depuis votre PC (peut importe l'OS du moment qu'il support aussi l'IPv6 en DHCP) vous devriez avoir une IPv6 attribuĂ©e automatiquement (mĂȘme plusieurs) et l'accĂšs Ă  l'extĂ©rieur devrait bien rĂ©pondre :

$ ping6 google.com

Vous devez aussi vérifier qu'il s'agisse bien de l'IPv6 de votre routeur via test-ipv6.com ou ipv6-test.com.

DJΞRFY đŸŒ±

Linux Admin N3. Like #Apple, #Linux, #Kubernetes & #Docker, #TraefikAmbassador, #Hacking, #CTF, #Proxmark, #RFID ¯\_(ツ)_/¯

Super ! Vous vous ĂȘtes inscrit avec succĂšs.
Super ! Effectuez le paiement pour obtenir l'accĂšs complet.
Bon retour parmi nous ! Vous vous ĂȘtes connectĂ© avec succĂšs.
Parfait ! Votre compte est entiÚrement activé, vous avez désormais accÚs à tout le contenu.