Pi-Hole als DNS-Resolver mit Problemen?

Hintergundgeschichte:

Ich habe für meine Famillie einen kleinen Home-Server errichtet der als NAS und DNS-Resolver (Pi-hole) genutzt wird. Das Pi-Hole nutzen ALLE Geräte im Netzwerk.

Es gibt jetzt aber zwei Probleme wo ich nicht genau weiß warum oder was das ist.

Mir wurde berichtet, dass ein Laptop teilweise nur sehr langsam Domains auflösen konnte und es sich auch nicht direkt mit dem Netzwerklaufwerk verbinden konnte (ob das jetzt mit Pi-hole zusammenhängt weiß ich nicht) und damit das Netzwerklaufwerk wieder funktioniert brauchte es einen Neustart des Netzwerkes. Das war bis jetzt, soweit ich weiß nur einmal von dem her habe ich es jetzt in den Hintergrund geschoben. Bei der langsamen DNS auslöfung konnte ich selber noch nicht bemerken und auch zu diesem Zeitpunkt wo das Problem bestand konnten die Anfragen vom Pi-Hole von diesem besagten Gerät eigentlich recht schnell bearbeitet werden. Also stecke ich hier jetzt auf dem Schlauch woran, dass problem liegen kann.

So und jetzt zum zweiten größerem Problem: Ein Smartphone (Huawai) kann sich nicht mehr mit dem W-Lan verbinden, ob das jetzt ein anderes Problem ist oder mit dem Pi-Hole und den veränderten Einstellungen zusammen hängt kann ich auch nicht sagen. (Beim Router wurde nur der DNS-Resolver verändert).

Ich bräuchte mal eure Hilfe wo ich weiter forschen könnte um diese Probleme zu beheben.

Server, Internet, WLAN, Linux, Netzwerk, DNS, IP-Adresse, Router, DNS Server, OMV, Openmediavault, Pi Hole, pihole
DNS Server | BIND/Unbound - mit PiHole | öffentlich mit DoT und AUTH?

Moinsen, habe die Idee, den lokalen RasPi PiHole DNS Server auf meinem RS umzusetzen.

Da stellt sich mir die Frage, wie ich das am besten umsetze.

Mein Ziel wäre es, egal wo ich bin, unabhängig von meinem Heimnetz meinen DNS Server / PiHole nutzen zu können.

Dementsprechend würde ich gerne auf meinem Server sozusagen öffentlich im Internet einen DNS Server aufsetzen.

Dieser soll quasi wie PiHole mit den Listen funktionieren. Sowie am besten noch wie über Unbound dann DoT, DNSSEC und Recursive Resolver sein um damit noch besseren Datenschutz zu bieten.

Außerdem soll dieser dann am besten erstmal nur für mich bzw. mein Mobilgerät nutzbar sein. Irgendwie über Login Daten oder ähnliches. Sodass ich sobald ich mein Heim WLAN verlasse, automatisch zu meinem DNS Server switche und quasi alles so weiter läuft.

Dementsprechend per DoT mit DNSSEC usw.

Wie setze ich das am besten um?

Neben der Umsetzung ist natürlich Sicherheit bei mir noch mit oberstes Gebot. Wenn da nicht alles sicher konfiguriert ist, lasse ich das nicht einfach so laufen.

Hab da schon ein Mal ne Fehler gemacht, indem ich meinen Server damals als NTP Server aufgesetzt hatte und dann erstmal nen 5GBit/s DDoS hatte..

Dementsprechend definitiv nicht nochmal.

Freue mich über Antworten mit Erfahrungen oder Links zum nachlesen oder ähnliches.

Danke euch 👍🏼

Server, Internet, WLAN, Netzwerk, DNS, FRITZ!Box, IP-Adresse, bind, dot, pihole
Windows PCs erreichen manche Websites nicht oder auch den Drucker etc?

Moin zusammen,

also ich selbst bin seit vorgestern sogar ausgelernter FISI, trotzdem weiß ich nicht mehr weiter.

