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
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
Raspberry Pi nur noch unter IP erreichbar, lDomain Name geht nicht?

Guten Abend!
Folgendes Problem stellt sich mir. Ich habe auf einem RPi 3B+ einen Apache2 Server installiert. Den kann ich auch erreichen. Vor einigen Monaten ging das über die IP 192.168.178.37, "localhost" und raspberrypi. Egal was man in die Adressleiste des Browsers eingegeben hat, man ist immer zur "It Works" Startseite des Apache2 Servers gekommen. Seit einiger Zeit aber kann ich per Browser den Pi nur noch per IP erreichen.

Fehlermeldung localhost: Firefox kann keine Verbindung zu dem Server unter localhost aufbauen.

Fehlermeldung raspberrypi: Die Server-IP-Adresse von raspberrypi wurde nicht gefunden. DNS_PROBE_FINISHED_NXDOMAIN

Gebe ich dahinter noch einen Pfad ein, also z. B. http://raspberrypi/black.php, so bekomme ich nur die 0815 404 not found Meldung.

Ich hatte mal ein Pi-Hole installiert, dieses ist aber wieder deinstalliert und der Fehler besteht weiterhin.

Folgende Einstellungen in meiner Fritzbox:

  • Internet > Zugangsdaten für DNSv4 und v6 "Vom Internetanbieter zugewiesene DNSv4-Server verwenden (empfohlen)" vorher hatte ich die IP meines Pis wegen des Piholes drinnen. Da bestand aber auch der Fehler.
  • Heimnetz > Netzwerk > IPv4 Adressen, dort ist "DHCP-Server aktivieren" ausgewählt und im Feld für "Lokaler DNS Server" steht die IP der Fritzbox drinnen.

=> Über den Browser (Opera, Firefox, Chrome...) kann ich den Pi nur per IP ansprechen, meine Handy App, kann aber weiterhin die URLs mit dem Domain Name raspberrypi verwenden.

public void doWhite(@Nullable View view) {

    new AsyncWhite().execute("http://raspberrypi/white.php");
}

Wo liegt also mein Fehler?

Ich bin auf jeden Fall dankbar für eure Antworten!

Server, Computer, Technik, Linux, DNS, FRITZ!Box, Technologie, DNS Server, Raspberry Pi, Spiele und Gaming

Meistgelesene Fragen zum Thema DNS Server