[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Vidéoconférence et firewalls


From Thomas Petazzoni <thomas dot petazzoni at enix dot org>
Subject Vidéoconférence et firewalls
Date Sat, 18 Sep 2004 19:51:49 +0200

Bonjour,

Lors de la rencontre Gulliver de ce jeudi, il a été question de
vidéo-conférence, notamment avec Gnome Meeting. Fred a déjà envoyé sur
la liste quelques liens concernant les codecs.

Un autre aspect abordé a été le problème des firewalls. En effet, le
protocole H.323 utilise plusieurs connexions : une connexion TCP de
contrôle (port 1720), et plusieurs connexions UDP pour la transmission
des données (il me semble qu'il y a 2 connexions pour la voix, 2
connexions pour la vidéo, une connexion pour chaque sens). Le problème
est que ces connexions UDP interviennent sur des ports aléatoires (dans
une plage donnée). Si l'une des deux machines (ou les deux) est derrière
un firewall, un problème se pose, car le "suivi de connexion"
(connection tracking) est difficile à faire. On retrouve le même
problème qu'avec une session FTP par exemple.

Pour le problème du FTP, un système spécifique a été intégré dans
Netfilter pour permettre le suivi de connexion (analyse du traffic au
niveau application pour ouvrir les bons ports au bon moment). Par
contre, pour le H.323, rien de spécifique dans le Netfilter par défaut. 

Toutefois, il existe un patch pour Netfilter (proposé officiellement sur
le site de Netfilter, dans la catégorie "extra") : 
http://www.netfilter.org/patch-o-matic/pom-extra.html#pom-extra-h323-conntrack-nat

Une personne présente a évoqué la solution du tunneling H.245, qui
consiste à faire transiter dans une unique connexion TCP les diverses
connexions UDP. Je ne connais pas cette solution, et d'après le lien
ci-dessus, il semblerait que le port utilisé pour le tunnel H.245 est
également dynamique, donc un patch spécifique pour la gestion de suivi
de connexion est nécessaire.

Il existe une autre solution, que j'ai évoquée sur place, et que j'ai
déjà testée (uniquement sur un réseau local, mais à travers un
firewall). Elle consiste à mettre en place un tunnel IP complet, à
l'aide du logiciel vtund (http://vtun.sourceforge.net). Il permet de
faire différents types de tunel, personnellement j'ai testé le type
"tun". Il faut compiler le support TUN/TAP dans le noyau, écrire un
petit fichier de configuration, et hop c'est parti.

Cela créé une interface tun0 sur chacune des deux machines, par exemple,
avec les IP 192.168.2.1 et 192.168.2.2. Entre ces deux IPs virtuelles,
toutes les connexions sont possibles, et il n'y a pas de NAT
(translation d'adresse), donc le protocole H.323 passe sans problème,
ainsi que n'importe quelle autre connexion. Il suffit qu'un unique port
TCP soit ouvert pour que cela fonctionne.

En revanche, tout passe par une connexion TCP, alors on perd le
caractère "efficace" de l'UDP pour la transmission de données en
streaming. Il faudrait tester en réalité ce que cela donne sur une
connexion ADSL, car comme je l'ai dit plus haut, je n'ai testé que sur
un réseau local à 100 Mbit/s.

Si cela intéresse des gens, ou que les explications ne sont pas assez
détailles, n'hésitez pas à demander des précisions !

Bon WE ! (A ce propos, c'est les journées du patrimoine, j'ai pu aller
visiter la résidence Oberthur avec visite guidée, gratuitement, c'était
vraiment sympa, je vous le recommande. C'est 82, rue de Paris)

Thomas
-- 
PETAZZONI Thomas - thomas dot petazzoni at enix dot org 
http://thomas.enix.org - Jabber: kos_tom at sourcecode dot de
KOS: http://kos.enix.org/ - Lolut: http://lolut.utbm.info
Fingerprint: 0BE1 4CF3 CEA4 AC9D CC6E  1624 F653 CB30 98D3 F7A7