Geräte im LAN ermitteln
Mi, 8. Februar 2023, Ralf Hersel
Vorgestern wurde in unserem HELP-Raum ein Problem diskutiert, das ich seit einiger Zeit beim Ermitteln der Geräte im lokalen Netzwerk habe. Es empfiehlt sich ein kurzer Blick in diesen Artikel, worin der Anwendungsfall beschrieben wird. Das Problem lag darin, dass nmap zwar die IP der Geräte, jedoch nicht deren Namen ausgab. Das ist ungünstig, weil man der IP nicht ansieht, welches Handy oder welcher Raspi sich dahinter verbirgt.
Im Titelbild könnt ihr das Problem sehen; die IPs und der Up/Down-Status werden angezeigt, aber die Geräte-Namen (in den Klammern) fehlen. Im HELP-Raum konnten einige Teilnehmer:innen das Verhalten bei sich reproduzieren, andere jedoch nicht. Warum ist das so und wie löst man das Problem?
Um es vorwegzunehmen, die Ursache der fehlenden Namen lautet: DNS-Resolver. Zu dieser Thematik gibt es einen Artikel vom Dezember 2022. Das ist auch genau das Datum, seitdem bei mir die Namen nicht mehr angezeigt wurden. Ich hatte zu dieser Zeit auf allen Geräten einen alternativen DNS-Resolver eingetragen, nämlich dnsforge.de. An sich führt das zu keinen Problemen und ist sehr zu empfehlen, ausser beim nmap-Befehl.
Euer Router weiss, wie die Geräte im LAN heissen, falls ihr diese Namen gepflegt habt, oder die Geräte ihren Namen dem Router mitgeteilt haben. Von dort holt der nmap-Befehl die Geräte-Namen. Falls man nmap von einem Gerät aufruft, bei dem ein alternativer DNS-Resolver eingetragen ist, funktioniert es nicht mehr. Deshalb ist es ratsam, den alternativen DNS-Resolver nicht auf den einzelnen Geräten, sondern beim Router einzutragen. Moderne Router bieten diese Option an. Bei meinem Synology-Router sieht das so aus:
Die IP 9.9.9.9 zeigt auf Quad9 und die zweite IP auf DNSforge. Damit ist es überflüssig, auf den einzelnen Geräten andere DNS-Resolver einzutragen. Das gilt aber nicht für den DNS-Resolver-Eintrag im Webbrowser und auf dem Smartphone. Oder anders gesagt, nur das Gerät, auf dem der nmap-Befehl ausgeführt werden soll, darf keinen eigenen DNS-Resolver verwenden. Nachdem man diese Einstellungen korrigiert hat, funktioniert der nmap-Aufruf wieder:
Es empfiehlt sich, den Befehl in die Shell-Konfiguration (.bashrc, .zshrc, usw.) einzutragen, damit man sich bei der nächsten Verwendung nicht an den genauen Befehl erinnern muss:
alias scan='nmap -sn -oG - 192.168.1.0/24'
Statt "scan" könnt ihr einen beliebigen Namen wählen, z. B.: "Wer_lebt_in_meinem_LAN".