Utilisation du Multiposte de Free avec Video Lan Client (VLC) et un routeur WRT54G/GS/GL


1. Position du problème
2. Un problème de routage
2.1. Identifier le problème
2.2. Régler le problème
2.3. Firewall sur l'ordi (local)
2.3.1. Réactiver le firewall ?
2.3.2. Régler le firewall
2.3.3. Imposer le port d'entrée à VLC
3. D'où vient le problème ?
4. Les solutions improvisées
4.1. Ouvrir les ports sortants
4.2. Ouvrir les ports entrants
A. Liens complémentaires
B. WRT54G, GL, GS ?

Résumé

L'utilisation du multiposte derrière un routeur WRT54G (GS,GL, voir annexe) est "transparente", même avec une version standard de VLC. Elle ne demande aucune configuration ni aucune action spécifique de l'utilisateur, même pour une utilisation simultanée, sur plusieurs ordis, en Ethernet comme en WiFi. Autrement dit, ça marche tout seul ! Seul pré-requis, mettre à jour le firmware (microcode) du routeur.

1. Position du problème

En informatique on peut rarement dire qu'il existe la bonne solution, celle qui supplanterait toutes les autres. Mais il existe quelques règles d'informatique élémentaire qui s'appliquent au cas que l'on souhaite traiter :

  • utiliser un routeur-firewall indépendant du modem (box) adsl et de tout poste de travail,

  • confier une tâche aussi importante que le routage et le firewall à un logiciel libre,

  • pour les applications, utiliser des versions aussi standard que possible de logiciels libres.

Une utilisatrice qui aurait opté pour un routeur WRT54G (ou GL ou GS) et utilisant des versions standard de VLC risque néanmoins de rencontrer des problèmes si elle souhaite exploiter, sur son réseau local, la fonctionnalité multiposte proposée par Free. Le web et les fora regorgent de conseils plus ou moins alambiquées permettant de résoudre ces problèmes de manière incomplète. L'objectif de ce document est de permettre une exploitation complète de cette fonctionnalité sans perturber d'autres fonctionnalités du réseau informatique et sans compromettre sa sécurité.

2. Un problème de routage

Le routage étant assuré par le WRT54G c'est à son niveau qu'il faut régler les problèmes de routage.

2.1. Identifier le problème

Lorsqu'on met en place un nouveau service, il est toujours difficile d'identifier la source d'un dysfonctionnement. Le service est-il activé ? Est-ce que j'utilise la bonne version du logiciel client ? Celui-ci est-il bien installé et bien configuré ? Et si tout le reste est correct, comment savoir s'il s'agit d'un problème de routage avant de l'avoir résolu ?

La première chose à faire est de s'assurer que le service multiposte est bien activé sur sa Freebox[1]. La seule méthode infaillible que je connaisse est de brancher un téléviseur[2] sur la Freebox et de vérifier que Multiposte apparaît dans la liste des "univers" disponibles[3].

Il est primordial de noter que cette activation est indépendante de toute installation de logiciel sur l'ordi comme de toute configuration du routeur WRT54G. En clair, il est inutile de tenter quoi que ce soit avant que la fonctionnalité n'ait été activée.

