[Analyse] Lenteurs Twitch sur mobile (Wi-Fi) : Le problème du SLAAC/NDP IPv6 incoupable sur la Bbox

Nouvel inscrit

Auteur du topic

Messages : 3
Réponses : 0
Mon offre : //
Raccordement : Fibre
Bonjour à tous,

Si comme moi vous avez des temps de chargement dans le vide absolu (genre 30 bonnes secondes) avant de lancer un stream Twitch sur votre téléphone en Wi-Fi, alors que sur PC c'est instantané... j'ai enfin trouvé le coupable après avoir retourné toute ma config réseau (et checké mes logs dnsmasq).

J'ai fini par sniffer ce que le téléphone faisait, et le responsable est tout trouvé : c'est la Bbox + le réseau IPv6 de Bouygues.

Le problème du firmware Bbox :
Même si on désactive proprement l'IPv6 dans l'interface (coupure du DHCPv6 + blocage complet via le pare-feu IPv6), la Bbox continue d'autoriser le Router Advertisement (RA) de leur stack IPv6 en multicast. Logique, puisque le RA est diffusé en ICMPv6 indépendamment du DHCPv6. Ce qui veut dire que tous nos appareils reçoivent systématiquement un préfixe SLAAC + le DNS IPv6 de la Bbox sur le réseau local.

Le comportement d'Android :
Android a une règle qui priorise l'IPv6 de façon très agressive. L'IPv6 SLAAC et le DNS de la box vont donc être utilisés en premier. On peut essayer de distribuer des SLAAC avec un autre service (comme un Pi-hole), ce sera toujours la Bbox qui gagne. Je pense que c'est parce que la box envoie son RA dès la connexion Wi-Fi, et qu'elle est toujours la première à dégainer puisqu'elle est littéralement le premier appareil physique connecté.

Le délai de 30 secondes :
Il y a de toute évidence un problème au niveau du backbone entre Twitch (AWS) et le réseau IPv6 Bouygues (ou peut-être que Twitch gère mal l'IPv6 de son côté, c'est flou). Dans tous les cas, la connexion IPv6 drop systématiquement.
Résultat : le téléphone tente de se connecter en IPv6 (à cause du RA forcé de la box), la requête tombe dans un trou noir, et on patiente 30 bonnes secondes de timeout avant que Android ne passe enfin sur l'IPv4. Et là, ça marche instantanément.

Note avant qu'on me pose la question : oui, j'ai bien fait mes tests en débloquant totalement le pare-feu IPv6, le flux est quand même droppé côté réseau. (Je suspecte que c'est le flux UDP QUIC en IPv6 qui est droppé, enfin je ne suis pas sûr que ce soit du QUIC, bref ça marche pas.)

Puisqu'aucun bouton de cette box ne permet de couper ce spam ICMPv6, on en arrive à devoir bidouiller pour un usage basique :
  • Soit acheter un routeur Wi-Fi tiers, le brancher a la place de la box, et demander un ONT à Bouygues (qui est un service gratuit, heureusement).
  • Soit utiliser un VPN local (genre WireGuard toujours allumé sur le téléphone) pour forcer le routage DNS vers un résolveur propre (type Pi-hole) et ignorer la box.
Et mon réseau IPv4 dans tout ça?
J'ai désactivé le DHCPv4 de bouygues car j'ai installé un Pi-hole. Celui-ci fonctionne parfaitement en IPv4, comme en IPv6. Le problème étant que l'IPv6 de mon Pi-Hole n'est jamais utilisé puisque c'est la config du RA qui prends la priorité.

Est-ce que d'autres ont remarqué ce problème de blackhole IPv6 avec la Bbox sur mobile, ou est-ce que les développeurs Bouygues prévoient d'ajouter un bouton pour couper le ICMPv6, plus précisément le NDP sur le LAN ? J'ai rejoint Bouygues télécom le mois dernier, et il me donne déjà envie de quitter l'opérateur à cause de nombreux problèmes. Je ferai un second post pour étayer mon deuxième problème.
Messages : 10303
Réponses : 106
Mon offre : Bbox ULTYM
Raccordement : Fibre
Localisation : 93200
Bonjour,

Beau travail de diagnostic, et ça recoupe bien ce qu'on avait déjà creusé sur le forum : même DHCPv6 coupé, la Bbox continue d'émettre des RA en ICMPv6, ce qui permet le SLAAC indépendamment de tout DHCPv6, un comportement standard, pas propre à Bouygues, puisque le RA reste nécessaire à la découverte de passerelle.

Une nuance sur le délai de 30 secondes : c'est trop long pour un mécanisme Happy Eyeballs normal (qui bascule IPv4/IPv6 en 250-300 ms sur la plupart des apps récentes). Ça pourrait pointer autant vers un défaut de l'app Twitch Android (mauvaise gestion du fallback) que vers un vrai souci réseau Bouygues/AWS (qui est supervisé en permanence).

Cdt
Nouvel inscrit

Auteur du topic

Messages : 3
Réponses : 0
Mon offre : //
Raccordement : Fibre
Merci pour la réponse rapide.


Concernant Twitch, je confirme que celui-ci ne fonctionne pas en l'IPv6. Si je retire le DHCPv4 ou que je del mon ipv4 sur mon pc, le stream Twitch se coupe instantanément. Le problème maintenant c'est : Pourquoi j'ai 30sec de timeout sur l'application avant de passer en IPv4?

J'ai donc essayé avec une application tierce open-source, j'ai le même problème de 30secondes de timeout avant de passer en IPv4. J'ai essayé avec un autre vieux smartphone, le problème c'est que le vieux smartphone priorise l'IPv4, et donc ça marche tout de suite.

Par contre, sur le côté "comportement standard" de la Bbox... J'entends bien que le RA est indispensable au fonctionnement de la norme IPv6 pour annoncer la passerelle. En lisant les autres posts (qui se plaignent majoritairement de ça) je traduis surtout ce "standard" par : "C'est comme ça et on ne laissera jamais l'utilisateur le configurer/désactiver".

Respecter la norme est une chose, interdire à l'utilisateur de couper l'IPv6 sur son propre réseau local en est une autre. Ne pas proposer de vrai mode Bridge ou d'option pour éteindre la diffusion de ces trames (comme le permet la Freebox), c'est le verrouillage habituel des box opérateurs. Sauf que celui-là, il est particulièrement bloquant. Et toute l'interface de la box donne une illusion de configurabilité, mais la réalité est tout autre.

Bref, le message est clair : ça ne bougera pas côté Bouygues. Je vais donc garder un tunnel VPN allumé H24 pour l'utilisation normal de mon téléphone... Pratique.
Répondre