Top clients: Nur localhost mit Pihole und TP-Link Archer C7 AC1750 Router

Hi, auf diversen Seiten und Foren habe ich nach möglichen Fehlern in meiner Konfiguration gesucht. Auch hier im Forum habe ich einige Posts durchforstet und kam zu keinem Ergebnis.

Mein Setup

  • Internet <- VF Router/Mode <- TP-Link Router <- Clients (PC, Notebooks, etc.)
  • TP-Link ist DHCP Server und verteilt nur die eine pihole Adresse an die Clients
    TP-Link Archer C7 AC1750
    Firmware Version: 3.14.3 Build 150427 Rel.36706n
    Hardware Version: Archer C7 v2 00000000
  • das Blockieren von Werbung funktioniert
  • Raspi3 ist das aktuelle Raspberry Pi OS Lite wo nur pihole per Automationsscript installiert ist und libnss-winbind
  • Pi-hole [v5.8.1] FTL [v5.13] Web Interface [v5.10.1]
  • Upstreamserver ist Google, in Advanced DNS settings sind die ersten 3 Checkboxen aus (Never forward non-FQDN A and AAAA queries, Never forward reverse lookups for private IP ranges, Use DNSSEC) und Conditional forwarding ist an
  • von meinem PC aus kann ich den DNS Namen vom pihole per ping und nslookup auflösen

Debug token: eMNREeE4

Ich nutze pihole schon seit einigen Jahren und es hat in dem Setup nie funktioniert die Namen im Dashboard zu sehen. Da ich den raspi kürzlich frisch installiert habe, ist es mir wieder aufgefallen und würde es diesmal gern lösen. :slightly_smiling_face:

Ich bin nicht sicher, ob ich Dein Problem richtig verstanden habe:
Geht es um die Auflösung lokaler Namen, oder um lauter (zu viele?) Anfragen von localhost?

Ich gehe hier erst einmal vom ersteren aus.

Zunächst einmal ist Voraussetzung für die Auflösung individueller Namen, dass die Clients in Deinem Netzwerk DNS-Anfragen direkt an Pi-hole schicken, was bei Dir wohl der Fall ist (Wenn sie stattdessen die Anfragen an den Router schicken und der diese dann an Pi-hole weitersenden würde, sähe Pi-hole entsprechend natürlich nur Anfragen Deines Routers.).

Bei Dir senden Clients DNS-Anfragen direkt an Pi-hole, und über Conditional Forwarding hast Du Pi-hole korrekt angewiesen, die Auflösung lokaler Namen an Deinen Router weiterzuleiten - und dieser liefert in Deinem Fall NXDOMAIN als Antwort zurück:

*** [ DIAGNOSING ]: Pi-hole log
-rw-r--r-- 1 pihole pihole 51K 20. Jan 01:28 /var/log/pihole.log
   -----head of pihole.log------
   Jan 20 01:15:02 dnsmasq[5509]: query[AAAA] pi3-pihole.sf.local from 192.168.69.98
   Jan 20 01:15:02 dnsmasq[5509]: forwarded pi3-pihole.sf.local to 192.168.69.1
   Jan 20 01:15:02 dnsmasq[5509]: reply pi3-pihole.sf.local is NXDOMAIN

Du kannst das selbst überprüfen, indem Du eine DNS-Auflösung für einen lokalen Namen über die IP-Adresse Deines Routers versucht:

nslookup <hostname> 192.168.69.1

<hostname> ist dabei durch einen passenden lokalen Namen zu ersetzen.

Es kann durchaus vorkommen, dass Router den bei der DHCP-Registrierung vom Client gemeldeten Hostnamen nicht in ihren internen DNS-Server übernehmen, was dann zu dem von Dir beobachteten Verhalten führt.
Beispiele hierfür wären bestimmte Modelle von Mikrotik oder auch Ubiquiti. Stellenweise lässt sich das auf dem Router durch Installation eines Skripts oder den Wechsel des DHCP-Servers beseitigen.
Ob das für Dein Modell möglich ist, solltest Du über die Dokumentations- und Supportkanäle Deines Routerherstellers herausfinden können.

Alternativ kannst Du auch den DHCP-Server Deines Routers abschalten und Pi-hole als DHCP-Server verwenden.

Vielen Dank @Bucking_Horn für die sehr sehr schnelle Antwort. Deine Annahme ist korrekt, mir geht es um die Auflösung lokaler Namen.

Das Problem sieht so aus auf meinem Dashboard so aus:

Interessanterweiße scheint nslookup nicht richtig zu klappen?

