UniFi et Proximus Pickx : je t’aime, moi non plus…
Parce que, parfois, il faut un peu forcer la main entre deux appareils pour qu’ils veuillent bien communiquer…
Contexte
Cela doit faire maintenant une bonne dizaine d’années que la thématique des réseaux a rejoint mes marottes au quotidien. Partant d’un « simple » souci de connexion DSL chez mes parents et de la découverte des FRITZ!Box à l’époque, aujourd’hui, jouant avec du matériel Ubiquiti et de l’OpenWRT derrière un raccordement fibre optique.
Ces dernières années, je me suis donc pris dans le jeu du beau monde de la gamme UniFi d’Ubiquiti. Une envie poussée par les nombreux vidéos et posts d’entre autres LoKan, Crosstalk Solutions ou encore IMNC.
Parmi les joujoux qui sont passés entre mes mains, il y a l’UDM en DSL tout d’abord, puis au passage à la fibre les UDM-SE et UDM-Pro. Après un très court test de l’UniFi Express, ma console de choix est la (récemment sortie) UCG-Ultra. Toutefois, il y a un point qui me gratte depuis mes premiers farfouillages tant avec ces appareils qu’avec les FRITZ!Box : il était impossible de recevoir l’ensemble des chaines télé de mon bouquet Proximus Pickx.

Avec ces deux gammes d’appareils, le constat était le même : toutes les chaines HD fonctionnent, mais certaines en définition standard ne passent pas. Or, dans les quelques chaines toujours en SD seulement, il y en a bien une seule qui m’intéresse : l’évidente MTV 80’s. Tristesse de ne pas pouvoir en profiter dans la meilleure qualité possible.
- Une alternative est de passer par l’app tvOS, mais elle est loin d’être exempte de bugs et les chaines en SD y sont limitées à 25 images/seconde en balayage progressif, ce qui rend tout mouvement saccadé ;
- Même chose pour Google Cast qui est bloqué, qui plus est, en 30 images/seconde sur le Cast intégré à mon téléviseur Sony ;
- Enfin, il est possible de contourner ce souci en lançant le replay sur les chaines qui bloquent sur le V7(c), mais on se retrouve dans la même situation qu’avec l’app sur l’Apple TV.
Pourquoi ?
Après moult recherches, qui se sont limitées à suivre le tableau IGMP Snooping d’un switch administrable TP-Link lors d’un zap des chaines sur mon décodeur, il se trouve que Proximus utilise deux plages d’adresses IP pour ses flux multicast.
- Toutes les chaines HD et quelques chaines SD se retrouvent dans le range 239.192.0.0/16 ;
- La majorité des chaines en SD (et vraisemblablement la plage historique utilisée depuis l’ère Belgacom TV) se trouve dans le range 239.255.0.0/16.
C’est cette deuxième plage (239.255.0.0/16) qui pose problème. Les flux multicast dans cette plage ne sont pas routés comme ils le devraient par le routeur. Conséquence sur les chaines concernées : des coupures dans le son, des gels d’image, une pixellisation continue. Les programmes sur ces canaux sont donc impossibles à suivre.
Ayant abandonné tout espoir de faire fonctionner comme il faut ces brols et testant le dernier routeur en date de Proximus, l’Internet Box+, j’avais mis ce souci de côté.

Le déclic
Quelle ne fut pas ma surprise de recevoir un nouveau joujou dans ma collection de routeurs en février dernier pour mon anniversaire : un AmpliFi Alien ! Le routeur fait partie de l’autre grande gamme grand public d’Ubiquiti. Ces appareils offrent des réglages moins poussés, mais sont tout aussi amusants en matière de fonctionnalités sympathiques.

