J'ai donc une Freebox v5 (boîtier ADSL et boîtier HD) et suis dégroupé. Est rattaché à mon boîtier ADSL, un routeur Asus WL-500g : celui-ci est en mode "Home gateway" afin de pouvoir faite du NAT car c'est lui qui détient mon adresse publique, sur une interface rattaché à la Freebox, et une adresse privé sur l'autre. De plus, il contient une route statique vers le sous-réseau dans lequel se trouve mon ordinateur. Sur ce même routeur est connecté un second routeur, un Linksys WRVS4400N : il est configuré avec deux adresses privées ; l'interface WAN est connectée sur le WL-500g. Mon boîtier ADSL fait seulement office de modem (il n'est pas en mode routeur). Enfin mon système d'exploitation n'est autre que la distribution GNU/Linux Ubuntu 8.10 (Intreprid).

2009.02.06 - Multiposte Free - Architecture logique

J'ai décidé d'installer le paquet FreetuxTV en ajoutant le dépôt adéquat :

 $ sudo wget http://packages.freetuxtv.org/ubuntu/intrepid.list -O /etc/apt/sources.list.d/freetuxtv.list
 $ wget -q http://packages.freetuxtv.org/freetux.gpg -O- | sudo apt-key add -
 $ sudo apt-get update
 $ sudo apt-get install freetuxtv

Il est désormais possible de lancer FreetuxTV via le menu Applications > Sound & Video > FreetuxTV Television Channels Player. Le groupe FreeboxTV existe déjà mais il faut le "rafraichir" afin d'obtenir la liste de chaines disponibles. Un simple clic droit sur le groupe puis je sélectionne "Refresh from the playlist" : toutes les chaines sont à présent listées. Je lance alors BFM TV en double cliquant dessus et là... Et bien ça ne marche pas : rien ne s'affiche.

Je vérifie la configuration de mes routeurs, scrute les fichiers de logs, effectue un tcpdump ainsi qu'un netstat sur mon ordinateur... Mais c'est bien sûr ! Certains flux ne passent pas :)

Voici les flux nécessaires au bon fonctionnement du "Multiposte" :

 Flux sortant vers 212.27.38.253 sur port TCP/554
 Flux entrant depuis 212.27.38.253 sur les ports UDP/1024-65535

Pour le flux sortant, pas de soucis : on "ouvre" le tout sur les deux routeurs (si ces derniers font du filtrage en sortie). Concernant le flux entrant, je me suis appuyé sur le service Virtual Server proposé par le WL-500g : il s'agit ni plus ni moins que de translater l'adresse IP de destination (notre adresse publique) vers l'adresse IP de mon ordinateur pour tout flux entrant UDP appartenant à la plage de ports 1024 à 65535, en provenance de l'adresse IP 212.27.38.253 ; et bien sûr d'autoriser ces flux.

Une fois la configuration effectué, je tente de visionner BFM TV via FreetuxTV : cela ne fonctionne toujours pas.... Mais pourquoi ? J'effectue de nouveau quelques vérifications et je m'aperçois qu'une partie seulement des paquets UDP arrive jusqu'à mon ordinateur : le reste se retrouve bloquer au niveau du routeur WL-500g. Deny of Service (DoS) ? En effet, un nombre constant et important de paquets UDP transite entre freeplayer.freebox.f (212.27.38.253) et mon ordinateur : mes routeurs ne chercheraient-ils pas à limiter ces flux ? Je me rends donc sur mes deux routeurs puis désactive l'option DoS. Je tente de nouveau regarder BFM TV via FreetuxTV : cela fonctionne !

Je tiens cependant à revenir sur quelques points :

  • Le fait de désactiver l'option DoS n'est pas des plus rassurante... Cependant, via les interfaces Web de configuration de mes routeurs, il n'est pas possible d'ajouter des contraintes de type adresse et/ou port pour l'activation ou la désactivation de cette option. SI vous avez la chance d'avoir un accès SSH/Telnet sur votre équipement et que ce dernier utilise Netfilter, je vous conseille de mettre en place vos propres règles de filtrage en matière de DoS.
  • Le fait de rediriger tous les flux UDP appartenant à la plage de ports 1024 à 65535 vers une machine n'est pas vraiment appréciable : problème de sécurité d'une part mais aussi de configuration dans un environnement où plusieurs ordinateurs utilisent l'option "Multiposte".