C:\Users\Sten>nslookup shelf-pc 192.168.69.1
Server:  localhost
Address:  192.168.69.1

*** shelf-pc wurde von localhost nicht gefunden: Non-existent domain.

Mein Router hat leider nur die Einstellung für den DHCP-Server:


Allerdings kennt der Router die DNS Namen, daher nahm ich an, dass es funktionieren sollte?

Was müsste ich tun um wenigstens wieder die IP's der Geräte zu sehen? Entfernen des Conditional Forwarding, einschalten der beiden Advanced Features mit anschließendem Flush network table, Flush logs (last 24hours), Restart DNS resolver und Restart system ließen bisher trotzdem "nur" localhost zurück?

Das Ergebnis einer direkten DNS-Anfrage für einen solchen bekannten Namen zeigt, dass diese Annahme in Bezug auf den DNS-Teil verworfen worden muss.

Der DHCP-Server Deines Routers kennt zwar die Namen, und er zeigt sie auch an, aber wie bereits erwähnt:

Falls einer unseren Nutzer dasselbe Router-Modell wie Du verwendet und eine funktionierende Lösung dafür kennt, würde es vielleicht helfen, wenn Du zusätzlich zum Hersteller auch Name, Modell und ggf. Firmware-Version nennen würdest, möglichst im Titel.

Das sieht so aus, als würde Pi-hole localhost als Anzeigename für verschiedene IP-Adressen(?) verwenden (und damit nach einem zusätzlichen Problem).

Welche IP-Adressen stecken denn hinter den verschiedenen Einträgen?

echo ">top-clients >quit" | nc localhost 4711

Hi @Bucking_Horn

  • den Titel hab ich soweit aktualisiert
  • Schade, dass meine Annnahme bzgl. der DNS Namen mit meinem Router falsch war :sweat_smile:
  • Output des gefragten Komandos:
pi@pi3-pihole:~ $ echo ">top-clients >quit" | nc localhost 4711
0 2042 192.168.69.108 localhost
1 1252 192.168.69.109 localhost
2 1087 192.168.69.112 localhost
3 371 192.168.69.104 localhost
4 348 192.168.69.106 localhost
5 291 192.168.69.105 localhost
6 280 192.168.69.110 localhost
7 251 192.168.69.107 localhost
8 148 127.0.0.1 localhost
9 78 192.168.69.98 pi.hole
  • Diese Anzeige trat bei mir auch mit der seeehr alten Pihole Version früher auf, wenn ich Conditional Forwarding verwendet habe und danach hab ich es nicht wieder weg bekommen. Damals hab ich den raspi daraufhin neu installiert und Conditional forwarding nicht wieder verwendet
  • Ohne Conditional forwarding und mit den beiden anderen checkboxen sieht es übriges so aus :sweat_smile:

Das lässt mich vermuten, das auch hier Dein Router verantwortlich ist:
Wahrscheinlich wird er sogenannte Rückwärtsanfragen (reverse lookups) für IP-Adressen durchgängig mit localhost beantworten.

Das solltest Du z.B. wie folgt überprüfen können:

nslookup 192.168.69.105 192.168.69.1

Statt .105 kannst Du hier auch andere private IPs einsetzen.

Sieht so aus, als wäre deine Annahme korrekt @Bucking_Horn :smile:

C:\Users\Sten>ping -a 192.168.69.105

Ping wird ausgeführt für SHELF-PC [192.168.69.105] mit 32 Bytes Daten:
Antwort von 192.168.69.105: Bytes=32 Zeit<1ms TTL=128
Antwort von 192.168.69.105: Bytes=32 Zeit<1ms TTL=128
Antwort von 192.168.69.105: Bytes=32 Zeit<1ms TTL=128
Antwort von 192.168.69.105: Bytes=32 Zeit<1ms TTL=128

Ping-Statistik für 192.168.69.105:
    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
    (0% Verlust),
Ca. Zeitangaben in Millisek.:
    Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms

C:\Users\Sten>nslookup 192.168.69.105 192.168.69.1
Server:  localhost
Address:  192.168.69.1

Name:    localhost
Address:  192.168.69.105
  • Könnte es sein, dass die Antwort so zurück kommt, weil auf jedem Client aktuell DNS falsch konfiguriert ist? :thinking:
  • Nachdem ich das Conditional Forwarding entfernt habe, bekomme ich die IP's wieder im Dahsboard angezeigt :grin:
  • In der Zwischenzeit habe ich dem TP-Link Support geschrieben, sollt etwas dabei herauskommen, werde ich es hier posten

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.