OpenWRT Hostnames auf Dump-AP anzeigen (bei Mesh Netzwerk)

Auf dem mit OpenWRT umgesetzten Mesh-Netzwerk, gab es bisweilen das Problem, dass die mit dem Dump Access Points verbundenen Geräte schwierig zuzuordnen waren, weil kein Hostname zu diesen Geräten angezeigt wurde.

Im Internet kursieren dafür verschiedene Lösungen, die entweder die /etc/ethers und /etc/hosts dateien neu erzeugen (und immer weiter anschwellen lassen, ohne die alten Daten zu löschen) oder die /tmp/dhcp.leases in regelmäßigen Abständen auf die Dump-AP kopieren. Umständlich, die meisten Scripte füllen die es scheint mir alles eher eine Bastellösung zu sein. Beim nächsten Update sind die Scripte weg und man beginnt von vorne. Eine offizielle Lösung gibt es von OpenWRT erstaunlicherweise nach so vielen Jahren noch immer nicht. 
Ich habe nun eine viel einfachere und pflegeleichtere Möglichkeit gefunden.


Die deutlich elegantere Lösung

dnsmasq auf dem Main-Router als lokalen DNS Server einsetzen. Wir müssen auf den Routern über Software folgende Pakete nachinstallieren: arp-scan findutils-xargs fping gawk.

Auf dem Dump-AP führen wir nun diesen Befehl aus: 
arp-scan -qxlN -I br-lan | awk ‚{print $1}‘ | xargs fping -q -c1

Damit wird ein ARP-Ping an alle möglichen IPs ausgeführt und eine Liste der gefundenen IP- und MAC-Adressen erstellt. awk entfehrt die MAC-Adressen, nur die IPs bleiben bestehen. Mit fping wird ein Reverse-DNS-Lookup auf alle IPs ausgeführt. 
Der Befehl lässt sich nochmal verkürzen, weil arp-scan auch selber direkt Reverse-DNS-Lookups durchführen kann. Der Befehl

 arp-scan -qxdlN -I br-lan

gibt eine Liste mit Domainnamen und der dazugehörigen MAC-Adresse aus. Falls beim Ausführen keine Dateien angezeigt werden, muss auf dem Dump AP unter Network / DHCP and DNS / Forwards / DNS Forwards eine DNS Weiterleitung /*.in-addr.arpa/192.168.21.1 (IP Adresse ersetzen mit IP des Haupt-Routers, wo der DNS Server drauf läuft) eingetragen werden.

Unter Status / Overview / Associated Stations sollten die ? unter Host inzwischen durch Hostnames ersetzt worden sein.

Wenn es so ist, herzlichen Glückwunsch – es hat alles funktioniert. 

Jetzt müssen wir den arp-scan regelmäig durchführen, was wir durch diesen einzutragenen Cron-Job erreichen. System / Scheduled Tasks oder in der shell crontab -e ausführen und folgendes eintragen.

*/2 * * * * arp-scan -qxdlN -I br-lan

 

 

br-lan sollte bei den meisten richtig sein. Weil ich ein separiertes Netz für Gäste eingerichtet habe, wofür ich VLANs verwende, sieht es bei mir etwas anders aus. br-lan.1 für das normale lan interface und br-lan.2 für das guest interface. Die Befehle müssen entsprechend abgeändert werden und der Cron-Job für beide Netzwerke ausgeführt werden. 

Diese Schritte müssen nun auf jedem einzelnen AP durchgeführt werden. Das wars. 

 

Testen

Löschen Sie die ARP-Tabelle, was dazu führt, dass sich alle Hostnamen und IP-Werte beim erneuten Laden auf ? ändern unter:Associated Stations

ip neigh flush all

Die Einträge werden dann über arp_accept / fping, oder beliebigen Standartverkehr, wieder neu aufgefüllt. 

Möglicherweise muss auch ein Neustart durchgeführt werden, wenn Reverse-DNS-Lookups zwischengespeichert wurden.
dnsmasq

Falls es noch nicht klappen sollte…

liegt es wahrscheinlich daran, dass dnsmasq auf dem Main AP nicht richtig eingerichtet ist. Vielleicht helfen die Screenshots meiner DNS-Einstellungen weiter. 

Quellen: 1 2 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Vielleicht gefällt dir auch folgendes?

.user.ini auf NGINX ausblenden

Die „.user.ini“-Datei, die Wordfence erstellt, kann vertrauliche Informationen enthalten, und der öffentliche Zugriff darauf sollte eingeschränkt werden. Wenn NGINX genutzt ist, muss man das selber

Mehr lesen »
WordPress Cookie Plugin von Real Cookie Banner