mDNS- oder Multicast-DNS-Dienst
Es wird vom Avahi / Bonjour- Daemon bereitgestellt , mit dem kleine Netzwerkcomputer Namen verwenden können, auch wenn kein zentrales DNS vorhanden ist. Standardmäßig wird die .local
Domain verwendet.
Wenn Sie nicht .local
für Ihren DNS-Server verwenden, setzen Sie DNS nach mDNS in nsswitch.conf
(Standard).
hosts: files mdns4_minimal dns [NOTFOUND=return] mdns4
Andernfalls .local
wird von Ihrem DNS-Server verwendet (keine Verwendung für den MDNS-Dienst)
hosts: files dns [NOTFOUND=return] mdns4_minimal mdns4
Was ist der Unterschied zwischen mdns4_minimal und mdns4?
Um Ihnen zu antworten, ist es besser zu wissen, wie ich solche Informationen sammle und selbst lerne :) ( ##
dient als Kommentar, um das Ziel für den Befehl darunter anzugeben)
## Update "locate" database
~$ sudo updatedb
## Search for file with "mdns4_minimal" in its name
~$ locate mdns4_minimal
/lib/x86_64-linux-gnu/libnss_mdns4_minimal.so.2
## Look for which package installs that file
~$ dpkg -S /lib/x86_64-linux-gnu/libnss_mdns4_minimal.so.2
libnss-mdns:amd64: /lib/x86_64-linux-gnu/libnss_mdns4_minimal.so.2
## List all files from same package
~$ dpkg -L libnss-mdns:amd64
/.
/usr
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libnss-mdns
/usr/share/doc
/usr/share/doc/libnss-mdns
/usr/share/doc/libnss-mdns/copyright
/usr/share/doc/libnss-mdns/README.html
/usr/share/doc/libnss-mdns/README.Debian
/usr/share/doc/libnss-mdns/style.css
/usr/share/doc/libnss-mdns/changelog.Debian.gz
/lib
/lib/x86_64-linux-gnu
/lib/x86_64-linux-gnu/libnss_mdns4.so.2
/lib/x86_64-linux-gnu/libnss_mdns_minimal.so.2
/lib/x86_64-linux-gnu/libnss_mdns.so.2
/lib/x86_64-linux-gnu/libnss_mdns4_minimal.so.2
/lib/x86_64-linux-gnu/libnss_mdns6.so.2
/lib/x86_64-linux-gnu/libnss_mdns6_minimal.so.2
## "README.html" looks the only documentation there, we open it
~$ xdg-open /usr/share/doc/libnss-mdns/README.html
Dokumentation
Nach dem Kompilieren und Installieren nss-mdns
finden Sie sechs neue NSS-Module in /lib
:
libnss_mdns.so.2
libnss_mdns4.so.2
libnss_mdns6.so.2
libnss_mdns_minimal.so.2
libnss_mdns4_minimal.so.2
libnss_mdns6_minimal.so.2
libnss_mdns.so.2
Löst sowohl IPv6- als auch IPv4-Adressen auf,
libnss_mdns4.so.2
nur IPv4-Adressen und libnss_mdns6.so.2
nur IPv6-Adressen. Aufgrund der Tatsache, dass die meisten mDNS-Responder nur lokale IPv4-Adressen über mDNS registrieren, möchten die meisten Benutzer diese
libnss_mdns4.so.2
ausschließlich verwenden. Die Verwendung libnss_mdns.so.2
oder
libnss_mdns6.so.2
in einer solchen Situation führt zu langen Zeitüberschreitungen beim Auflösen von Hosts, da die meisten modernen Unix / Linux-Anwendungen zuerst nach IPv6-Adressen suchen und anschließend nach IPv4 suchen.
libnss_mdns{4,6,}_minimal.so
(neu in Version 0.8) ist größtenteils identisch mit den Versionen ohne _minimal
. Sie unterscheiden sich jedoch in einer Hinsicht. In den Minimalversionen wird es immer verweigert, Hostnamen aufzulösen, die nicht enden, .local
oder Adressen, die nicht im Bereich liegen
169.254.x.x
(dem von
IPV4LL / APIPA / RFC3927 verwendeten Bereich ). Durch die Kombination des _minimal
und des normalen NSS-Moduls können wir mDNS autorisierend machen für Zeroconf-Hostnamen und -Adressen (und damit keine zusätzliche Belastung für DNS-Server mit immer fehlgeschlagenen Anforderungen) und verwenden Sie es als Ersatz für alles andere.
IPv6-Unterstützung
files
& dns
NSS-Module, beide unterstützen neben IPv4 auch das Auflösen von IPv6.
Allerdings mdns4
& mdns4_minimal
sind nur für IPv4.
Gleiches gilt für mdns6
& mdns6_minimal
gilt nur für IPv6.
mdns
& mdns_minimal
unterstützt sowohl IPv4 als auch IPv6, aber seine Verwendung sollte vermieden werden, wenn nur eine einzige IP-Version im Netzwerk bereitgestellt wird. Da versucht wird, IPv6 aufzulösen, wird dann auf IPv4 zurückgegriffen, was zu einer zusätzlichen Verzögerung führen kann.
Übrigens ist das aktuelle Standard-Setup von Avahi IPv4, es ist ein dezentraler Dienst. Um mit IPv6 zu arbeiten, sollte der gesamte Computer für die Verwendung von IPv6 nsswitch
und avahi
auch neu konfiguriert werden .
Gibt es []
ähnliche [NOTFOUND=return]
?
Ja, wie wir sehen können man nsswitch.conf
An action may also be specified following a service specification. The action modifies
the behavior following a result obtained from the preceding data source. Action items
take the general form:
[STATUS=ACTION]
[!STATUS=ACTION]
where
STATUS => success | notfound | unavail | tryagain
ACTION => return | continue
The ! negates the test, matching all possible results except the one specified. The case
of the keywords is not significant.
The STATUS value is matched against the result of the lookup function called by the pre‐
ceding service specification, and can be one of:
success No error occurred and the requested entry is returned. The default action
for this condition is "return".
notfound The lookup succeeded, but the requested entry was not found. The default
action for this condition is "continue".
unavail The service is permanently unavailable. This can mean either that the
required file cannot be read, or, for network services, that the server is
not available or does not allow queries. The default action for this con‐
dition is "continue".
tryagain The service is temporarily unavailable. This could mean a file is locked
or a server currently cannot accept more connections. The default action
for this condition is "continue".
The ACTION value can be one of:
return Return a result now. Do not call any further lookup functions. However,
for compatibility reasons, if this is the selected action for the group
database and the notfound status, and the configuration file does not con‐
tain the initgroups line, the next lookup function is always called, with‐
out affecting the search result.
continue Call the next lookup function.
Verwandte Fragen: