Vertändnisfrage IP zu Hostname mDNS via Avahi & Fritz!Box?

TPP1G1

Newbie
Registriert
März 2025
Beiträge
5
Hallo zusammen,

ich habe eine Fritz!Box 5590 als Router in meinem Heimnetz und zusätzlich ein NAS sowie ein Proxmox-Host mit einigen Linux-Containern. Alle meine Linux-Rechner im Netz verwenden avahi und haben daher einen mDNS-Hostnamen mit der local-Domäne (z.B. pve.local). Die Fritz!Box betreibt nach meinem Verständnis einen richtigen DNS und gibt allen Geräten im Netz irgendwie die Endung fritz.box (z.B. pve.fritz.box). Ich betreibe mDNS mit avahi, da ich gern alle Geräte in meinem Netz mit Hostnamen ansprechen möchte. Das funktioniert auch. Ich kann alle Gräte mit dem .local.Namen anpingen und mich mit Ihnen z.B. per ssh verbinden.

Aber kürzlich habe ich probiert, alle Hostnamen in meinem Netz anhand der IPs mit "avahi-resolve-address" zu suchen. Dabei fiel mir ein komisches Verhalten auf. Aus irgendeinem Grund wird die Fritz!Box als DNS in manchen Fällen vor mDNS bevorzugt.

Hier ein Beispiel:
root@dockge:~# avahi-resolve-address 192.168.1.254
192.168.1.254 pve.fritz.box
root@dockge:~# avahi-resolve-host-name pve.local
pve.local 192.168.1.254

Das Ergebnis von "avahi-resolve-address" gibt mir immer den Hostnamen mit fritz.box-Endung zurück, obwohl der .local-Name mit "avahi-resolve-host-name" aufgelöst werden kann. Auch die Antwort vom ping-Befehl funktioniert zwar mit .local aber gibt den .fritz.box-Namen zurück.

PING pve.local (192.168.1.254) 56(84) bytes of data.
64 bytes from pve.fritz.box (192.168.1.254): icmp_seq=1 ttl=64 time=0.218 ms

Kann jemand von euch das Verhalten erklären? Ich dachte bisher, dass mDNS immer vor DNS bevorzugt wird, insbesondere bei dem "avahi-resolve"-Befehl.

Ich würde mich über Antworten und Hinweise freuen. :)
 
Meines Wissens implementiert mDNS keinen reverse lookup, also wird IP->Hostname immer über die reverse Zone des DNS aufgelöst.
 
  • Gefällt mir
Reaktionen: drrrk
Das heißt, wenn es keinen DNS Server gäbe, würde "avahi-resolve-address" keinen Hostnamen finden? Dann würde mDNS ja nur halb funktionieren ohne richtigen DNS im Netz. Oder sind Reverse Loockups nicht so rlevant?

Auf der Manual-Seite klingt es so als ob beide Richtungen möglich sind: https://manpages.debian.org/bookworm/avahi-utils/avahi-resolve.1.en.html
Ergänzung ()

Ich habe mit Testweise ein isoliertes Netz ohne DNS in Proxmox erstellt. Dort zwei Container mit avahi ausgestattet und den reverse lookup getestet.

root@bridge2:~# avahi-resolve -a 10.10.1.2
10.10.1.2 bridge1.local
root@bridge2:~# avahi-resolve -a 10.10.1.3
10.10.1.3 bridge2.local

Das funktioniert. Reverse lookup klappt also auch komplett ohne DNS aber aus irgendeinem Grund drängelt sich die fritzbox in meinem Heimnetz immer vor.

ich würde gern verstehen, warum das so ist und ob man das ändern kann.
 
Zuletzt bearbeitet:
Die Fritzbox draengelt sich nicht vor. Sie ist einfach der DNS der gefragt wird. Und kennt den Namen der Host nicht.

Wenn Du reverse Aufloesung haben willst mach sicher das Die Geraete der Fritte bekannt sind oder bau Dir fuer lokal einen DNS der das alles weiss.
 
Also reverse lookup funktioniert auch im Heimnetz bei mir und die Fritzbox kennt alle Hosts. Das ist nicht das Problem.

Allerdings wird bei der rervse lookup anfrage mit avahi-resolve immer der hostname mit .fritz.box am Ende ausgegeben. Das zeigt, dass die Antwort von der Fritzbox kommt. Ich würde gern den mdns Hostnamen mit .local am Ende sehen oder zumindest verstehen, warum dieser nicht ausgegeben wird. :)
 
Dann zitiere ich mich mal selbst. @TPP1G1

BFF schrieb:
Sie ist einfach der DNS der gefragt wird.

Solange die Fritte gefragt wird bekommst Du diese Auskunft.
 
Entschuldig, falls ich dich nicht richtig verstehe. Vielen Dank auf jeden Fall für deine schnellen Antworten.

Ob zuerst bei dem DNS Server (ist die Fritzbox bei mir) oder bei mDNS nach einer Anwort gesucht wird, legt nach meinem Verständnis die/etc/nsswitch.conf mit den Einträgen hinter "hosts:" fest.

Dort steht bei meinen Linux-Rechnern mit installiertem avahi immer zuerst mDNS und danach DNS. Also müsste doch eigentlich zuerst eine Antwort vom Client mit der angefragt IP selbst kommen (also via mDNS) und der hostname.local ausgegeben werden.

Oder verstehe ich das falsch?
 
Liefert mdns eventuell nur den Hostnamen und den FQDN setzt der Anfragende dann via "search domain" selbst zusammen?
 
Ich habe getestet ob die search domain in der /etc/resolv.conf einfluss hat.

Dort steht bei meinem Clients:
root@pve:~# cat /etc/resolv.conf
search local
nameserver 192.168.178.1

Also die Fritzbox als DNS aber search Domäne local.

Hat jemand von euch ein ähnliche Setup und könnte testen, wie es sich bei euch verhält?
 
Zurück
Oben