hostname aller ESP32-xx im Fritzbox-Mesh "verlorengegangen"

#7970488
Lesenswert?

Ich habe in meinem Netz 10+ ESP32 laufen. Die meisten selbst programmiert, aber auch 3 ESP32-Cams mit "AI on the edge" drauf. Alle laufen seit Jahren problemlos :-) Aber: mein Heimnetz ist gewachsen und bestand zuletzt aus 3 Fritzboxen auf verschiedenen Etagen die jeweils ein eigenständiges Wifi Netz aufgespannt haben. Alle in einem LAN verbunden. Dieser Zustand hat mir nicht mehr gefallen, und ich habe die Fritten jetzt zu einem Mesh zusammengefasst und habe seitdem ein "Problem". ALLE ESP32 werden in der Fritzbox (Mesh-Master) in der Liste der Netzwerkteilnehmer nicht mehr mit dem ihnen in der SW zugewiesenen "hostname" angezeigt, sondern mit dem Default-Hostname (ESP32-xxxxxx), wobei die x für die letzten 3 Byte der MAC Adr. stehen. Funktional hat das erst mal keine Auswirkungen, aber bei der Anzahl der Geräte ist es sehr unübersichtlich geworden.

Wenn ich ein nslookup auf eine IP-Adr. eines solchen clients mache erhalte ich auch 2 Einträge:

1
20.10.168.192.in-addr.arpa  name = esp32s2-4A8502.fritz.box.
2
20.10.168.192.in-addr.arpa  name = wortuhr.fritz.box.

Leider verwendet die Fritzbox ausgerechnet den falschen Namen.

Hat jemand eine Idee, wie man dem beikommen kann? (außer in der Fritte händisch die Namen zu ändern)

Gruß Reiner

: Bearbeitet durch User
#7970530
Lesenswert?

Reiner J. schrieb:

Wenn ich ein nslookup auf eine IP-Adr. eines solchen clients mache erhalte ich auch 2 Einträge:

1
> 20.10.168.192.in-addr.arpa  name = esp32s2-4A8502.fritz.box.
2
> 20.10.168.192.in-addr.arpa  name = wortuhr.fritz.box.
3
>

Der Reverse-Lookup (PTR) den du da gemacht hast ist in erster Näherung egal. Also so halbwegs.

Wichtig ist erst mal der normale Lookup (A). Am besten mit Debug-Ausgabe und expliziter Angabe des DNS-Servers (als IP-Adresse der FB, nicht als Name):

nslookup -d wortuhr 192.168.10.1

Wird die IP 192.168.10.20 gefunden ist erst mal alles ok.

Leider verwendet die Fritzbox ausgerechnet den falschen Namen.

Die FB verwendet den Namen soweit ich weiß nur für zwei Dinge

  1. Zum Anzeigen, Logs, etc. in der FB - kann dir in erster Näherung auch egal sein. Ist ein "Schönheitsding".

  2. Wenn ein Host per DHCP auch nach seinem Namen fragt

Nun brauch ein Embedded Host wie ein ESP32 seinen Hostnamen auch nur für Anzeigendinge, Logs, etc. Also sollte der Hostname für die Funktion nicht wichtig sein.

Hat jemand eine Idee, wie man dem beikommen kann? (außer in der Fritte händisch die Namen zu ändern)

Also ich würde es erst mal ignorieren. Ansonsten, es sind nach deiner Aussage nur ein paar ESPs. Es ist nicht die Welt die händisch zu ändern.

Du kannst dir natürlich die DHCP/DNS Settings der FB anschauen. Wenn die zwei Namen nicht im Web-Interface auftauchen, dann generiere dir die Supportdaten:

https://fritz.box/#support

In der Textdatei dann nach

BEGIN SECTION dhcpd

suchen. Da sollten alle Namen, IP-Adressen etc. stehen die der kombinierte DHCP/DNS-Server der FB von Hosts kennt.

: Bearbeitet durch User
#7970570
Lesenswert?

@pnuebergang @oszi45

nslookup -d wortuhr 192.168.10.1

funktioniert. Und ja, das Ganze ist "mehr oder weniger" ein Schönheitsding. Aber bei sehr vielen und auch immer wieder wechselnden/neuen Clients im Netz ist es nicht mehr nur einfach ein Schönheitsding. In einer Liste von wechselnden MAC-Adressen blickst du halt nicht mehr durch wer wer ist. Hier wäre es ja auch schon hilfreich wenn man dem ESP abgewöhnen könnte, seinen Default-Namen zu veröffentlichen, zumindest wenn es einen zugewiesenen hostname gibt. Aber dazu habe ich nichts gefunden.

