vendredi 2 mai 2008

Ajout de passerelles de jabber

Il existe 2 manière de mettre en service les passerelles:

- 1. les passerelles sont gérées par un seul et même processus
- 2. un processus prend en charge une passerelle pour le serveur

Dans le premier cas, un seul processus jabberd prend en charge les interactions avec les autres protocoles. L'avantage réside dans le fait qu'il ne soit pas nécessaire de gérer plusieurs configurations différentes, mais l'inconvénient majeur provient du fait suivant: si le composant logiciel chargé de gérer une passerelle « crash » alors c'est tout le serveur qui est arrêté.

Dans le deuxième cas, un processus est lancé et il ouvre un port de communication pour d'autres serveurs Jabber gérant une passerelle spécifique. Ainsi si le serveur chargé de gérer une passerelle tombe, le serveur principal, lui, continue à tourner. Cela permet aussi d'effectuer des mises à jour des passerelles sans obliger l'ensemble des utilisateursprésents à se reconnecter.


Configuration spécifique à la passerelle


Dans les deux types de configuration, le fichier de configuration XML du serveur principal doit être enrichi des informations suivantes (par exemple):

section < service > dans la section < browse >
< name="Nom du Service" jid="nom du service.localhost.localdomain" type="Passerelle vers nom du service">
< ns >jabber:iq:register< /ns >
< ns >jabber:iq:gateway< /ns >
< ns >fonctionnalités de la passerelle< /ns >
< /service >

...

section < service >
< id="nom du service.localhost.localdomain">
< xmlns="jabber:config:icqtrans">

...

< /service >

Cette section va être différente suivant la configuration des passerelles que vous avez choisi. Dans la cas d'une configuration à plusieurs serveurs, il sera nécessaire de créer un fichier de configuration spécifique. Le service apparaîtra dans le fichier de configuration principal comme un lien (link) avec un port attribué.

Exemple version 1.4 :

dans jabber.xml (serveur principal)
< service id="yahoo-linker">
< host >yahoo.localdomain< /host >
< accept >
< ip >127.0.0.1< /ip >
< port >5051< /port >
< secret >secretpass< /secret >
< /accept >
< /service >

dans jabber-yahoo.xml (serveur pour la passerelle)
< service id="yahoo-linker">
< connect >
< ip >127.0.0.1< /ip >
< port >5051< /port >
< secret >secretpass< /secret>
< /connect >
< /uplink >

Ceci définit le serveur, comme celui qui sera l'esclave du serveur
principal.
< /service >
< service id="yahoo.localdomain">
< load >< yahoo_transport >/usr/lib/jabber/transp
orts/yahoo-transport.so< /yahoo_transport >< /load >
< xmlns="jabber:config:yahoo">
< vcard >
< name >Yahoo Transport< /name >
< /vcard >
< service >scs.yahoo.com< /server >
< port >5050< /port >
< charmap >CP1252< /charmap >
< /config >

A peu de choses près, ce que l'on aurait trouvé dans une configuration à processus unique.

La configuration d'une passerelle dépendant de chaque protocole, il est quasiment impossible de proposer un schéma type de configuration. Il s'agit donc de se référer à la documentation fournie avec la passerelle. Dans la majorité des cas, un exemple de configuration est fourni pour les 2 types d'approches: uni-serveur, multiserveurs.

Vous noterez qu'il est possible de faire tourner un serveur dédié à une passerelle sur une machine qui servira un ensemble d'autres serveurs principaux.

D'un point de vue réseau, les ports de communication entre les serveurs jabber se résument aux ports 5222 et 5223 (pour SSL). Néanmoins, les passerelles vers les autres protocoles en requièrent d'autres. A l'aide de la configuration multiserveurs, il est possible de placer une passerelle en dehors d'une zone protégée et d'acheminer toutes les données relatives à un protocole particulier via un seul port. De ce fait, les données relatives aux utilisateurs restent dans la zone sécurisée.

Aucun commentaire: