FANDOM


pdnsd
Entwickler Thomas Moestl, Paul Rombouts
Aktuelle Version 1.2.9a-par
(17. März 2012)
Betriebssystem Linux, Unixartige, Cygwin, Mac OS X
Kategorie DNS-Proxy-Server
Lizenz GNU General Public License
Deutschsprachig nein
members.home.nl/p.a.rombouts/pdnsd/

pdnsd ist ein Open-Source-Programmpaket für die Namensauflösung im Domain Name System. Sein Name wurde von Thomas Moestl, dem ursprünglichen Entwickler, gewählt. Pdsnd ist ein schlankes Programm, das nur etwa 0,8 Megabyte Arbeitsspeicher (RAM) belegt.

Neben dem Server (pdnsd) umfasst das Programmpaket ein Programm zur Konfiguration (pdnsd-ctl) und eine vollständige Dokumentation. Pdnsd ist hauptsächlich ein DNS Proxy-Server mit Langzeit-Cache-Funktion, da sein Cache auf nichtflüchtige Speicher geschrieben wird (z.B. die Festplatte). Anfänglich wurde er bis 2002 von Thomas Moestl entwickelt und wird seit 2003 bis heute hauptsächlich von Paul Rombouts aktiv betreut. Der Server gilt als voll DNS-RFC kompatibel[1].

Funktionsweise

Nameserver

Nameserver sind Server zur Namensauflösung. Als Nameserver arbeitet pdnsd, indem er zuerst Anfragen über Domainnamen beantwortet, die in seinem eigenen Daten-Cache vorhanden sind. Auf diese Weise beschleunigt pdnsd die Anfragen über FQDN des PCs oder eines Mobilgeräts wie Laptops oder embedded Geräten wie Router.

Resolver

Als Software, vermitteln Resolver zwischen Anwendungen und Nameservern. Ein Resolver erhält die DNS-Anfrage einer Anwendungssoftware und ruft sie von Nameservern als FQDN von bestimmten Nameserver ab, hat er die gewünschte Information nicht in der eigenen Cache-Datei.

Pdnsd ist auch ein DNS-Resolver (von engl. to resolve = auflösen). Als DNS-Resolver löst er Anfragen über FQDN (fully qualified domain names) auf, indem er den entsprechenden Domain von der root-Zone (.) aus zurückverfolgt. Dazu werden DNS-Anfragen von Anwendungssoftware, die nicht aus der eigenen Cache-Datei beantwortbar sind, an externe DNS-Name-Server weitergeleitet. Es können in der Konfigurationsdatei von pdnsd externe DNS-Server nach eigener Wahl festgelegt werden, beispielsweise zensurfreie DNS-Server wie etwa der Swiss Privacy Foundation[2] (:)

server { label="SwissPrivacyFoundation";  
ip="62.141.58.13";  
port=110;  }

oder alternative Root-Nameserver:

server { label="alt-root-servers";  
root_server=on;
  ip =   "216.87.84.214"  // .oss .parody
  ,      "66.244.95.11"   // .gopher
  ,      "202.83.95.229"  // .free, .geek, .indy, .null
port=110;  }

Positiv erhaltene Rückantworten werden der jeweiligen Anwendungssoftware beantwortet und in den internen Langzeit-Cache, meist auf der Festplatte des Computer-Systems, geschrieben. Pdnsd erlaubt die gleichzeitige Abfrage mehrerer externen DNS-Server, damit spät antwortende oder unerreichbare DNS-Server die Namensauflösung nicht verlangsamen.

Cache

Pdnsd ist ein DNS-Cache (von engl. to cache = zwischenspeichern, puffern). Als DNS-Puffer-Speicher (Cache) schreibt pdnsd die aufgelösten FQDN-Anfragen in einen Datenspeicher (Cache), üblicherweise die System-Festplatte. Wird die voreingestellte Cache-Größe überschritten, werden älteste Puffer-Einträge verworfen, was auch mit Domainnamen-Einträgen passiert, deren Time to Live (TTL) abgelaufen ist. Pdnsd pflegt einen negativen Cache, der fehlgeschlagene Abfragen listet (negative caching).

Konfigurationsdatei (pdnsd.conf)

Pdnsd kann mit Hilfe eines Texteditors und der Konfigurationsdatei pdnsd.conf eingestellt werden. Dazu muß der Server gestoppt und nach Einstellungsänderung neu gestartet werden. Mittels der Software pdns-ctl (pdnsd-control), die im pdnsd-Software-Packet enthalten ist, kann pdnsd aber auch zur Laufzeit konfiguriert werden. Alle Informationen zur Konfigurationsdatei sind von der Projektseite abrufbar[2].

Die Konfigurationsdatei ist in verschiedene Abschnitte unterteilt:

eine global {} Section - generelles Verhalten des pdnsd-Servers
global { 
    perm_cache=2048; 
    cache_dir="/var/cache/pdnsd"; 
    run_as="pdnsd"; 
    status_ctl=on; 
    paranoid=on; 
    randomize_recs=on; 
    run_ipv4=off;  // on for IPv4 Support only 
            // off for IPv6 DNS Server IPs  
    query_method=tcp_only; 
    tcp_qtimeout=60;  // timeout for tcp dns queries. 20 seconds 
    timeout=65;  // Global timeout option (21 seconds). 
    min_ttl=900;  // Retain cached entries at least 15 minutes. 
    max_ttl=604800;  // One week. 
    server_ip ="127.0.0.1";  // Use eth0 here if you want to allow other 
              // machines on your network to query pdnsd. } 
mehrere server {} Sectionen - Parallele Abfrage definierter DNS-Server nach Rang
(siehe oben)
mehrere rr {} Sectionen - Definition von lokal bedienten Resource Records, z.B. 1.0.0.127.in-addr.arpa. und localhost. etc..
rr { name=localhost; 
    reverse=on; 
    a=127.0.0.1; 
    owner=localhost; 
    soa=localhost,root.localhost,42,86400,900,86400,86400; } 
mehrere neg {} Sectionen - Blockierung von Resource Records
neg { name=bad.server.com;  // Badly behaved server you don't want to connect to. 
    types=A,AAAA; } 
mehrere source {} Sectionen - Einlesen von Resource Records aus Dateien
source { 
    ttl=86400; 
    owner=localhost; 
    serve_aliases=on; 
    file="/etc/hosts"; } 
eine include {} Section - Zugriff auf andere Konfigurationsdateien

Lizenz

Pdnsd ist unter der GNU General Public License (GPL) lizenziert.

Weblinks

Quellen

  1. RFCs:1034,1035,2181 [1]
  2. pdnsd Documentation (engl.)

Störung durch Adblocker erkannt!


Wikia ist eine gebührenfreie Seite, die sich durch Werbung finanziert. Benutzer, die Adblocker einsetzen, haben eine modifizierte Ansicht der Seite.

Wikia ist nicht verfügbar, wenn du weitere Modifikationen in dem Adblocker-Programm gemacht hast. Wenn du sie entfernst, dann wird die Seite ohne Probleme geladen.