>
== Introduction ==
Avahi est un système qui facilite la découverte des services dans un réseau. Cette technologie est aussi appelée Rendezvous, Bonjour ou !ZeroConf.
En revanche avahi ne se limite pas forcément aux services du réseau local. En effet il est possible de le configurer pour propager l'information sur plusieurs réseaux d'une même passerelle, voir même sur des réseaux plus distants vu qu'il utilise la technologie de multi-diffusion (''multicast'').
Cette page présente quelques idées d'utilisations à l'AuF.
== Mise en place de l'annonce des services ==
L'annonce des services peut se faire depuis n'importe quelle machine et donc en particulier depuis un serveur sur le réseau local. Il suffit d'installer le paquet `avahi-daemon` et vous pouvez tout de suite commencer à annoncer des services.
Les services sont décrit dans des fichiers XML relativement simples, qu'on place dans `/etc/avahi/services/` et qui sont chargés au (re)démarrage de avahi. Le format du fichier est décrit dans `man avahi.service` et des exemples sont disponibles avec Debian dans `/usr/share/doc/avahi-daemon/examples/`.
== Découverte des services existant ==
Il suffit d'installer le paquet `avahi-utils` et d'utiliser la commande `avahi-browse -a -t -r` pour avoir une liste détaillée des services disponibles sur le réseau.
== Annonce d'une imprimante réseau ==
Certaines imprimantes, bien qu'accessible via le réseau, ne savent pas s'annoncer elle-même sur le réseau local. Il est cependant possible de les annoncer tout de même grâce à avahi, sans être obligé pour autant d'installer un service d'impression lourd tel que CUPS qui force du même coup toutes les impressions à passer par le serveur.
Voici un exemple permettant l'annonce d'une imprimante Xerox au Bureau Asie-Pacifique :
* ajouter la ligne suivante au fichier `/etc/avahi/hosts` :
. {{{
10.230.2.21 xerox.local
}}}
* créer le fichier `/etc/avahi/services/xerox.service` avec le contenu suivant :
. {{{#!xml
Imprimante Xerox au BAP2
_printer._tcp
xerox.local
515
_pdl-datastream._tcp
xerox.local
9100
pdl=application/vnd.hp-PCL,application/vnd.hp-PCLXL
_ipp._tcp
xerox.local
631
pdl=application/vnd.hp-PCL,application/vnd.hp-PCLXL
}}}
* demander à avahi de recharger sa configuration et vérifier :
. {{{
$ sudo invoke-rc.d avahi reload
$ avahi-browse -a -t
}}}
== Annonce d'un partage de fichiers en réseau ==
Cette technique a pour avantage de faire apparaître les partages réseaux disponibles dans ''Raccourcis > Réseau''.
=== Exemple de partage WebDAV ===
Voici un exemple pour l'annonce d'un partage WebDAV public au Bureau Asie-Pacifique :
* ajouter la ligne suivante au fichier `/etc/avahi/hosts` :
. {{{
210.245.61.203 www.local
}}}
* créer le fichier `/etc/avahi/services/www-vn-auf-org.service` avec le contenu suivant :
. {{{#!xml
Partage WebDAV sécurisé au BAP
_webdavs._tcp
www.local
443
path=/webdav/
}}}
* demander à avahi de recharger sa configuration et vérifier :
. {{{
$ sudo invoke-rc.d avahi reload
$ avahi-browse -a -t
}}}
=== Exemple de partage SFTP ===
Voici un autre exemple pour l'annonce d'un partage SFTP (via SSH donc), via le [[RPV]], au Bureau Asie-Pacifique :
* ajouter la ligne suivante au fichier `/etc/avahi/hosts` :
. {{{
10.230.2.10 srvbap2.local
}}}
* créer le fichier `/etc/avahi/services/srvbap2.service` avec le contenu suivant :
. {{{#!xml
Partage de fichiers au BAP2
_sftp-ssh._tcp
srvbap2.local
24
path=/srv/share
}}}
* demander à avahi de recharger sa configuration et vérifier :
. {{{
$ sudo invoke-rc.d avahi reload
$ avahi-browse -a -t
}}}
== Annonce et découverte sur un tunnel OpenVPN ==
/!\ '''ATTENTION''' : les auteurs du logiciel avahi déconseillent de l'activer sur des tunnels pour des raisons de stabilité et de sécurité, et [[ProgFou|je]] n'en ai pas encore mesuré les conséquences précises.
Par défaut avahi refuse d'écouter et d'annoncer sur des tunnels. Pour activer cette fonctionnalité il faut placer la ligne suivante dans la section `[server]` du fichier `/etc/avahi/avahi-daemon.conf` :
{{{
allow-point-to-point=yes
}}}
Cette activation est à effectuer à la fois sur les clients OpenVPN (postes nomades) et sur le serveur OpenVPN.
De plus, sur le serveur OpenVPN il faut également ajouter une route de multi-diffusion pointant vers le tunnel commun aux clients OpenVPN. Cela se fait simplement en ajoutant la ligne suivante au fichier `/etc/openvpn/server.conf` :
{{{
route 224.0.0.0 240.0.0.0
}}}
Il faut ensuite relancer les services `avahi-daemon` et `openvpn` et les services annoncés devraient être immédiatement visibles dans Nautilus (ou autres) dès la prochaine connexion OpenVPN.
== Quelques liens intéressants sur avahi ==
* liste de logiciels supportant avahi : http://avahi.org/wiki/Avah4users#SoftwareMakinguseofAvahi
* liste officielle des services que l'on peut annoncer : http://www.dns-sd.org/ServiceTypes.html