Quelle ne fut pas ma seconde surprise en l’installant de me rendre compte qu’avec cet Alien, comme une intervention de l’au-delà : toutes les chaines de mon décodeur fonctionnent !
Fichtre ! Il est donc tout à fait possible d’utiliser un routeur tiers, le dernier décodeur de Proximus, et que les deux fonctionnent à 100 % ! Mais ça change tout !
Deuxième déclic en craquant sur un autre appareil qui me faisait de l’œil depuis un bon moment : le GL.iNet Flint 2. Un routeur fonctionnant sur OpenWRT qui permet aussi de longues heures d’amusement… notamment l’installation et la configuration de igmpproxy.
igmpproxy est un composant essentiel permettant aux routeurs de gérer les flux multicast qui permettent aux décodeurs de nombre d’opérateurs à travers le monde de fonctionner.
Après pas mal d’heures d’arrachage de cheveux, le paquet est correctement configuré sur le Flint 2 et là aussi, surprise : toutes les chaines de mon décodeur fonctionnent ! C’est à ce moment que je me dis que, si ça fonctionne sur l’Alien et sur le Flint 2, ça doit aussi fonctionner sur les routeurs UniFi.
Au fil de mes recherches Google, je me rends compte que je suis loin d’être le seul à avoir pas mal de difficultés à faire fonctionner comme il faut son décodeur TV. Que ce soit du côté de KPN (Pays-Bas) ou Deutsche Telekom, cela coince assez souvent sur le point de la gestion du multicast.
La solution (alléluia !)
Comme le chantait Sheila : « Impossible n’est pas français ! » Quel est le souci alors ?
Il se trouve qu’Ubiquiti a intégré récemment cette fonctionnalité « IGMP Proxy » dans son système d’exploitation UniFi OS. Mais pour ce faire, ils ont décidé de recourir aux services d’un paquet « concurrent » : improxy. Et visiblement, ce paquet ne semble pas trop bien gérer l’offre TV de Proximus.
C’est en recherchant ce que les abonnés de KPN et Telekom.de ont réussi à faire avec leur UDM que la solution a été portée à ma connaissance ! Notre sauveur s’appelle udm-iptv. Ce paquet de Fabian Mastenbroek, couplé à igmpproxy, va permettre de résoudre notre souci : ne pas avoir accès à l’ensemble des chaines sur le décodeur Proximus Pickx.
C’est parti !
Attention
L’installation de cette configuration sera présentée avec une certaine configuration :
- Ce qui suit a été réalisé sur une Cloud Gateway Ultra (UCG-Ultra).
Cela aura comme incidence que l’interface WAN (eth4 sur l’UCG-Ultra, l’UDM-Base et l’UDR) devra être adaptée si vous utilisez un UniFi Express ou une Gateway Lite (eth1) ou une UDM-Pro/SE (eth8 pour le WAN RJ45 et eth9 pour le WAN SFP+) - Je suis un client fibre optique de Proximus, donc j’ai la possibilité de connecter directement le routeur UniFi sur l’ONT (le terminal optique) de l’opérateur.
Je n’ai pas pu voir si cette méthode fonctionnait dans une configuration DSL avec le routeur derrière l’Internet Box placée en mode bridge. - Ma connexion est en mode single VLAN. J’utilise le VLAN 20 en DHCP pour me connecter sur l’infrastructure de Proximus tant au niveau internet que télévision.
Si vous utilisez toujours une b-box 3, il y a de grandes chances pour que vous soyez toujours dans l’ancienne configuration : connexion en PPPoE avec des identifiants fournis par Proximus, et trois VLAN (10 pour internet, 20 pour la VoIP et 30 pour la télévision).
Vu que cette configuration est encore celle utilisée aujourd’hui par KPN, ce système devrait fonctionner, mais je n’ai pas pu le tester. Quelques paramètres seront donc à adapter à ce niveau si vous vous trouvez dans cette configuration. - Même chose concernant les décodeurs : cela a été réalisé avec un V7c. Cela devrait fonctionner sans souci avec un V7. Par contre, cette astuce, en single VLAN ne fonctionne pas avec les anciens V5c. La situation est identique aux FRITZ!Box.
Marche à suivre
UniFi OS (1e partie)
Trois points sont à réaliser du côté de l’interface graphique d’UniFi OS avant de rentrer dans le cœur du sujet :
- Vérifier que l’IGMP Snooping est bien actif sur le réseau sur lequel se trouvent vos décodeurs Pickx ;
- Vérifier que l’IGMP Proxy est bien actif également. Ces deux réglages se trouvent dans les réglages Networks d’UniFi Network ;
- Activer le SSH si ce n’est déjà fait. Ce réglage se trouve dans les réglages avancés de la console.



