Dies ist eine alte Version des Dokuments!
PowerDNS authoritative
PowerDNS Server ist ein unter der GNU General Public License veröffentlichter Nameserver der auf allen verbreiteten Betriebsystemen eingesetzt werden kann. PowerDNS Recursor ist ein rekursiver bzw. caching-only Nameserver der seperat erhältlich ist, aber auch im Hauptpaket enthalten ist.
Links
- poweradmin - ein web interface für PowerDNS
- izidns ein web interface für PowerDNS (basiert auf PowerAdmin)
backends
Verfügbare Backends:
name | Funktion |
---|---|
bind und bind2 | Liest Zonendaten aus einer Zonendatei des weit verbreiteten BIND Nameservers |
db2 | Kann Anfragen aus einer IBM DB2-Datenbank beantworten |
geo | Erlaubt je nach IP-Adressen Bereich oder geographischer Herkunft der IP-Adresse verschiedene Antworten zurückzusenden |
gmysql | Verwendet MySQL als Datenbank |
gpgsql | Verwendet PostgreSQL als Datenbank |
goracle | Verwendet Oracle als Datenbank |
gsqlite | Verwendet SQLite als Datenbank |
ldap | Holt Informationen aus einem hierarchisch strukturierten LDAP-Verzeichnis |
odbc | Greift auf Zoneninformationen in einer von ODBC unterstützten Datenbank zu. Diese Methode ist nur mit Windows als Betriebssystem möglich] |
opendbx | Ein auf Geschwindigkeit, Lastverteilung und Ausfallsicherheit optimiertes Datenbank Backend, das auf der OpenDBX Bibliothek aufbaut und MySQL, PostgreSQL, SQLite, Firebird, Interbase, Microsoft SQL Server und Sybase ASE Datenbanken unterstützt |
pipe | Fragt einen Koprozess nach Antworten auf DNS-Anfragen |
random | Generiert zufällige Antworten (nur zum Testen sinnvoll) |
management von der CLI
dnssec
pdnsutil secure-all-zones pdnsutil rectify-all-zones
https://www.sidn.nl/en/modern-internet-standards/dnssec-on-the-powerdns-authoritative-server
management aus ansible heraus
zone export
pdnsutil list-all-zones [master|slave|native]
https://real-activities.com/~phrank/host/powerdns.html
Schleife mit „dig -t axfr $Zone @$DNS:
#!/bin/bash axfr_from="127.0.0.1" zone_backup_file="pdns_fullbackup.txt" set -e -o pipefail function cleanup { EXIT_CODE=$? set +e # disable termination on error rm "$exportfile" rm "$exportfile_sorted" exit $EXIT_CODE } trap cleanup EXIT exportfile=$(mktemp) exportfile_sorted=$(mktemp) # old versions: # pdnssec list-all-zones > "$exportfile" pdnsutil list-all-zones > "$exportfile" cat "$exportfile" | grep -v "All zonecount" | sort > "$exportfile_sorted" while read -r zeile ; do dig -t axfr "$zeile" @$axfr_from >> "$zone_backup_file" done < "$exportfile_sorted"
via API:
GET /servers/{server_id}/zones GET /servers/{server_id}/zones/{zone_id}
Lua
PowerDNS recursor
recursor flush zone
rec_control wipe-cache $domain
recursor dump cache into file
rec_control dump-cache /tmp/dns-cache
dnssec validierung
Standardmäßig führen leider Validierungsfehler nicht zu SRVFAIL, dieses Verhalten lässt sich mit der Option dnssec anpassen:
dnssec validate
dnsdist
Statistiken anzeigen
powerdns config:
- controlSocket("127.0.0.1")
- setKey("your_secret_key")
dnsdist -c dumpStats()
Split-DNS
- switch pools via lua (depending on source IP of client)
- rewrite queries with static values (lua)
- delegate to a different (internal?) DNS-Server depending on asked domain