BIND9 DNS Server Installation und Konfiguration auf Ubuntu | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

303 Dokumentationen verfügbar

Wissensdatenbank

Bind9 DNS Server Installation Konfiguration

Zuletzt aktualisiert: 05.04.2026 um 19:42 Uhr

BIND9 DNS Server Installation und Konfiguration auf Ubuntu

Was ist BIND9?

BIND9 (Berkeley Internet Name Domain) ist der älteste und beliebteste DNS-Server für Linux und Unix-Systeme. BIND wird von der Internet Systems Consortium (ISC) entwickelt und ist in etwa 90% aller DNS-Server weltweit installiert. BIND9 ist ausgesprochen zuverlässig, skaliert auf Millionen von Domains und unterstützt alle modernen DNS-Features wie DNSSEC, IPv6, Zone Transfers und vieles mehr.

💡 Tipp: BIND9 ist kostenlos, Open Source und Production-ready. Es wird von großen Unternehmen wie Google, AWS und Microsoft für ihre DNS-Infrastruktur verwendet (teilweise als Basis).

Anwendungsfälle für BIND9

Anwendungsfall Beschreibung
Interner DNS DNS für interne Netzwerke ohne Internet-Zugang
Authoritative Zone Authoritative DNS für eigene Domains
Caching Resolver Recursive DNS-Server für schnellere Anfragen
Split DNS Unterschiedliche DNS-Antworten für interne/externe Anfragen
Master-Slave DNS Zone-Synchronisierung zwischen mehreren DNS-Servern

Installation auf Ubuntu

# BIND9 und Tools installieren
sudo apt update
sudo apt install bind9 bind9-utils bind9-doc -y

# BIND9 Service starten und aktivieren
sudo systemctl start bind9
sudo systemctl enable bind9

# Status überprüfen
sudo systemctl status bind9

# Version überprüfen
named -v

# Wichtige Dateien
ls -la /etc/bind/

# Konfiguration überprüfen
sudo named-checkconf /etc/bind/named.conf

BIND9 als Caching Resolver konfigurieren

# /etc/bind/named.conf.options bearbeiten
sudo nano /etc/bind/named.conf.options

# Beispielkonfiguration:
options {
    directory "/var/cache/bind";

    listen-on { 127.0.0.1; 192.168.1.10; };
    listen-on-v6 { ::1; };

    recursion yes;
    allow-recursion { 127.0.0.1; 192.168.1.0/24; };

    forwarders {
        8.8.8.8;
        8.8.4.4;
    };

    dnssec-validation auto;
};

# Konfiguration überprüfen und Service neustarten
sudo named-checkconf
sudo systemctl restart bind9

# Test
dig @127.0.0.1 google.com

Authoritative Zone für eigene Domain erstellen

# Zone in /etc/bind/named.conf.local hinzufügen
sudo nano /etc/bind/named.conf.local

# Inhalt:
zone "example.com" {
    type master;
    file "/etc/bind/db.example.com";
    allow-transfer { 192.168.1.20; };
};

zone "1.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.1.168.192";
};

# Zone-Datei erstellen
sudo cp /etc/bind/db.local /etc/bind/db.example.com

# Zone-Datei bearbeiten
sudo nano /etc/bind/db.example.com

# Inhalt der Zone-Datei:
$TTL    604800
@       IN      SOA     ns1.example.com. admin.example.com. (
                        2024040501      ; Serial
                        604800          ; Refresh
                        86400           ; Retry
                        2419200         ; Expire
                        604800 )        ; Minimum

@       IN      NS      ns1.example.com.
@       IN      NS      ns2.example.com.
@       IN      A       192.168.1.10
@       IN      AAAA    2001:db8::1
@       IN      MX      10 mail.example.com.
@       IN      TXT     "v=spf1 mx ~all"

ns1     IN      A       192.168.1.10
ns2     IN      A       192.168.1.20
www     IN      A       192.168.1.10
mail    IN      A       192.168.1.11
ftp     IN      CNAME   www.example.com.