Das Heimnetz (verwaltet mein Vater, der ist aber kein ITler) hat zurzei das Problem, dass die Windows PCs nicht auf manche Websites kommen oder auch das Drucken nicht immer geht. Auch geht der Zugriff auf die FritzBox nicht immer von denen aus.

Alle Macs, iPhones und iPads die wir im Netz haben, haben keinerlei Probleme.

Die Windows Rechner erreichen Websites wie Youtube, Google oder Gutefrage, aber etwas die Geizhals als beispiel oder auch Steam und Discord nicht.

Was schon versucht wurde:

FritzBox firmware zurücksetzen

IPv6 deaktivieren und nur IPv4 (dann hat der PC ein nicht identifiziertes Netzwerk gehabt)

DNS auf die von google umstellen, auch den zweiten DNS von google

PCs neustarten :)

Netzwerkadapter deaktivieren und wieder aktivieren

FritzBox neustarten

und alle anderen Möglichkeiten gefühlt

Das Netzwerk ist nach dem Router mit einem Hauptswitch im Keller und dahinter ein Patchpanel ausgestattet. Dann gibt es im Haus 2 APs und 3 Switches (Mein Zimmer, Zimmer meines Bruders und Büro). Die APs sind von FritzBox, die Switches sind von UniFi und TP-Link.

Ich habe wie gesagt, trotz des Fakts, dass ich der einzige ITler im Haus bin keinerlei Möglichkeiten, was die Verwaltung des Netzwerks angeht. Jedoch hab ich trotzdem gerade keine Ideen mehr, an was es liegen könnte, evtl. fällt einem von euch etwas ein?

Besten Dank fürs lesen

Internet, Internetverbindung, DNS, FRITZ!Box, LAN, Netzwerktechnik
Wie sende ich DNS Cookies mit dnslib?

Ich möchte mit dnslib die DNS-Antworten von den jeweiligen Anfragen mit einem DNS-Cookie versehen. Ich habe auch bereits etwas dafür in meinen Code implementiert, jedoch funktioniert das noch nicht so. Kann mir jemand sagen, was ich da brauche?

Der Code:

import socket
from dnslib import *

DNS_PORT = 53

dns_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
dns_socket.bind(('', DNS_PORT))

print(f"DNS-Server hört auf Port {DNS_PORT}...")

def dns_forward(domain):
    try:
        ip_address = socket.gethostbyname(domain)
        return ip_address
    except socket.error:
        return '185.199.111.153' #Error 404

while True:
    data, address = dns_socket.recvfrom(1024)

    dns_message = DNSRecord.parse(data)
    dns_request = str(dns_message.q.qname)
    
    dns_answer = dns_forward(dns_request)
    
    client_ip = address[0]
    client_port = address[1]

    dns_cookie = ("4096")

    if client_ip == '192.168.0.113'
        dns_response = DNSRecord(DNSHeader(id=dns_message.header.id, qr=1, aa=1, ra=1), q=dns_message.q)
        dns_response.add_answer(RR(dns_request, QTYPE.A, rdata=A(dns_answer)))
        dns_response.add_ar(RR(dns_request, QTYPE.OPT, rdata=TXT(dns_cookie)))
        dns_socket.sendto(dns_response.pack(), address)
    
    print(f"DNS-Anfrage von {client_ip} mit Port {client_port} für {dns_request} die Antwort ist {dns_answer}")

Die Fehlermeldung:

Traceback (most recent call last):
 File "c:\Users\Stoppersocke\Documents\Projects\MDM Bypass\test5.py", line 35, in <module>
  dns_socket.sendto(dns_response.pack(), address)
           ^^^^^^^^^^^^^^^^^^^
 File "C:\Users\Stoppersocke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\dnslib\dns.py", line 339, in pack
  ar.pack(buffer)
 File "C:\Users\Stoppersocke\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\dnslib\dns.py", line 885, in pack
  for opt in self.rdata:
TypeError: 'TXT' object is not iterable
DNS, Netzwerktechnik, Programmiersprache, Python, DNS FEHLER, DNS Server, Python 3

Meistgelesene Fragen zum Thema DNS