Linux:avahi: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) K (→Publishing) |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 6: | Zeile 6: | ||
= Konfiguration = | = 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.''' | 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.''' | ||
<source lang="bash"> | <source lang="bash"> | ||
domain localnet | domain localnet | ||
Zeile 24: | Zeile 24: | ||
disable-publishing=no | disable-publishing=no | ||
</source> | </source> | ||
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 | 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: | ||
<source lang="bash"> | |||
sudo apt-get install libnss-mdns | |||
</source> | |||
Manche Netzwerkkarten leiten Multicast-Pakete nicht weiter, so dass die Avahi Namensauflösung nicht funktioniert. Dann hilft folgender Befehl: | Manche Netzwerkkarten leiten Multicast-Pakete nicht weiter, so dass die Avahi Namensauflösung nicht funktioniert. Dann hilft folgender Befehl: | ||
<source lang="bash"> | <source lang="bash"> | ||
Zeile 48: | Zeile 51: | ||
</source> | </source> | ||
== | == Anwendungsbeispiele == | ||
<source lang="bash"> | |||
<?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> | |||
</source> | |||
Dann kann man | |||
<source lang="bash"> | |||
avahi-browse -r -f _sense-management-server._tcp | |||
</source> | |||
avahi-browse --all -r | avahi-browse --all -r |
Aktuelle Version vom 11. November 2014, 08:01 Uhr
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