# Dateibermissionen prüfen
sudo chown bind:bind /etc/bind/db.example.com
sudo chmod 644 /etc/bind/db.example.com

# Zone-Datei überprüfen
sudo named-checkzone example.com /etc/bind/db.example.com

# BIND neustarten
sudo systemctl restart bind9

# Test
dig @127.0.0.1 example.com
dig @127.0.0.1 www.example.com
dig @127.0.0.1 -x 192.168.1.10

DNS-Testing und Troubleshooting

# Einfache DNS-Abfrage
dig example.com

# Spezifischen DNS-Server abfragen
dig @ns1.example.com example.com

# Nur A-Records
dig example.com A

# MX-Records
dig example.com MX

# Alle Records
dig example.com ANY

# Kurzes Format
dig example.com +short

# Zone Transfer testen (AXFR)
dig @ns1.example.com example.com AXFR

# nslookup Alternative
nslookup example.com
nslookup -type=MX example.com
nslookup 192.168.1.10

# Reverse DNS
dig -x 192.168.1.10

# DNS Nameserver überprüfen
nslookup -type=NS example.com

# BIND Logs überprüfen
sudo tail -f /var/log/syslog | grep named
✅ Gut zu wissen: DNSSEC schützt vor DNS-Spoofing und Man-in-the-Middle-Angriffen. Es wird automatisch validiert, wenn dnssec-validation auto gesetzt ist.

Split DNS Konfiguration

Split DNS ermöglicht unterschiedliche DNS-Antworten je nachdem ob die Anfrage von intern oder extern kommt.

# /etc/bind/named.conf.local
view "internal" {
    match-clients { 127.0.0.1; 192.168.1.0/24; };

    zone "example.com" {
        type master;
        file "/etc/bind/db.example.com.internal";
    };
};

view "external" {
    match-clients { any; };

    zone "example.com" {
        type master;
        file "/etc/bind/db.example.com.external";
    };
};

# Internal Zone-Datei mit privaten IPs
# db.example.com.internal
$TTL 604800
@  IN  SOA  ns1.example.com. admin.example.com. (
            2024040501; Serial
            604800; Refresh
            86400; Retry
            2419200; Expire
            604800 )
@  IN  NS   ns1.example.com.
www IN  A   192.168.1.10
db IN  A   192.168.1.15
app IN  A   192.168.1.20

# External Zone-Datei mit öffentlichen IPs
# db.example.com.external
$TTL 604800
@  IN  SOA  ns1.example.com. admin.example.com. (
            2024040501; Serial
            604800; Refresh
            86400; Retry
            2419200; Expire
            604800 )
@  IN  NS   ns1.example.com.
www IN  A   203.0.113.10
db IN  A   203.0.113.15
app IN  A   203.0.113.20
⚠️ Wichtig: Bei Split DNS muss jede View eine komplette Zone-Definition haben. Views werden der Reihe nach überprüft. Die erste Übereinstimmung wird verwendet.

Logging und Debugging

# Query Logging aktivieren
# /etc/bind/named.conf.local:
logging {
    channel query_log {
        file "/var/log/bind/query.log" versions 4 size 500m;
        severity info;
        print-time yes;
        print-category yes;
    };
    category queries { query_log; };
};

# Log-Verzeichnis erstellen
sudo mkdir -p /var/log/bind
sudo chown bind:bind /var/log/bind

# BIND Debug-Mode testen
sudo named -g -u bind -c /etc/bind/named.conf

# Speziell Zone testen
sudo named-checkzone -d example.com /etc/bind/db.example.com

# Dig mit Trace (schrittweise Resolution)
dig example.com +trace

# Extended DNS Information
dig example.com +dnssec +multiline

# Zone-Transfer Überprüfung
dig @ns1.example.com example.com AXFR


Weitere Ressourcen


Letzte Aktualisierung: April 2026 | BIND9 Version 9.18+

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120