La Fibre

Fournisseurs d'accès à Internet mobile et 5G/4G fixe => 5G/4G Bouygues Telecom => Bouygues Telecom 5G/4G box Bouygues Telecom => Discussion démarrée par: Cryptage le 07 décembre 2019 à 23:12:15

Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: Cryptage le 07 décembre 2019 à 23:12:15
Édit Vivien : ce tutoriel concerne les clients qui ont une SIM qui gère IPv6. En 2019, ce sont les abonnement grand public avec de la voix des opérateurs Bouygues Telecom et Orange. Si votre SIM ne gère pas IPv6 (SIM "4G Box", SIM "clé 4G" ou SIM d'un opérateur sans IPv6) forcer l'IPv6 sur votre routeur Huawei ne permettra pas d'avoir IPv6, même en forçant l'APN mmsbouygtel.com



J'hallucine !

Je viens de modifier la page JavaScript des profils IPv4/IPv6 en modifiant/complétant ceci :

g_promag_dialogContent += "<select name='Ip type' id='pop_ip_type_value'>";^M
g_promag_dialogContent += "<option value='2'>" + IDS_common_IPV4V6 + '</option>';^M
g_promag_dialogContent += "<option value='0'>" + IDS_common_IPV4 + '</option>';^M

avec :
g_promag_dialogContent += "<option value='1'>" + IDS_common_IPV6 + '</option>';^M

Création d'un nouveau profil... et là :

(https://lafibre.info/images/ipv6/201912_ipv6_only_routeur_huawei_1.jpg)

Et incroyable, ça fonctionne...
On voit qu'il n'arrive pas à accéder à de l'IPv4 (64:ff9b).

ping6 free.fr
PING free.fr (2a01:e0c:1::1): 56 data bytes
64 bytes from 2a01:e0c:1::1: seq=0 ttl=53 time=26.916 ms
64 bytes from 2a01:e0c:1::1: seq=1 ttl=53 time=40.749 ms

--- free.fr ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 26.916/33.832/40.749 ms

ping6 orange.Fr
PING orange.Fr (64:ff9b::c1fc:8522): 56 data bytes

--- orange.Fr ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss

ping6 google.fr
PING google.fr (2a00:1450:4007:805::2003): 56 data bytes
64 bytes from 2a00:1450:4007:805::2003: seq=0 ttl=54 time=32.933 ms

Clairement ça ne règle pas tout mais ça me permet déjà de pouvoir avancer sans solliciter Bouygues !

Edit : modification de la page HTML associée et maintenant... Juste incroyable.

(https://lafibre.info/images/ipv6/201912_ipv6_only_routeur_huawei_2.jpg)

J'ai rebooté et j'ai bien de l'IPv6 permanente avec ces modifications.
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: Cryptage le 07 décembre 2019 à 23:35:12
J'ai connecté un PC Windows derrière et :
- J'ai bien une IP publique en 2a04.
- Les sites IPv4 fonctionnent bien via le nom DNS malgré un ping HS.
- On confirme qu'il n'y a pas de 464XLAT sur le E5186, les IP littérales ne fonctionnent pas.

(https://lafibre.info/images/ipv6/201912_ipv6_only_routeur_huawei_3.jpg)

Edit : et bonne surprise, le E5186 a bien Radvd :

ps -ef |grep -i rad
root      3567     1  0 23:22 ?        00:00:00 cradlecall
root      3988     1  0 23:22 ?        00:00:00 radvd -C /var/radvd/radvd.conf br0
root      4062     1  0 23:22 ?        00:00:00 radvd -C /var/radvd/radvd.conf br0
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: Cryptage le 08 décembre 2019 à 00:32:04
J'ai installé Clatd (qui s'appuie sur Tayga) dans une VM Linux et j'ai réussi à avoir de l'IPv4.

- J'arrive à accéder à lafibre.info en IP comme en DNS en IPv4.
- J'arrive à accéder à lafibre.info en IP comme en DNS en IPv6.

Par contre sur https://ip.lafibre.info il ne détecte pas d'IPv4 utilisée pour les adresses littérales... Vu que j'utilise W3M en lignes de commandes je me méfie ! ;D

Comme je n'ai que de l'IPv6 sur le Linux, il semblerait que le 464XLAT fasse bien son travail sinon ça ne fonctionnerait pas via 46.227.16.8 .
C'est plutôt positif tout ça.

Maintenant le fait que le E5186 diffuse les adresses clairement ça aide et ce ne sera pas le cas chez les autres propriétaires de Huawei...


Edit : ou pas !

Pour ceux qui ont des Huawei qui n'ont que "IPv4" et "IPv4 + IPv6" est-ce que vous pouvez essayer ceci (fonctionne chez moi) ?

- Aller sur l'interface du routeur avec Firefox.
- Aller dans la gestion des profils et choisir "New Profile"
- Mettre le nom et l'APN, ne pas toucher le case "IPv4 + IPv6"
- Faire F12 pour éditer et faire la modification suivante :

(https://lafibre.info/images/ipv6/201912_ipv6_only_routeur_huawei_4.jpg)

- Valider.
- Vérifier dans "System | Device information" que vous avez à présent une IPv6 uniquement.

Attention :
- L'APN n'affichera pas IPv6.
- Vous ne devez plus modifier l'APN.
- Il se peut que ça ne fonctionne pas sur tous les routeurs.
- Vous n'aurez pas de gestion du 464XLAT mais les sites IPv4 devraient pouvoir être accessibles par leurs noms DNS.
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: vivien le 08 décembre 2019 à 08:58:06
Merci pour le tutoriel.

Ton test a été fait sur un Huawei E5186 ?

Ta prochaine mission, si vous l'acceptez est de trouver comment activer le CLAT, proposé dans des firmwares Huawei hors de France : (la version Français ne propose pas de CLAT)
il a trouvé des routeurs Huawei avec la CLAT, pour un fonctionnement IPv6 only :

(cliquez sur la miniature ci-dessous - le document est au format PDF)
(https://lafibre.info/images/ipv6/201805_Huawei_B311s-220_for_Egypt.png) (https://lafibre.info/images/ipv6/201805_Huawei_B311s-220_for_Egypt.pdf)

Ce qui est assez incompréhensible, c'est que Huawei propose ce firmware pour l'Egypte, un pays qui à taux IPv6 proche bien faible  (de 2% selon Google, un peu plus pour l'Apnic) et pas pour la France, alors que ce pays qui utilise pas mal de routeur Huawei pour les box 4G a deux des 4 gros opérateurs se sont en cours de migration vers de l'IPv6 only, avec des millions de clients migré chaque semaines.

La documentation averti bien sur un risque de débit plus faible pour le trafic qui passe par le CLAT. Avec DNS64/NAT64, le trafic via le CLAT devrait être faible si le terminal utilise le DNS proposé.


(https://lafibre.info/images/ipv6/201805_Huawei_B311s-220_for_Egypt_1.png)

(https://lafibre.info/images/ipv6/201805_Huawei_B311s-220_for_Egypt_2.png)
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: Cryptage le 08 décembre 2019 à 14:25:36
Oui c'est sur un E5186.

Pour la prochaine mission désolé de te décevoir mais ça n'aboutira pas ;).

J'ai réussi à extraire très partiellement un firmware d'un B535-232 et on trouve dedans un binaire clatd :

file clatd
clatd: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /system/bin/linker, stripped

Avec des choses de ce genre dans le binaire :

...
set_forwarding(%s) failed: %s
/dev/tun
/dev/net/tun
ip -6 route del table %d
ip -6 rule del table %d pref %d
...

Ce qu'on ne trouve pas dans la plupart des routeurs Huawei (il n'y a même pas le module "tun" pour créer les interfaces).

Même dans l'hypothèse où cela serait possible il faudrait pouvoir modifier le firmware et/ou obtenir un accès root.
C'était parfois faisable sur les anciens firmwares, ça ne l'est plus maintenant.

La seule solution c'est d'implémenter la couche CLAT sur un routeur intermédiaire (genre un NEXX WT3020F alimenté en USB par le routeur) mais c'est forcément plus contraignant et pas sûr qu'on puisse traiter la partie wifi.

Sinon est-ce que certains membres ont pu tester la manip pour avoir de l'IPv6 only ?
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: Cryptage le 17 décembre 2019 à 22:22:52
Je commence doucement à regarder pour utiliser l'IPv6 Bouygues sur l'EdgeRouter derrière le E5186 (et tenter d'avoir du 464XLAT).
J'obtiens bien l'adresse IPv6 sur le routeur 4G et les adresses sont bien délivrées (radvd du E5186) sur l'EdgeRouter (ping OK).

C'est là que ça se complique, il me manque des billes en IPv6 pour réussir à avancer.
Comme Bouygues ne fournit - sauf erreur de ma part - qu'un /64 (jamais le même en plus) je ne peux pas théoriquement pas utiliser ce subnet derrière car j'ai plusieurs VLANs à gérer.

Est-ce qu'un pro IPv6 pourrait me guider sur les méthodes possibles ?
Je pensais faire comme en IPv4 avec un subnet privé sur les VLANs et du routage / NAT mais cette solution paraît pas franchement idéale sur le papier...
Y-a-t'il d'autres possibilités ? Genre mettre un CIDR plus grand que 64 ? Qu'est-ce que cela impliquerait ?

Si on avait eu un /56 ou /60 est-ce que ça aurait été la bonne méthode d'avoir un subnet "publique" sur chaque VLAN ?

Ça paraît tellement plus simple en IPv4... J'espère que ce n'est qu'une question de connaissance de l'IPv6 qui me fait défaut.  :-\
--> je suis en train de suivre le MOOC IPv6.
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: vivien le 18 décembre 2019 à 07:00:29
Je ne comprends pas pourquoi le fait que le préfixe /64 change te pose problème (les flux entrants qui ne sont pas envoyés suite à une demande du client sont de toute façon filtrés par Bouygues, il n'est donc pas possible de faire de l'hébergement)

En IPv6 il est possible de récupérer le préfixe, via les annonces Router Advertisement, et de mettre en dur la partie "interface" de l'IPv6, les 64bits de droite.
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: Cryptage le 18 décembre 2019 à 07:35:42
Je suis d'accord mais si je fais ça ça veut dire que mes clients wifi et mes clients lan par exemple vont être dans le même subnet et ce n'est absolument pas ce que je veux.

La solution serait du firewalling partout mais ce n'est pas possible.

Sur ma partie fibre j'ai plusieurs subnets donc là c'est simple mais le mobile non. D'où le besoin probable de créer des réseaux en "fd" et router via l'edgerouter.
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: Hugues le 18 décembre 2019 à 11:08:02
Ce n'est pas possible en l'état, il faut soit un VPN qui t'apporte plus d'IP, soit faire du firewall L2 pour empêcher des clients de se parler entre eux, mais il n'y a pas d'autre moyen.
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: Cryptage le 29 décembre 2019 à 00:52:46
Bon j'ai approfondi le sujet et en fait c'est complètement faisable.

On peut utiliser (je l'ai testé) des adresses ULA et implémenter du NPTv6.
C'est certain que ce n'est pas forcément ce qui est préférable en IPv6 mais pour avoir creusé le sujet du multihoming (mon besoin initial) il n'y a aujourd'hui pas de réelles réponses avec IPv6.

De ce que j'ai lu :
- Utiliser du NPTv6 avec les contraintes qui vont avec.
- Mettre en place un mécanisme "failover" via radvd / dhcpv6 (je n'ai pas encore creusé cette partie, ça n'a pas l'air très documenté).

Mon problème reste la liaison 4G qui ne fournit qu'un /64 contrairement au FTTH Free qui en fournit plusieurs.
On comprend très bien qu'il n'y ait pas d'intérêt pour eux de fournir un /56 ou plusieurs /64 mais au final ça complexifie franchement la chose pour le dual WAN en IPv6 (plusieurs VLANs).

Dans les faits je n'utiliserai pas NPTv6 pour la simple et bonne raison que les ER-X ne font pas d'offload dans ce mode.
On scotche donc le CPU à 100% avec un débit de 300 Mbps... pas viable !

Je vais quand-même pouvoir poursuivre sur le mode IPv6 Bouygues avec les Huawei mais je commence à me dire que je n'aurai jamais de solution full IPv6 en dual WAN.
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: Cryptage le 30 décembre 2019 à 01:52:55
J'ai un peu avancé sur la partie 464XLAT mais il y a des choses qui m'échappent...

Avoir du NAT64/DNS64 ça ne pose aucun souci sur un client final en full IPv6.
Par contre, pas moyen d'avoir de 464XLAT sans installer clatd/tayga sur le client (ce qui en théorie ne semblerait pas illogique).

Pourtant quand on voit les documents Huawei, cela laisserait sous-entendre que si le routeur gère le CLAT/464XLAT il n'y a besoin de rien sur le client.

La question que je me pose : comment font-ils ?
Quelqu'un a une idée ? Ou un routeur Huawei qui supporte CLAT pour vérifier le comportement ?

Est-ce qu'ils attribuent aux clients de l'IPv4 et de l'IPv6 et utilisent le routeur pour la translation ?
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: vivien le 30 décembre 2019 à 07:44:42
Pour l'instant on n'a pas trouvé de routeur compatible, seulement de la doc PDF qui indique qu'il est compatible.

Le mode d’attribution doit probablement être comme un smartphone Android ou iOS qui est en IPv6 only en mode partage de connexion : le routeur attribue une IPv4 privée aux clients qui se connectent à lui.
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: Cryptage le 30 décembre 2019 à 11:16:34
Merci pour le retour 8) .

On a des gens qui ont des B715 et des B525 donc ça doit pouvoir se faire :)

On a au moins les firmwares "965" OpenMarket (sans tag opérateur) qui semblent l'avoir :

Ce firmware par exemple "B715-23c_UPDATE_11.197.01.00.965.BIN" contient clatd.
De même pour "B525s-23a_UPDATE_11.170.61.00.965.BIN"
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: Cryptage le 01 janvier 2020 à 12:46:50
Bon ça y est, je crois que j'ai compris comment c'est fichu.

J'ai réussi à mettre CLATD sur l'ER-X pour reproduire.
Sur les Huawei c'est un binaire et non un script Perl qui s'appuie sur Tayga mais il est fort probable que le fonctionnement soit le même.

Sur un client Full IPv6 :
- Les sites IPv6 fonctionnent nativement.
- Les sites IPv4 fonctionnent grâce au NAT64/DNS64.
- Les sites IPv4 via IP littérales ne fonctionnent pas.
   --> En installant CLATD sur le client c'est OK.

Sur un client IPv4 + IPv6 :
- Idem pour les 2 premiers.
- Les sites IPv4 via IP littérales fonctionnent à présent grâce à CLATD sur le routeur.
   --> Pas besoin de CLATD sur le client.
   --> Un traceroute V4 montre le passage par le routeur puis par "192.0.0.x" qui est sur l'interface CLAT du routeur.

Ca permet donc bien d'avoir du V4 et du V6 pleinement fonctionnels sans gestion du 464XLAT sur le client mais à la seule condition d'être en dual stack (ce qui est très cohérent, peu probable que le routeur ne délivre que du V6).

J'ai même poussé les tests un peu plus loin en utilisant NDPPD et des IP en "2001:db8" sur les clients.
En ajoutant la règle de NETMAP ça fonctionne parfaitement (l'ER-X ne gère pas plus l'offload dans ce mode mais c'est un autre débat ;D ).

A confirmer à l'occasion avec un routeur Huawei supportant CLAT.
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: juldum le 08 janvier 2020 à 12:45:13
j'ai juste repris et adapté le tuto de Cryptage, le crédit lui revient:


...

Pour ceux qui ont des Huawei qui n'ont que "IPv4" et "IPv4 + IPv6" est-ce que vous pouvez essayer ceci (fonctionne chez moi) ?

- Aller sur l'interface du routeur avec Firefox.
- Aller dans la gestion des profils et choisir "New Profile"
- Mettre le nom et l'APN, ne pas toucher le case "IPv4 + IPv6"
- Faire F12 pour éditer et faire la modification suivante :
...

- Valider.
- Vérifier dans "System | Device information" que vous avez à présent une IPv6 uniquement.



la modification à faire après l’étape F12 pour accéder à toutes les options du profil APN est de retirer tous les "style="display: none;""
(copies d’écrans en PJ)








Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: magicfab42 le 08 janvier 2020 à 18:48:46
ça a marché pour mon B525s-23 pour forcer en IPV4  ... magnifique je revis .... MERCI LES GARS VOUS GEREZ !!!
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: Cryptage le 08 janvier 2020 à 22:07:57
ça a marché pour mon B525s-23 pour forcer en IPV4  ... magnifique je revis .... MERCI LES GARS VOUS GEREZ !!!

Ravi d'avoir pu aider. 8)
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: Cryptage le 15 janvier 2020 à 22:16:54
Je commence à décortiquer le B525 et j'ai découvert des choses qui après coup me semblent évidentes (j'aurais du y penser avant).

Le "clatd" qui est sur le B525 n'est ni plus ni moins que celui qu'on trouve sur Android : logique puisque tous les Huawei récents tournent sous Android (d'ailleurs pour les curieux c'est une plateforme "19" (Android 4.4) avec un kernel 3.10 et semble-t-il 128 Mo de RAM).
 
Il est d'ailleurs indiqué quand on le lance "android-clat" qui prend pour paramètres "-i, uplink interface" et "-p plat prefix".

Je vérifierai qu'on obtient la même chose que ce que j'ai vu sur l'EdgeRouter mais on doit en tout cas obtenir un comportement assez similaire à ce qu'on a sur un smartphone Android.
Titre: Tuto pour forcer APN IPv6 only sur un routeur Huawei qui ne propose pas l'option
Posté par: Cryptage le 11 mai 2020 à 01:25:03
Après plusieurs semaines de recul, mon B525 dispose toujours de la dual stack avec l'APN "eBouygtel" sur la multi-sim.
Je ne sais pas ce qu'il le différencie des autres routeurs et notamment du E5186 que j'avais avant mais c'est tant mieux 8).

Ce routeur est plus robuste que le E5186 (il rebootait tous les 5-7j sans raison, je l'avais découvert grâce à l'agent Zabbix que j'avais compilé).
Là je suis à plus de 10j d'uptime et aucun reboot en vue.

Juste les débits qui semblent un poil moins bon mais sinon c'est un régal.
En plus je me suis bien amusé avec (même s'il m'a donné du fil à retordre) ! ;D

WireGuard directement sur le routeur :
(https://zupimages.net/up/20/20/23yb.png)

Zabbix fonctionnel :
(https://zupimages.net/up/20/20/kbux.png)

Parmis d'autres trucs sympathiques comme Chrony, Inadyn, Dropbear...
Pas toujours évident de cross-compiler pour Android mais très enrichissant :).