Routeur Cudy derrière une Freebox (IPv6 routé)
Routeur Cudy derrière une Freebox (IPv6 routé)
IPv6 routée avec délégation de préfixe statique
Symptôme
Un mobile Android connecté à un routeur Wi-Fi secondaire (Cudy, « Beta ») derrière la Freebox (« Alpha ») attend quelques secondes avant d’ouvrir certains sites. Aucun problème directement sur le Wi-Fi de la Freebox.
Diagnostic (avec Termux, installé depuis F-Droid)
dig: DNS rapide (24 à 40 ms), donc ce n’est pas la cause.curl -4: IPv4 rapide.curl -6 -v: échec en 3 s avecNo route to host.
Cause : Beta était en mode IPv6 « relais » et recopiait le /64 de la Freebox. Le mobile et le serveur se retrouvaient dans le même /64 : le mobile croyait le serveur sur son lien local, la découverte de voisin restait sans réponse, puis Android basculait en IPv4 après l’attente.
Solution : IPv6 routée avec délégation statique
La Freebox ne délègue pas de préfixe par DHCPv6-PD (à ma connaissance, ce point a pu évoluer), mais on peut lui indiquer un préfixe /64 et un routeur « next hop ».
Freebox (Connexion Internet > Configuration IPv6 > Délégation de préfixe) :
- Préfixe
2a01:e0a:95a:e2f2::/64 - Next Hop : adresse locale (
fe80::) du WAN de Beta, calculée depuis sa MAC (EUI-64) :80:AF:CA:E4:15:69→fe80::82af:caff:fee4:1569.
Beta, WAN IPv6 « IP statique » :
- Adresse :
2a01:e0a:95a:e2f0::55/64(dans le LAN de la Freebox) - Passerelle : l’adresse
fe80::de la Freebox (affichée dans son écran de délégation) - Préfixe :
2a01:e0a:95a:e2f2::/64 - DNS :
2606:4700:4700::1111 - LAN : annonces RA/SLAAC en mode serveur
Vérification
1
curl -6 -sS https://api6.ipify.org
L’adresse obtenue commence par 2a01:e0a:95a:e2f2: : le mobile est bien dans le préfixe délégué, l’IPv6 est routée, et l’attente a disparu.
À retenir
- Un routeur en mode IPv6 « relais » partage le /64 de l’amont : les clients ne peuvent pas joindre en IPv6 les machines du LAN amont.
curl -wavectime_connectettime_namelookuppermet de séparer DNS, connexion et TLS.- L’adresse
fe80::d’une interface se calcule depuis sa MAC : insérerff:feau milieu, puis inverser le 7ᵉ bit du premier octet. - Si le serveur est filtré en IPv6, autoriser aussi le nouveau préfixe.
Annexe
SSH vers Mobile Termux par adb
Sans Termux
Avecadb shell, vous avez directement le shell Android. Il contientpingmais en général pasdignicurl, donc c’est insuffisant pour le test de timing. Termux reste nécessaire.
Vous travaillez alors dans le terminal du PC, avec copier-coller normal. Les commandes courtes se tapent dans Termux, une seule fois :
1
2
3
4
pkg install openssh
passwd
whoami
sshd
passwd demande un mot de passe de votre choix, et whoami affiche l’utilisateur (du type u0_a137). Sshd écoute sur le port 8022.
Sur le PC :
1
2
adb forward tcp:8022 tcp:8022
ssh -p 8022 u0_a137@localhost
(remplacez par votre utilisateur). Vous obtenez le shell Termux du téléphone, et les commandes dig et curl s’y exécutent depuis le mobile, donc via le wifi Beta. Le forward passe par le câble USB et n’affecte pas ce que vous testez.
Si erreur
Connection closed by 127.0.0.1 port 8022 ?
Ce message vient presque toujours du fait que sshd ne tourne plus sur le téléphone.adb forwardouvre le port 8022 sur le PC même quand rien n’écoute côté téléphone, et la connexion est alors fermée aussitôt. Android arrête facilement Termux dès qu’il passe en arrière-plan.
1. Vérifier dans Termux (via scrcpy)
1
pgrep -a sshd
Aucune ligne affichée : sshd est arrêté. Relancez-le :
1
sshd
et gardez Termux ouvert au premier plan (ou installez une notification persistante avec termux-wake-lock, qui nécessite l’app Termux:API, sinon utilisez l’option « Acquire wakelock » dans la notification Termux).
2. Contrôler que le port écoute
1
2
pkg install iproute2
ss -ltn | grep 8022
Vous devez voir une ligne LISTEN sur le port 8022.
3. Refaire le forward et se connecter Sur le PC :
1
2
3
adb forward --remove tcp:8022
adb forward tcp:8022 tcp:8022
ssh -p 8022 u0_a137@localhost