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.