dimanche 22 février 2015

Linux Mint: Améliorer votre réseau domestique Linux avec Avahi (Zeroconf)

IntroductionPetit article qui ravira les utilisateurs Debian, Ubuntu et notre bien aimé Linux Mint.
Avoir plusieurs machines Linux sur un réseau domestique, c'est franchement sympa. Partage de fichier, commande à distance en ssh, etc c'est vachement cool.
Par contre, il y a quand même un truc vachement énervant, c'est quand il faut localiser les autres machines sur le reseau alors que l'on a un service DHCP. A moins d'opter pour une IP fixe, c'est pas franchement cool de découvrir l'adresse IP du jour du PC de Madame pour y faire un

ssh utilisateur@192.168.1.adresse_du_jour
Harf!!!

Heureusement, il y a Ahavi (Zeroconf) qui permet d'avoir un service de découverte sur le réseau domestique sans se prendre la tête à partir du nom de la machine.

Ainsi, le ssh pourri avec l'adresse_ip_du_jour devient

ssh utilisateur@nom_de_la_machine.local

Là, ce devient cool... sauf si le nom de la machine à atteindre est à coucher dehors comme "acer-xya123-maison-z". Il sera toujours temps de changer le nom de la machine plus tard pour rendre les choses plus agréables.

Avahi (Zeroconf) sur Linux... kaseko?!?!
Avahi exécute un service mDNS plus DNS-SD: il s'agit d'un DNS multicast + service de découverte DNS. Le DNS Multicast signifie que chaque hôte (ordinateur) stocke ses propres enregistrement DNS. Une adresse multicast (224.0.0.251) est utilisé par les clients qui désirent obtenir l'adresse IP d'un hôte donné (à partir de son hostname), et l'hôte répond à la requête du client avec sont adresse IP. DNS-SD utilise la même technologies, mais en plus des informations DNS habituelle, les hôtes publient également des informations sur les services disponibles: l'hote annone donc les services qu'il fournit et comment contacter ces services. Le but de tout cela est de permettre la connexion sur un hôte et ses services sans nécessiter la configuration de la part d'un utilisateur: ce procédé est connu comme "Zeroconf sharing" ("partage Zeroconf" en français, Zeroconf signifiant "sans configuration"). Ce type de service logiciel est idéal pour les personnes n'étant pas l'aise avec la configuration manuelle -- ou qui n'ont pas envie de se prendre la tête!

ATTENTION
Il va de soi qu'il ne faut pas installer ce type de service sur les machines d'un reséau accessible depuis Internet. Cela offrirait beaucoup de trop d'informations et de facilité pour les fouineurs opportunistes voulant s'offrir une petite séance de cracking.

A vrai dire, comme il n'y a pas beaucoup de soft Linux qui utilise vraiment mDNS. Apple à fait un usage plutôt intensif de celui-ci: leur logiciel s'appele Bonjour (aussi disponible sur le Pi), et prend en charge la configuration des imprimantes, partage de musique via iTunes, partage de photo via iPhoto, Skype, iChat et toute une série d'autres services logiciels.
Cependant, en terme d’implémentation technique, Avahi est une excellent brique logicielle capable de réaliser/faire tout ce que Bonjour fait. Il se dit sur le Net que les équipes de développements Debian/Ubuntu essayent de donner un petit coup de pouce à mDNS en incluant avahi. Du coup, les amoureux de Mint en profite aussi.
Autant dire que c'est de la balle... ça marche comme sur des roulettes.

Quels services Avahi peut rendre à votre Linux box?
Pour commencer, adresser vos machines par leur nom plutôt que leur adresse IP. Une autre utilisation est le partage de la musique en réseau. En particulier, si certaines de vos musiques sont sur votre pc portables, elles apparaissent et disparaissent du réseau en fonction des déplacements de votre machine sur le réseau... shutdown et boot. La découverte automatique de musique est un service vraiment très pratique. C'est la même technologie que celle utilisée par Apple et iTune.

Si vous êtes intéressé par le partage de musique avec les machines apple, je pense que vous devriez consulter l'article suivant Avahi (Zeroconf) on Linux: What is it Good For? (Hélas, il n'y a pas que Microsoft qui prend des libertés vis-à-vis des standards).

Installer Avahi

sudo apt-get install avahi-daemon avahi-discover libnss-mdns

Vérifier le statut du service

sudo service avahi-daemon status

Si Avahi n'était pas démarré, vous pourriez utiliser

sudo service avahi-daemon start

scanner le réseau pour découvrir les services disponibles

avahi-browse -at | grep IPv4


Exemple de résultat offert par avahi-browse

Il est également possible de résoudre facilement l'IP avec l'option "r"

avahi-browse -atr

Une fois la machine identifiée, vous pouvez facilement utiliser des services tels que ssh

ssh NomUtilisateur@Acer-Aspire-xxx.local

Hé hop c'est parti

Ce n'est pas tout, d'autres services sont plus facilement accessibles
  • Ping ping hostname.local
  • Samba nautilus smb://hostname.local 
  • SSH nautilus ssh://hostname.local 
  • Imprimante distante ipp://hostname.local:631/printers/printer_name 
Outil graphique

L'outil avahi-discover affiche le résultat des découvertes dans une fenêtre de votre environnement graphique.
Outils très pratique.

Si avahi-discover n'est pas encore installé, vous pouvez facilement le faire en vous pliant d'un petit apt-get install

sudo apt-get install avahi-discover

Pour lancer l'outil, vous pouvez utiliser la commande suivante depuis un terminal (ou le menu de mint)

avahi-discover

Changer le nom du PC Linux
Maintenant, il ne faut pas oublier qu'avoir un nom de pc (hostname) compréhensible et facilement utilisable sur le réseau et en ligne de commande.
Petit conseil:
  • rendez le hostname simple et facilement compréhensible.
  • Utilisez exclusivement des minuscules (sous Linux, "Bonbon" et "bonbon" ce n'est pas pareil... autant s'éviter les erreurs et l'usage de la touche shift ;-) ).
  • Utilisez exclusivement des "-" en séparateur de mot.
  • Un petit truc bien pratique dans le milieu domestique, c'est d'identifier le propriétaire et le type de machine (à la maison, il arrive souvent qu'une même personne dispose de plusieurs machines).
    Exemples: didier-laptop , didier-desktop, greg-pi
Changer le Hostname
Bref, pour changer le nom d'une machine sur le réseau, vous pouvez suivre ce tutoriel pour Linux Mint (et aussi pour les autres dérivés de Debian).


Ressources

Aucun commentaire: