Forum: Haus & Smart Home mDNS funktioniert nicht mehr wie gewohnt (Fritz!Box)


von Reiner J. (purehunter)


Lesenswert?

Hallo,

ich habe viele ESP's in meinem Netz, alle mit Arduino programmiert.
Seit ein paar Tagen habe ich ein Problem: die ESP's können nicht mehr 
auf den MQTT-Broker zugreifen, weil dessen Name (z.B. mqtt-broker.local) 
nicht mehr aufgelöst werden kann.
Leider hatte ich 2 Ereignisse in so kurzem Abstand, dass ich das Problem 
keinem mehr zuordnen kann, aber ich habe die Fritzbox im Verdacht:
1. Es gab wohl ein automatisches Update im Bereich der Arduino-IDE. Vor 
ein paar Tagen bekam ich (in der Folge?) eine Warnung von Windows, dass 
"mdns-discovery.exe" als Gefahr erkannt wurde. Reflexartig habe ich auf 
"ablehnen" gedrückt. Später aber gelesen, dass man das nicht tun sollte 
und habe die hier: 
https://support.arduino.cc/hc/en-us/articles/4506515275548-About-mdns-discovery 
erklärten Schritte befolgt. Ohne Erfolg.
2. Einen Tag vorher oder nachher gab es auch ein automatisches Update 
der Fritzbox 7590 auf FW 8.25. Ich vermute, dass das der Grund ist, denn 
in einem Log des MQTT-Brokers sehe ich dass der letzte Zugriff eines 
ESP's wenige Sekunden vor dem Update der Fritzbox erfolgte.

Ich habe das Problem im Moment so umschifft, dass ich testweise statt 
des Namens die IP-Adresse des MQTT-Brokers in mehreren ESP's benutze. 
Aber das gefällt mir nicht, und ich würde gerne verstehen was die 
Ursache ist.
Heute habe ich herausgefunden, dass die Namensauflösung funktioniert, 
wenn ich statt der .local Domain .fritz.box benutze.
(Nachtrag): Gerade habe ich noch herausgefunden, dass ich den 
MQTT-Broker auch alleine mit seinem Hostnamen ohne irgendeine Domain 
(.local oder .fritz.box) erreiche. (Für mich) Sehr merkwürdig, das 
erscheint mir fast wie gewollt, aber nicht dokumentiert.

Hat jemand einen Tipp, wie ich wieder zur gewohnten .local Domain komme?

Gruß
ph
: Bearbeitet durch User
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Reiner J. schrieb:

> aber ich habe die Fritzbox im Verdacht

Sehr, sehr unwahrscheinlich. Warum? Weil die FB noch niemals mDNS 
unterstützt hat. Die stellt einen ganz stinknormalen DNS-Server bereit 
und sonst nix.

Grundsätzlich ist mDNS ein verteilter Dienst, jeder Teilnehmer wird 
selbst zum Server. Anfragen erfolgen per Broadcast, antworten tun alle, 
die den Broadcast empfangen und meinen, die richtige Antwort zu kennen.

> 1. Es gab wohl ein automatisches Update im Bereich der Arduino-IDE.

Das wird das Problem sein. Früher(tm) hat Arduino automatisch mDNS zur 
Namensauflösung benutzt, wenn der angefragte Name auf die Domain .local 
endete. Sieht so aus, als wenn dieses schwachsinnige Verhalten jetzt 
endlich geändert worden wäre.

Vermutlich gibt es aber eine Konfigurationsoption, mit der das alte 
Verhalten wieder aktiviert werden kann. Einfach mal die Doku lesen.

> Vor
> ein paar Tagen bekam ich (in der Folge?) eine Warnung von Windows, dass
> "mdns-discovery.exe" als Gefahr erkannt wurde.

Würde sowieso nur etwas nützen, so lange der Windows-Rechner läuft.

> Heute habe ich herausgefunden, dass die Namensauflösung funktioniert,
> wenn ich statt der .local Domain .fritz.box benutze.

Hier wird das normale DNS benutzt und die Antwort kommt von der 
Fritzbox.

> Gerade habe ich noch herausgefunden, dass ich den
> MQTT-Broker auch alleine mit seinem Hostnamen ohne irgendeine Domain
> (.local oder .fritz.box) erreiche.

Ja. Ohne explizit angegebene Domain wird automatisch die default domain 
verwendet, die der DHCP-Server bei der Zuteilung des Leases an den 
Client gleich mit verteilt.

> Hat jemand einen Tipp, wie ich wieder zur gewohnten .local Domain komme?

Wie gesagt: du mußt den Arduino-Quatsch einfach dazu bringen, für .local 
mDNS statt DNS zu befragen.
von Oliver S. (oliverso)


Lesenswert?

mdns-discovery.exe wird doch nur von der IDE zum programmieren benutzt, 
dass hat mit einem laufenden Netzwerk überhaupt nichts zu tun.

Ich würde da doch mal durch die FRITZ!Box-Einstellungen schauen, ob da 
irgendwas den erforderlichen Multicast blockiert.

Oliver
von Reiner J. (purehunter)


Lesenswert?

Vielen Dank für eure Ausführungen! Hat mich ein bisschen tiefer 
eintauchen lassen, das ist Fremdland für mich.


Ob S. schrieb:
> Ja. Ohne explizit angegebene Domain wird automatisch die default domain
> verwendet, die der DHCP-Server bei der Zuteilung des Leases an den
> Client gleich mit verteilt.

Ob S. schrieb:
> Früher(tm) hat Arduino automatisch mDNS zur
> Namensauflösung benutzt, wenn der angefragte Name auf die Domain .local
> endete. Sieht so aus, als wenn dieses schwachsinnige Verhalten jetzt
> endlich geändert worden wäre.

Wie mit .local umgegangen wird, ist anscheinend "Ansichtssache".
In einem Artikel zur verwendeten mDNS library (ESPmDNS.h) steht, dass 
bei der Angabe eines aufzulösenden Hosts der Domainname .local 
"optional" sei. Das wäre ja im Widerspruch zu dem was du schreibst. DAS 
Verhalten von Arduino ist m.E. ohnehin nicht so einfach wiederzugeben, 
das hängt doch von der verwendeten lib ab, und derer gibt es einige.


Ob S. schrieb:
>> aber ich habe die Fritzbox im Verdacht
>
> Sehr, sehr unwahrscheinlich. Warum? Weil die FB noch niemals mDNS
> unterstützt hat. Die stellt einen ganz stinknormalen DNS-Server bereit
> und sonst nix.

Der Verdacht bleibt aber bestehen, dass die FB ihre Finger im Spiel hat, 
da ja ESP's die ich seit Monaten/Jahren nicht angefasst habe, plötzlich 
"ihren" <MQTT-Broker>.local nicht mehr finden.

Oliver S. schrieb:
> Ich würde da doch mal durch die FRITZ!Box-Einstellungen schauen, ob da
> irgendwas den erforderlichen Multicast blockiert.

Ich bin da schon mehrfach durch alle() Einstellungen. Am ehesten fiel 
mir "Aktive WLAN Geräte im Netzwerk dürfen miteinander kommunizieren" 
auf; das war aber zugelassen. Was könnte denn das "irgendwas" noch sein, 
das das mDNS behindert?
von Martin D. (mdewendt)


Lesenswert?

Heimnetz
Änderung Das DNS-Suffix 'fritz.box' wird in den Voreinstellungen nicht 
mehr an Heimnetzgeräte per DHCP verteilt. Heimnetzgeräte wiederholen 
fehlgeschlagene Namensanfragen nun nicht mehr automatisch mit der Endung 
'fritz.box'. Das vorherige Verhalten lässt sich unter Heimnetz -> 
Netzwerk -> Netzwerkeinstellungen -> Erweiterte Netzwerkeinstellungen -> 
IPv4 -> DHCP aktivieren, sofern benötigt

Verbesserung
Für die lokale Namensauflösung (per mDNS) werden unterstützt: 
fritzbox.local, gateway.local, box.local (nur FRITZ!Box), 
repeater.local, fritzrepeater.local (nur Repeater/MeshSet), sowie 
allgemein router.local und gateway.local
von Lu (oszi45)


Lesenswert?

Reiner J. schrieb:
> Was könnte denn das "irgendwas" noch sein, das das mDNS behindert?

Wenn man z.B. mehrere DHCP-Server betreibt, sollte man auf den 
IP-Bereich achten. Evtl. wird da was doppelt bei Dir vergeben? In 
zweifelhaften Fällen kann ein DHCP auch feste IPs zuweisen, damit z.B. 
der Drucker immer die gleiche hat. Das kann auch die FB.
von Daniel A. (daniel-a)


Lesenswert?

Ob S. schrieb:
> Früher(tm) hat Arduino automatisch mDNS zur
> Namensauflösung benutzt, wenn der angefragte Name auf die Domain .local
> endete. Sieht so aus, als wenn dieses schwachsinnige Verhalten jetzt
> endlich geändert worden wäre.

.local ist offiziell eine special use domain, siehe: 
https://www.iana.org/assignments/special-use-domain-names/special-use-domain-names.xhtml 
https://datatracker.ietf.org/doc/html/rfc6762

Es ist explizit und offiziell definiert, dass .local immer über mDNS 
aufgelöst werden muss. Das hat nichts mit Arduino zu tun, so sind die 
offiziellen Netzwerkstandards, an die sich alle halten (sollten).
Man kann es natürlich trotzdem absichtlich falsch machen, wir haben hier 
auch einen Firmenpartner, der local. als seine lokale Domänenendung in 
normaler unicast DNS verwendet. Aber es ist und bleibt falsch, sowas zu 
machen, und wird Probleme bereiten.
von Harald K. (kirnbichler)


Lesenswert?

Martin D. schrieb:
> Änderung Das DNS-Suffix 'fritz.box' wird in den Voreinstellungen nicht
> mehr an Heimnetzgeräte per DHCP verteilt.

Welche Version des "FritzOS" soll das sein? Hier läuft eine "8.24-134035 
BETA", die weiß nichts davon.
von Martin D. (mdewendt)


Lesenswert?

8.40 Labor für die 7690
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.