https://fritz.box/#support https://fritz.box/#/support

Diese Seite gibt es leider in meiner FB7590 (Mesh-Master) nicht. Ich habe eine 1&1 gebrandete. Und originalen FB's sind Mesh-Clients, da ist DHCP natürlich aus.


Und da ist auch noch ein weiteres (Namens-)Problem (nur) im Mesh dazugekommen:

Einige ESP32 nutzen die FB als NTP-Server. Mit den Standalone-FBs konnte ich als NTP-Server "fritz.box" verwenden. Seit der Umstellung auf Mesh funktioniert das nicht mehr. Es funktioniert nur noch mit der IP-Adr. irgendeiner(!) FB im Mesh, aber nicht mehr mit dem Namen. Dabei ist es egal, ob so ein Client mit einem Mesh-Repeater, oder mit dem Mesh-Master verbunden ist. Außerdem auffällig: bei NTP-Servern im Internet funktioniert die Namensauflösung, die Angabe von z.B. de.pool.ntp.org funktioniert, nur eben fritz.box im Mesh nicht mehr. Und der lokale Nameserver ist der Mesh-Master selber.

Auch hier gibt's einen Workaround, natürlich, aber halt nicht schön.

#7970578
Lesenswert?

Beim NTP kann ich Fritz verstehen. Zwischen den einzelnen Fritzen gibt es ja eine Laufzeit, die bei Mesh evtl. verschieden werden könnte und falsche Zeiten haben mir schon viel Ärger beschert. Deswegen ist die IP wahrscheinlich die bessere, eindeutige Fritz-Variante (weil es zu viele Fritze gibt).

#7970617
Lesenswert?

Reiner J. schrieb:

Einige ESP32 nutzen die FB als NTP-Server. Mit den Standalone-FBs konnte ich als NTP-Server "fritz.box" verwenden. Seit der Umstellung auf Mesh funktioniert das nicht mehr. Es funktioniert nur noch mit der IP-Adr. irgendeiner(!) FB im Mesh, aber nicht mehr mit dem Namen.

Ich habe auch ein Mesh mit zwei Fritzen und zwei Repeatern und verwende als NTP-Server ntp.fritz.box bei meinen ESPs. Das funktioniert einwandfrei.

#7970643
Lesenswert?

[GELÖST]

Ich habe die Lösung bei Espressif gefunden:

Wenn man einen hostname vergeben will, muss man das als allererste Aktion tun, bevor man am Wifi-Interface IRGENDETWAS (!) anderes konfiguriert und ggf. vorher Wifi komplett neu initialisiert "WiFi.mode(WIFI_MODE_NULL);" falls das Interface bereits z.B. als Accesspoint schon in Betrieb war - und nicht nur einfach umkonfiguriert.

Das hat gleich beide Probleme behoben: nslookup liefert nur noch den zugewiesenen hostname, und nicht mehr auch noch zusätzlich den Default. Und die Namensauflösung für den internen NTP server funktioniert auch im Mesh.

Dann hat es vorher alles nur "zufällig" funktioniert. Wie leider auch bei vielen anderen, z.B. die von mir verwendeten AI-on-the-Edge Clients.


PS wie markiert man in diesem Forum [Gelöst]? Ich habe andere Beiträge gefunden, wo der Titel entsprechend geändert war wie ich das kenne. Geht aber in diesem Forum nur 60 Minuten lang...

: Bearbeitet durch User
#7970747
Lesenswert?

Reiner J. schrieb:

Oliver S. schrieb:

Hm. Der Zeitserver horcht offiziell unter fritz.box.

So ist mir das auch bekannt. Aber der Test zeigt, dass ntp.fritz.box hier AUCH funktioniert.

@Helmut wie bist du darauf gekommen?

Woher ich das habe, weiss ich nicht mehr. Irgendwo in den Weiten des Internets gelesen. Möglicherweise auch in einem Beispielprogramm. Nun steht es so in meiner credentials.h, worin alle WiFi-, MQTT-, NTP- und sonstige IPs und Passwörter niedergeschrieben sind. Habe dazu im Arduino-Lib-Verzeichnis ein Directory namens "credentials" erzeugt und darin steht die Headerdatei. Brauche ich nur jedes mal einzubinden und mich nichtmehr um jeden Schmonz einzeln kümmern. Und ich habe den Vorteil, dass ich mich bei der Weitergabe von Programmen nicht um irgendwelche versteckte Passwörter kümmern muss.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren