Auflösen des `.local'-Namens (nur mDNS)

1612
Circonflexe

Ich habe ein Heimnetzwerk mit mDNS eingerichtet, das verschiedene Systeme enthält (einschließlich eines immer aktiven Raspberry Pi). Auf meinen Maschinen laufen Avahi-Daemons. Die aktuelle Situation ist also:

  • Jeder im Netzwerk kann host.localNamen auflösen .

Was ich zusätzlich will:

  • Die von mir verwalteten Maschinen können auch hostan dieselbe Adresse aufgelöst werden wie host.local.

Ich könnte mir drei Wege vorstellen, dies zu tun:

  1. Setzen Sie search localein /etc/resolv.conf: dies wird von mDNS nicht honoriert, da es angeblich "Probleme verursachen" soll. Ich könnte mich mit den --enable-search-domainsOptionen auf all meinen Maschinen neu kompilieren .

  2. Schreiben Sie statische /etc/hostsDateien in alle Netzwerkmaschinen. Das mache ich gerade. Allerdings macht es Konfiguration verteilt, was ich vermeiden will (diese Dateien Sie gehen schließlich out-of-sync).

  3. Richten Sie einen DNS-Server im Netzwerk ein. Der Router, der mit dem Internetzugang ausgestattet ist, verwendet jedoch kein DNS (dies ist fast ein guter Grund für ein anderes Unternehmen), sodass ich ihn auf der Raspberry einrichten muss. Dies wirft auch das Problem einer verteilten Konfiguration auf: Die statischen DNS-Informationen auf dem Raspberry würden schließlich mit den mDNS-Informationen nicht mehr synchron sein, so dass hostund host.localverwirrend auf zwei verschiedene IP-Adressen verweisen könnte ...

Meine Frage ist also:

  • Was sind die "Probleme", die die --enable-search-domainsOption aufwirft? (Das einzige, was ich sehe, ist, dass jeder im LAN einen unqualifizierten Hostnamen einrichten kann, aber 1. Ich verwende keine unqualifizierten Hostnamen außer denen, die ich bereits kontrolliere, und 2. der LAN-Zugriff ist bereits auf vertrauenswürdige Personen beschränkt Kollegen sowieso).

  • habe ich eine andere vierte Option verpasst? (z. B. einen DNS-Server einrichten + eine Crontab mit periodischer Ausgabe eines avahi-browseBefehls?)

4
Dies ist eine bizarre Frage. Wenn Sie mDNS auf Ihren lokalen Computern in Ihrem Netzwerk eingerichtet haben, werden auf jedem Computer in Ihrem Netzwerk diese .local-Adressen angezeigt. Das ist der springende Punkt von mDNS. Sie müssen sich nicht um so ziemlich alles kümmern, worüber Sie schreiben. Wenn Sie mit mDNS keine anderen Rechner im Netzwerk sehen können, leitet Ihr Router keine mDNS-Pakete weiter. Wenn dies der Fall ist, müssen Sie die Einstellungen an Ihrem Router anpassen oder einfach eine neue erhalten. JakeGould vor 7 Jahren 0
Dies ist ein Kommentar außerhalb des Themas. Ich vermute, Sie haben die Frage falsch verstanden. Die `.local`-Domain funktioniert gut, ich möchte sie zur Standarddomäne machen. Ich habe aus Gründen der Klarheit bearbeitet. Circonflexe vor 7 Jahren 1
"Dies ist ein Kommentar außerhalb des Themas ..." Nicht wirklich. Ihre Frage ist etwas seltsam, daher ist ein Kommentar, der nur auf die Ungewöhnlichkeit der Frage hinweist, die auf der Unklarheit des Begriffs und der Formulierung beruht, angemessen. JakeGould vor 7 Jahren 0
Diese Frage ist überhaupt nicht bizarr. In der Tat, von all dem Googeln, das ich in Bezug auf dieses Problem gemacht habe, und von allen StackOverflow / AskUbuntu / SuperUser-Fragen, die ich gefunden habe und die zu diesem Problem gehören, ist diese Frage die einzige **, die das Problem genau beschreibt Problem, mögliche Lösungen und die Probleme mit diesen Lösungen. Ich habe nach Antworten auf die Frage gesucht, warum "--enable-search-domains" standardmäßig nicht aktiviert ist, warum es überhaupt deaktiviert wurde, aber ich habe noch keine gefunden. blujay vor 6 Jahren 1

2 Antworten auf die Frage

2
grawity

Ich vermute, dass die Option ‚nicht zu empfehlen‘, weil es in der Praxis fast nutzlos ist: fast alle anderen mDNS Implementierungen die Verwendung .localDomain nur, so versuchen, für Lookups zu tun, was Domain, die Sie von DHCP nur zusätzliche Verzögerungen die meiste Zeit einführen würde geschehen zu erhalten. In der aktuellen mDNS-Spezifikation werden auch Sicherheitslücken genannt .

Stattdessen könnte NSS-mdns gepatcht werden, um speziell anhängen .localNamen dotless bevor Sie versuchen, sie zu suchen, anstatt die resolv.conf Domains zu verwenden.

0
vontrapp

Der Grund, warum mdns keine .local- oder Suchdomänen anhängt, liegt darin, dass es in Mdns kein NXDOMAIN oder ein ähnliches Konzept gibt.

Wenn also mdns in keinem Cache eine Lösung findet, muss es eine Multicast-Abfrage senden und abwarten, ob etwas antwortet. Dieses Zeitlimit ist lang genug, um "Probleme zu verursachen".

Das Folgende beantwortet die Frage nicht, ist jedoch spekulativ über mögliche Implementierungen, um einige der Probleme zu lösen.

Ich würde mir wünschen, dass .local explizit an Hostnamen ohne Punkte am Ende der nss-Kette angehängt wird. Z.B

hosts: Dateien mdns4_minimal [NOTFOUND = return] dns mdns_append

Möglicherweise ist es auch möglich, eine mdns-Auflösung "nur Cache" anzugeben. Vielleicht mit einem solchen Schalter

hosts: Dateien mdns4_minimal [NOTFOUND = return] mdns_append_cacheonly dns mdns_append

Ich stelle mir vor, dass mdns_append versucht, sowohl mit als auch ohne .local anzuhängen.