Il est temps de passer aux choses sérieuses !
SSH, udm-iptv et igmpproxy
- Connectez-vous en root en SSH à votre console UniFi ;
- Premier élément à aller chercher, c’est udm-iptv. Cela se passe avec un petit coup de curl :
sh -c “$(curl https://raw.githubusercontent.com/fabianishere/udm-iptv/master/install.sh -sSf)”
Si la commande ci-dessus ne passe pas dans le terminal au moment de la coller, remplacez les guillemets, probablement arrondis par Medium, par des guillemets droits.
- Une fois le téléchargement terminé, un écran de configuration va apparaitre. Il n’existe pas de profil Proximus dans udm-iptv. Il faut donc choisir Custom en haut de la liste pour configurer soi-même la chose.
À savoir dans cette configuration :
- Il n’y a pas de VLAN à déclarer lorsqu’il vous le demande ;
- Choisissez bien le WAN qui correspond à la connexion internet qui correspond à Proximus (si vous avez une UDM-Pro/SE/UCG-Ultra qui permettent deux WAN) et le (V)LAN dans lequel se trouvent vos décodeurs ;
- Le range IPTV à déclarer pour que ça fonctionne : 195.238.8.0/24.
C’est précisément la prise en charge de cette plage complète unicast qui semble coincer dans UniFi OS de base. Deux sources unicast existent chez Proximus pour gérer chacune des plages commençant par 239 citées plus haut.
Update juillet 2024 : Proximus a communiqué sur les informations à configurer dans les routeurs tiers pour permettre de transmettre les flux multicast du service TV. On notera que deux ranges semblent prendre le relai du 195.238.8.0/24 : 172.28.40.0/21 et 172.28.48.0/21. Il est dès lors intéressant de déjà les intégrer à la configuration en prévision d’un possible prochain changel
Une fois toutes ces données remplies, normalement, vous devriez sortir de ces écrans de configuration. Mais ce n’est pas encore fini.
- C’est l’heure d’aller chercher igmpproxy grâce à apt :
apt install igmpproxy - Une fois igmpproxy installé, il va falloir aller modifier quelques paramètres dans le fichier de configuration d’udm-iptv. Il se situe à /etc/udm-iptv.conf. Ici, nous l’éditons avec vi.

Ici, plusieurs points d’attention :
- IPTV_WAN_INTERFACE doit comprendre le suffixe .20, car cela correspond au VLAN 20 utilisé pour la connexion à l’infrastructure de Proximus. Ici sur une UCG-Ultra, le WAN correspondant à l’interface eth4, c’est donc l’interface eth4.20 qu’il faut choisir. Remontez au premier point du paragraphe Attention pour retrouver l’interface WAN de votre console ;
- IPTV_WAN_RANGES : 172.28.40.0/21 172.28.48.0/21 195.238.8.0/24 ;
- IPTV_IGMPPROXY_PROGRAM doit passer de improxy, par défaut, à igmpproxy.
Si vous n’êtes pas familier avec l’ami vi :
- Pressez la touche I pour passer en mode insertion et donc éditer le fichier ;
- Une fois l’édition terminée, pressez esc ;
- Pour sauver le fichier, tapez : wq.
Par sécurité, redémarrez udm-iptv en tapant service udm-iptv restart.
La partie la plus compliquée est terminée, c’est bientôt fini ! Il ne manque plus que quelques touches finales dans UniFi OS.
UniFi OS (2e partie)
On revient dans l’interface graphique d’UniFi Network. Il faut ajouter quelques règles dans le pare-feu pour parfaire le tout. Sans ces règles, le remplacement d’IGMP Proxy ne sera pas effectif.
- Il faut tout d’abord créer deux groupes d’adresses IP et un groupe comprenant un port.
Rendez-vous dans les réglages d’UniFi Network, rubrique Profiles, section IP Groups (dans les anciennes versions) / Network Objects (dans les plus récentes).
Ces trois profils sont : - IPTV-Source reprenant les plages 172.28.40.0/21 172.28.48.0/21 et 195.238.8.0/24 ;
- IPTV-Port reprenant le port 10517 ;
- IPTV-Destination reprenant les plages : 224.0.0.0/4 239.192.0.0/16 et 239.255.0.0/16.



- Ensuite, il faut créer les quatre règles dans le pare-feu de la console.
Rendez-vous dans la rubrique Security, section Traffic & Firewall Rules.
Ces trois règles sont : - IGMP to LAN : dans Internet In, accepter tout le trafic UDP de n’importe quelle source vers le groupe d’adresses IP IPTV-Destination ;
- IPTV : dans Internet In, accepter tout le trafic de tout protocole depuis le groupe IPTV-Source vers le groupe d’adresses IP IPTV-Destination avec le groupe de ports IPTV-Port ;
- IGMP Proxy : dans Internet Local, accepter tout le trafic de tout protocole de n’importe quelle source vers le groupe d’adresses IP IPTV-Destination ;
- IPTV : dans Internet Local, accepter tout le trafic UDP depuis le groupe IPTV-Source vers le groupe d’adresses IP IPTV-Destination avec le groupe de ports IPTV-Port.




Et plop !
Normalement, une fois tout ceci mis en place, l’ensemble des chaines devrait fonctionner sur un décodeur V7(c) de Proximus !
Si vous constatez que le zapping entre les chaines est lent, n’hésitez pas à redémarrer votre décodeur. En général, cela suffit pour récupérer une vitesse normale de changement entre les chaines.
Trouver les bons réglages a pris du temps, mais la mise en place de cette configuration, une fois les données correctes connues, reste rapide. D’autant plus qu’elle risque de sauter en cas de mise à jour de la console UniFi.
En conclusion, on peut se réjouir que cette solution existe ; il est regrettable que la solution native d’UniFi ne fonctionne qu’à moitié ! Mais certains diront que c’est le jeu de vouloir remplacer le matériel fourni par l’opérateur, mais limité en fonctionnalités.
Certes, mais rappelons qu’à la fin de cette année, les consommateurs belges auront la possibilité de choisir leur propre matériel pour la connexion internet sur décision de l’IBPT. Il sera intéressant de voir si, à ce moment-là, les opérateurs comme Proximus fourniront les détails qui permettront aux utilisateurs de profiter de l’ensemble de leurs services avec leur propre matériel, à l’instar de ce que KPN réalise chez nos voisins du nord.
Mais vu qu’il s’agit visiblement ici d’un souci lié aux choix logiciels d’Ubiquiti, ce souci risque de durer un certain temps et seul ce « bricolage » permettra pendant un bon moment à mon avis de combiner TV Box Pickx et routeur UniFi.
Par ailleurs, merci aussi au guide pour Deutsche Telekom de Tim Ganther qui a également bien aidé ainsi qu’au long fil consacré à UniFi et KPN sur le forum du site néerlandophone Tweakers. La réunion de ces ressources a permis de faire fonctionner ce système et dès lors la création de cet article. Merci à eux !
Bonus : que faire en cas de mise à jour d’UniFi OS ?
Pas grand chose ! Comme expliqué succinctement sur X, iIl suffit de :
- aller rechercher les paquets udm-iptv et igmpproxy ;
- rééditer le fichier de configuration d’udm-iptv pour qu’il utilise igmpproxy plutôt qu’improxy ;
- redémarrer le processus d’udm-iptv.
Et le tour est joué ! Avec un peu de chance, udm-iptv aura retenu le plus gros de la configuration réalisée en amont. Tout ce qui a été fait dans UniFi Network ne bouge pas… Tout est rétabli en moins de cinq minutes.