Linux:avahi

Aus Alexander's Wiki

Installation

  sudo apt-get install avahi-daemon libnss-mdns


Konfiguration

Avahi wird über die Datei /etc/avahi/avahi-daemon.conf konfiguriert. In der Datei /etc/resolv.conf muss eine Domain konfiguriert sein, die nicht local heißen darf, da sich der Avahi-Service sonst deaktiviert.

  domain localnet
  search localnet
  nameserver 10.200.0.5

D-BUS

Wichtig ist hier die Option "enable-dbus". Damit ermöglicht man es Avahi, über den D-Bus mit anderen Programmen zu kommunizieren.

  enable-dbus=yes

Publishing

Dient zur Publizierung der bereitgestellten Avahi Dienste:

  disable-publishing=no

Damit lassen sich dann alle Geräte mit dem Gerätename.local ansprechen. Die Namensauflösung wird bei Desktop-Installationen meist mit installiert. Für andere Systeme muss man das oben angegebene Paket libnss-mdns zusätzlich installieren:

  sudo apt-get install libnss-mdns

Manche Netzwerkkarten leiten Multicast-Pakete nicht weiter, so dass die Avahi Namensauflösung nicht funktioniert. Dann hilft folgender Befehl:

  sudo ifconfig <interface> allmulti

IPv6

IPv6 kann zu Abbrüchen bei der Datenübertragung führen. Dann sollte man es lieber in der Datei /etc/avahi/avahi-daemon.conf abschalten:

  use-ipv6=no

Firewall

Avahi öffnet den Netzwerk-Port 5353 sowie einen weiteren Port im Bereich 32768 bis 61000.

  sudo netstat -tulpen | grep avahi

Verwendung von Avahi

Es empfiehlt sich avahi-utils zu installieren, die dann die Kommandos avahi-browse, avahi-publish und avahi-resolve bereitstellen:

  sudo apt-get install avahi-utils

Anwendungsbeispiele

<?xml version="1.0" standalone='no'?> <!--*nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">

<service-group>
  <name replace-wildcards="yes">Sense-Management Server</name>
    <service>
      <type>_sense-management-server._tcp</type>
      <port>10005</port>
    </service>
</service-group>

Dann kann man

  avahi-browse -r -f _sense-management-server._tcp

avahi-browse --all -r