Une fois le multiposte activé, il est sensé fonctionner. On s'assurera que l'on a bien installé une version standard de VLC d'un numéro au moins égal à 0.84 (cette installation de demande aucune configuration particulière). Après avoir désactivé l'éventuel firewall du poste de travail sur lequel on est, Il suffit alors de lancer VLC comme indiqué dans la documentation de Free. Si vous n'avez jamais tenté d'adapter les réglages de votre routeur pour les adapter à VLC[4], deux situations peuvent se produire :

  • tout fonctionne, une fenêtre s'ouvre et la première chaîne de la liste des canaux proposés par Free s'y affiche (A2 au moment où j'écris ce doc.),

  • rien ne fonctionne.

Dans le second cas, c'est bien le routage qui est défaillant. Si l'on y tient absolument, une manière de s'en convaincre est de brancher l'ordi directement à Freebox, sans passer par le routeur[5]. Je déconseille cette technique car elle expose l'ordi à toutes les attaques pouvant venir d'internet. Même sur un ordi Linux, ce n'est pas conseillé. C'est suicidaire si on utilise un ordi Window$. Une méthode tout aussi dangereuse mais ne demandant aucun changement de câblage consiste à déclarer l'ordi en DMZ[6], à travers l'interface web de configuration du WRT54G.

2.2. Régler le problème

Identifier le problème c'est bien et pas toujours facile. Le régler c'est encore mieux.

Si votre WRT54G ne sait pas bien router les échanges entre VLC et la Freebox[7] c'est parce que son système, le firmware, est inadapté. La bonne solution consiste donc à changer son firmware. Cela peut vous sembler monstrueusement complexe et même périlleux, c'est pourtant la seule solution définitive, souple et fiable. Une fois le nouveau firmware installé, vous n'aurez rien à modifier pour permettre à VLC de fonctionner. Il fonctionnera, un point c'est tout, depuis n'importe quel ordi de votre réseau local, par ethernet ou par WiFi, en autant de copies simultanées que pourra en supporter votre réseau et votre accès ADSL.

Je recommande d'installer (flasher) le firmware DD-WRT[8]. Comme pour tout logiciel, il est conseillé d'installer la dernière version opérationnelle. J'ai personnellement installé la version V23 SP2. Chaque version existe en plusieurs préconfigurations. J'ai opté pour la configuration standard_nokaid et vous invite à en faire autant, sauf si vous savez exactement ce que vous faites. Enfin, chaque modèle de routeur (G,GS, GL...) utilise une sous-version spécifique du firmware, comme indiqué dans le tableau de correspondance. Dans mon cas, possédant un WRT54G V1, c'est la sous-version generic. Le fichier que j'ai téléchargé s'appelle donc : dd-wrt.v23_nokaid_generic.bin.

Le flashage proprement dit ne pose pas de problème particulier. Il faut suivre pas à pas les indications fournies dans le tutoriel en ligne et en français qui explique la marche à suivre. C'est un opération que je déconseille de faire à un moment où l'on n'est pas libre de son temps. Flasher un firmware est une opération assez bête mais elle demande d'être un minimum méticuleuse.

2.3. Firewall sur l'ordi (local)

2.3.1. Réactiver le firewall ?

Si l'ordi sur lequel vous souhaitez utiliser VLC était protégé par un logiciel de firewall, vous l'avez désactivé, précédemment, pour faire les tests. Devez-vous le réactiver ? Tout dépend de la configuration de votre réseau local.

Si vous n'avez qu'un seul ordi, le firewall de votre WRT54G le protège efficacement contre les attaques provenant d'Internet. Mais il reste vulnérable à des attaques provenant du WiFi. Si vous n'utilisez jamais le WiFi, le firewall sur votre ordi est inutile. Il vous causera plus de problèmes qu'autre chose. Si, en revanche, vous utilisez le WiFi, la bonne réponse consiste à protéger l'accès au WiFi et non à vous protéger de personnes que vous auriez laissé involontairement accéder à votre réseau local[9]. La protection du WiFi se paramètre via l'interface Web du routeur : Wireless->Wireless Security. N'utilisez jamais WEP qui est connu pour être fragile. Préférez lui toujours WPA ou mieux WPA2, en mode preshared key (le plus simple pour un usage courant). Vous devez alors donner un mot de passe. À ce stade, choisissez une phrase entière et non un simple mot, même long. C'est capital ! Si, pour une raison une ou autre, vous êtes obligée d'utiliser la protection par WEP, considérez que votre réseau n'est pas sûr et réactivez le firewall de l'ordi.

Si vous avez plusieurs ordis en réseau, gardez bien en tête que le firewall du WRT54G ne les protège que des attaques venant d'Internet et non de celles qu'ils pourraient se faire entre eux. Vous devez donc considérer que la sécurité de votre réseau (c'est-à-dire de tous les ordis connectés) est égale à celle de l'ordi le moins protégé sur ce réseau. Si, sur un seul des ordis, vous utilisez des logiciels ou des systèmes peu fiables (Window$, par exemple), c'est la sécurité du réseau qui est compromise. Dans ce cas, réactivez le firewall sur chaque ordi, y compris ceux utilisant des logiciels et systèmes fiables (Linux ou FreeBSD, par exemple).

2.3.2. Régler le firewall

Qu'il soit installé sur le WRT54G ou sur votre ordi, le firewall reste un logiciel, plus ou moins "intelligent". Si vous réactivez celui de l'ordi, il se peut qu'il bloque une partie des communications entre VLC et la Freebox. Vous serez alors, ramenée au point de départ puisque vous allez devoir expliquer à ce firewall ce qu'il doit laisser passer. Vérifiez s'il n'existe pas une option simple (case à cocher) permettant d'activer le traitement des flux vidéo[10]. Si tel n'est pas le cas, la bonne méthode consiste à remplacer[11] votre logiciel de firewall par un logiciel sachant gérer automatiquement les flux vidéo. Certains logiciels de firewall (dont celui de Window$ XP) vous permettront d'autoriser localement les ports ouverts par un application (par exemple, vlc.exe). C'est un moindre mal tant que le firewall n'est pas abusé de l'intérieur par un programme feignant d'être un programme autorisé...

En l'absence d'un tel logiciel, interrogez-vous de nouveau sur le pertinence de l'utilisation d'un firewall local, sur quels changements dans l'organisation du réseau local vous permettraient de vous en passer. En dernier ressort, vous allez devoir appliquer, sur ce firewall local, les recettes de cuisine présentées plus loin.

2.3.3. Imposer le port d'entrée à VLC

Depuis la version 0.86, VLC permet à l'utilisateur de choisir le port sur lequel la freebox doit lui envoyer le flux vidéo. Lorsqu'aucune autre solution ne marche, c'est la moins mauvaise. Sur un réseau elle fige des réglages qui ne devraient pas l'être, complexifiant inutilement l'administration. Sur une installation monoposte, elle se défend...

Pour ce faire, il suffit d'aller l'onglet paramètres->préférences->Input/Codecs->Demuxers->RTP/RTSP. Là cocher la case Options avancées. On voit s'afficher un champ Client port, avec la valeur -1, ce qui signfie que VLC choisit aléatoirement le port d'entrée. Imposer la valeur de votre choix, par exemple 31336. Enregistrer ce réglage.

Avertissement

Je recommande vérifier que le réglage a bien été pris en compte. Dans ma version de VLC, la valeur tapée au clavier n'était pas conservée. Il a fallu que je fasse défiler la valeur, à l'aide des fléches ad-hoc, pour que la valeur affichée soit effectivement enregistrée.

Une fois VLC correctement paramétré, il faut signaler au firewall de l'ordi qu'il doit ouvrir (en entrée) le port UDP 31336 (ou celui que vous aurez choisi précédemment).

3. D'où vient le problème ?

Pour comprendre l'origine du problème il faut se pencher un peu sur le fonctionnement des échanges entre VLC et la Freebox. Lorsque le service multiposte est activé, cela signifie vous pouvez accéder à un serveur de flux vidéos. VLC est le logiciel (client) qui va vous permettre d'interroger ce serveur. On pourrait penser que ce n'est pas plus compliqué que d'accéder à un site web avec son navigateur (Nautilus, Konqueror ou Firefox). Et on n'a jamais eu de problème de routage pour lire une page web...

La comparaison entre VLC et un navigateur est valable, dans les grandes lignes. Mais le transfert de flux vidéo étant plus complexe que celui d'une page web, la comparaison ne peut être maintenue au-delà d'un certain point. L'accès à un flux vidéo RTSP/RTP se déroule de la manière suivante, simplifiée et réarrangée pour simuler un dialogue :

  • VLC demande à accéder au port standard de communication d'un serveur RTSP (UDP:554)

  • Le serveur indique ses propres ports que VLC devra utiliser pour signaler sa présence

  • VLC indique au serveur sur quels port le flux vidéo doit être délivré

  • le serveur tente de délivrer le flux vidéo là où VLC le lui a demandé

Le gros du problème vient de la troisième étape. En effet, VLC choisit aléatoirement parmi les ports inutilisés ceux sur lesquels il souhaite recevoir les flux vidéo. On ne peut donc pas indiquer au routeur quels ports il devrait, a priori, laisser ouverts et vers quel ordi il serait sensé router les données destinées à ces ports, comme on le fait lorsque les ports sont fixes[12]. Puisque plusieurs copies de VLC peuvent être actives au même moment, sur un ou plusieurs ordis, on imagine facilement qu'il ne doit pas être simple d'assurer la bonne coordination de l'ensemble, par des réglagles manuels, au coup par coup. Et il sera impossible de se souvenir de tous ces réglagles (où les appliquer, quels paramètres modifier, quelles valeurs donner), au cas où l'on voudrait ajouter un nouvel ordi ou en réinstaller un...

4. Les solutions improvisées

Diverses solutions bricolées ont tenté de résoudre le problème de routage. Bien qu'elles soient inappropriées pour qui utilise un WRT54G, elles peuvent intéresser les détentrices d'autres routeurs et les utilisatrices simplement curieuses.

4.1. Ouvrir les ports sortants

Sur un routeur grand public, les ports sortant (du réseau local vers l'accès internet) ne sont généralement pas fermés.

RTSP (UDP:554) C'est le port, ouvert sur la Freebox, qu'utilise VLC pour se connecter au serveur de Free. Cela permet notamment à VLC d'indiquer à la freebox sur quel port il attendra les flux vidéo RTP/AVP. Ces ports sont déterminés dynamiquement par VLC.

RTP/AVP (UDP:32768-32784) Cette plage est utilisée par la Freebox pour indiquer sur quel port elle attend des signaux de VLC indiquant qu'il est toujours à l'écoute. C'est donc la Freebox qui signale à VLC sur quelle adresse il devra la contacter. En fait, elle indique deux adresses (par exemple 32768-32769), VLC utilisant le seconde. Comme il y a 16 ports réservés, cela signifie que la Freebox est capable de communiquer simultanément avec 8 copies de VLC, utilisant une paire de ports différente pour chaque copie.

4.2. Ouvrir les ports entrants

La Freebox va tenter d'ouvrir des connexions pour envoyer le flux vidéo à VLC. Une demande de connexion arrivant au serveur ne peut être traitée que si elle est réorientée vers un ordi du réseau local. Il faut donc ouvrir ces ports (UDP)sur le routeur.

Le problème est que le fonctionnement de VLC empêche de connaître des ports à l'avance, puisqu'il les impose "au hasard", à la Freebox (voir plus haut) : par exemple UDP:1236-1237 (comme dans le message SETUP "Transport: RTP/AVP;unicast;client_port=1236-1237"). On voit que VLC donne une paire d'adresse.

Si on n'utilise qu'une seule copie de VLC (donc, sur un seul ordi) il est possible de s'en tirer en disant d'orienter toutes les requêtes entrantes sur ce seul ordi (principe de la DMZ). Mais c'est une mauvaise technique car elle expose inutilement l'ordi en DMZ à toutes les attaques venant d'Internet.

Le traitement du routage des flux vidéo peut se faire à deux niveaux : VLC ou le routeur.

Au niveau de VLC, le problème peut être contourné en utilisant une version modifiée du logiciel ou une version récente permettant d'imposer le port d'entrée. Il existe des versions bridées de façon à n'utiliser que deux adresses prédéfinies pour recevoir les flux vidéo. Mais l'utilisation de versions modifiées est déconseillée car elle déporte un problème de là où il devrait être résolu et ne bénéficieront pas forcément de la même attention des développeurs, dans le temps (risques de bug connus non corrigés et donc d'attaques).

VLC n'est pas le seul logiciel à choisir dynamiquement les ports sur lesquels il souhaite être contacté. Le routage "intelligent" est la solution généralement retenue pour faire face à ces comportements. Il consiste à traiter de manière particulière le routage de certaines requêtes (protocoles). Dans le cas qui nous intéresse (VLC), un module de routage spécifique à RTSP analyse les paramètres de ports transmis par VLC à la Freebox et adapte dynamiquement le routage entrant (de la Freebox vers VLC) en conséquence.

A. Liens complémentaires

Le manuel d'utilisation de VLC, très complet et en français !

Une expérience du Multiposte sous Linux en général et Mandriva et Ubuntu en particulier.

B. WRT54G, GL, GS ?

C'est fréquent en informatique, le même nom de produit peut cacher des matériels très différents. Ainsi, le WRT54G se décline (à ce jour) en 7 versions dont certaines ne sont que des améliorations cosmétiques des précédentes alors que d'autres opèrent des changements radicaux.

Pour vous y retrouver, je vous recommande donc le choix suivant, en commençant par les meilleurs :

  • WRT54GS V3.0,

  • WRT54GL V1.1, V1.0,

  • WRT54G V4.0,

  • WRT54G V3.1,

  • WRT54GS V2.1, V2.0, V1.1, V1.0

  • WRT54G V3.0, V2.2, V2.0

  • WRT54G V1.1, V1.0

  • WRT54G V6.0, V5.1, V5.0

  • WRT54G V6.0, V5.1, V5.0

Avertissement

Le modèle WRT54G V7 est à proscrire absolument. Il n'a rien à voir avec les précédents et ne bénificie pas de la qualité qu'apporte le logiciel libre. Les modèles V5 et V6 sont utilisables mais fortement déconséillés. Utilisez-les si vous en avez mais n'en achetez pas !

Linksys se garde bien d'indiquer les numéro de versions de ses modèles, aussi devrez-vous les déduire des numéros de série figurant sur l'étiquette collée sur la boîte et sur l'appareil. Avant toute intervention (ou tout achat, neuf ou d'occasion), vérifiez ce numéro de série. Il suffit de consulter les 4 premiers symboles et de se reporter au tableau suivant :

Tableau B.1. Correspondance n° de serie / version

modèlen° de sérieversion
WRT54GCDF0(ou 1)xxxxxxxx1.0
 CDF2(ou 3)xxxxxxxx1.1
 CDF5xxxxxxxx2.0
 CDF7xxxxxxxx2.2
 CDF8xxxxxxxx3.0
 CDF9xxxxxxxx3.1
 CDFAxxxxxxxx4.0
 CDFBxxxxxxxx5.0
 CDFCxxxxxxxx5.1
 CDFDxxxxxxxx6.0
 CDFExxxxxxxx7.0
WRT54GSCGN0(ou 1)xxxxxxxx1.0
 CGN2xxxxxxxx1.1
 CGN3xxxxxxxx2.0
 CGN4xxxxxxxx2.1
 CGN5xxxxxxxx3.0
 CGN6xxxxxxxx4.0
 CGN7xxxxxxxx5.0
 CGN8xxxxxxxx5.1
 CGN9xxxxxxxx6.0
WRT54GLCL7Axxxxxxxx1.0
 CL7Bxxxxxxxx1.1

Si vous êtes intéressée, reportez-vous au détail des différences.

À l'heure ou j'écris ce document, le modèle le plus facile se procurer, neuf, en boutique ou en VPC est le WRT54G V7, c'est-à-dire celui qu'il ne faut absolument pas prendre. Soyez vigilante ! Mais on trouve aussi très facilement le WRT54GL V1.1 qui reste un excellent choix. Fort heureusement, le numéro de série est indiqué sur la boîte et lisible à travers le film plastique.

Si vous décidez d'acheter d'occasion, vérifiez impérativement le numéro de série et n'hésitez pas demander à la vendeuse de vous l'indiquer. Vous êtes dans votre rôle d'acheteuse avertie, puisque la seule indication du modèle ne signifie pas grand chose. La vendeuse ne le sait d'ailleurs peut-être pas...



[1] Comment activer ce service sort du cadre de cet article. La marche à suivre est indiquée sur le site de free.

[2] Ou un ordi équipé d'une entrée vidéo...

[3] Pression prolongée sur la touche "maison" ou "free".

[4] Si, suivant les conseils d'autres tutoriels, vous avez déjà ajouté des règles de routage (applications and gaming -> port forwarding) pour VLC, supprimez-les toutes.

[5] Dans ce cas, s'assurer que l'ordi récupère automatiquement son adresse internet, par DHCP.

[6] DMZ signifie "zone démilitarisée". Déclarer un ordi en DMZ, au sens des routeurs grand public, équivaut à le priver de toutes les protections que pouvait lui procurer le routeur-firewall. Il s'agit d'une perversion du concept de DMZ tel qu'on l'utilise en informatique professionnelle. En effet, sauf à verser dans le militarisme, une zone démilitarisée ne saurait être une zone sans protection mais simplement une zone où l'on applique des règles de sécurités moins draconiennes que dans une zone militarisée. On ne laisse donc jamais un ordi sans protection comme le proposent les "DMZ" des routeurs grand public. En informatique professionnelle, une DMZ est une partie du réseau rendue accessible à certaines requêtes précises (et à elles seules) émanant de l'Internet. À bien y regarder, en rendant notre réseau local accessible à certaines requêtes extérieures (notamment les flux vidéo) c'est tout notre réseau local que nous plaçons en DMZ, au sens non trivial du terme. Il faut être consciente que placer un ordi en DMZ, au sens des routeurs grand public, c'est l'offrir aux pirates.

[7] En réalité, la Freebox n'agit que comme une passerelle pour des serveurs de Free, ce n'est pas elle qui fournit le service.

[8] Les mutliples "versions" de DD-WRT peuvent être déroutantes. Elles m'ont d'ailleurs longtemps déroutéE ! Sauf besoin très spécial, il suffit de suivre mes indications.

[9] Tous les ordis reliés à votre WRT54G par WiFi appartiennent à votre réseau local, exactement comme si vous les aviez reliés par des câbles Ethernet !

[10] À titre d'exemple, le firewall fourni en standard avec Mandriva 2007, détecte automatiquement ce type de communications et les laisse passer sans qu'il soit besoin de rien configurer ; exactement comme le fait le firewall intégré à DD-WRT.

[11] Comme on l'a fait pour le routeur.

[12] Pour donner accès à un serveur HTTP (port 80), par exemple.