Wie mache ich eine vollständige BIND9-DNS-Serverkonfiguration mit einem Hostnamen?

53

Ich benötige eine vollständige schrittweise Anleitung zum Erstellen einer solchen Serverkonfiguration.

Kann mir jemand helfen?

Artemis
quelle

Antworten:

119

Vollständiger DNS-Server in Ubuntu Server 12.

Ändern Sie zunächst die IP-Adresse Ihres Servers von DHCP in STATIC. Verwenden Sie dazu den folgenden Befehl

sudo nano /etc/network/interfaces

und füge hinzu:

auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-nameservers

Starten Sie die Netzwerk-Daemons neu

sudo /etc/init.d/networking restart

Bevor Sie einen DNS-Server unter Linux Ubuntu konfigurieren können, müssen Sie zunächst einen Domainnamen festlegen und dann fortfahren. Zuerst überprüfen Sie Ihren Hostnamen-Befehl, ob dies der Fall ist

sudo nano /etc/hostname

 nefitari       

(Dies ist mein Ubuntu-Server-Hostname, der möglicherweise von Ihrem abweicht. Sie können ihn je nach Bedarf ändern.)

Nach dem Hostnamen müssen Sie nun einen Domainnamen für Ihren Server festlegen. Sagen Sie servername.domain.com. Es ist besser, wenn Sie den Server für den Heimgebrauch konfigurieren, nicht .com, sondern .hom oder .net oder was auch immer Sie möchten. Geben Sie den folgenden Befehl ein

  sudo nano /etc/hosts

Füge hinzu, wenn es nicht vorhanden ist:

  127.0.0.1   localhost

  192.168.1.5     nefitari.autun.hom    nefitari

In meiner Datei 127.0.0.1 steht für localhost und ich habe die zweite IP-Adresse 127.0.1.1 mit meiner Server-IP geändert, die 192.168.1.5 lautet. Jetzt gebe ich meinen Domainnamen mit meinem Hostnamen nefitari ein, dann meinen Domainnamen autun.hom und dann alias Nefitari . Sie können entweder hostname.abc.net oder hostname.home.lan usw. auswählen. Denken Sie jedoch daran, dass Sie beim Ändern dieser Datei den Server neu starten und sich dann anmelden müssen. Neustart ist Pflicht

Installieren Sie jetzt BIND9

 sudo apt-get install bind9

Nach der Installation konfigurieren Sie einfach die folgenden Dateien Schritt für Schritt

  • Named.conf.options
  • Named.conf.local
  • /etc/resolv.conf

Konfigurieren Sie nun die Datei named.conf.options. Diese Datei wird für DNS-IPs verwendet. Dies bedeutet, dass Ihr Server eine Verbindung zu einem externen DNS herstellen muss. Wenn Sie einen Domainnamen von einem ISP kaufen, erhalten Sie normalerweise eine eigene DNS-IP-Adresse. Sie können offene DNS-IPs von Google oder so verwenden. In meinem Fall verwende ich meine eigenen ISP-DNS-IPs.

 sudo nano /etc/bind/named.conf.options
 forwarders {
 # Give here your ISP DNS IP’s
192.168.1.1;    # gateway or router   
182.176.39.23;
182.176.18.13;
68.87.76.178;
  };

*** Speichern Sie die Datei und beenden Sie *** mit der Steuertaste x, drücken Sie y und überschreiben Sie die Datei

Bearbeiten Sie nun die Datei mit dem Namen.conf.local. In dieser Datei definieren wir Vorwärts- und Rückwärtszonen. Wenn wir einen Domainnamen eingeben, wird dieser in eine IP-Adresse umgewandelt, und wenn wir eine IP-Adresse eingeben, wird er einfach in einen Namen umgewandelt.

sudo nano /etc/bind/named.conf.local

wird zeigen:

# Our forward zone
zone "autun.hom" {
 type master;
 file "/etc/bind/zones/db.autun.hom";
 };

# Our reverse Zone 
# Server IP 192.168.1.5 
zone "1.168.192.in-addr.arpa" {
  type master;
  file "/etc/bind/zones/db.192";
 };

*** Speichern Sie die Datei und beenden Sie *** mit der Steuertaste x, drücken Sie y und überschreiben Sie die Datei

Jetzt werden wir diese beiden Datenbankdateien db.autun.hom und db.192 in den Zonenordner legen

Zuerst machen Sie die Verzeichniszonen in / etc / bind /

  sudo mkdir /etc/bind/zones

Lassen Sie mich vor dem Erstellen von Dateien klarstellen, dass ich verschiedene Geräte habe

Geräte-IPs

  • Server selbst 192.168.1.5
  • Gateway 192.168.1.1
  • Win7pc 192.168.1.50

Jetzt erstellen wir im Zonenverzeichnis zuerst zwei Dateien db.autun.hom . Ich kopiere gerade die Datei db.local, die bereits im Ordner / etc / bind vorhanden ist, in den Zonenordner, indem ich ihren Namen in db.autun.hom ändere . Ich werde diese IPs in meine Datei db.autun.hom einfügen. Lasst uns beginnen

sudo cp /etc/bind/db.local  /etc/bind/zones/db.autun.hom

Verwenden Sie nun den folgenden Befehl, um die Datei zu bearbeiten

sudo nano /etc/bind/zones/db.autun.hom

 ;
 ; BIND data file for local loopback interface
 ;
 $TTL    604800
 @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
  ;
autun.hom.      IN  NS  nefitari.autun.hom.
autun.hom.      IN  A   192.168.1.5
   ;@               IN  A   127.0.0.1
   ;@               IN  AAAA    ::1
nefitari            IN  A   192.168.1.5
gateway         IN  A   192.168.1.1
win7pc          IN  A   192.168.1.50
www     IN  CNAME   autun.hom.

Speichern Sie es und beenden Sie es

  • Webuser.autun.hom. ist die E-Mail, die auf den Nameserver zugreift. Sie können stattdessen einen beliebigen Namen für den Webbenutzer eingeben, z. B. admin, root oder host master.
  • Autun.hom. ist mein NS bedeutet Nameserver
  • Autun.hom .changing to IP 192.168.1.5
  • @ IN A 127.0.0.1 und AAAA :: 1 können auskommentiert werden. Sie sollten es nicht benötigen, da db.local bereits in / etc / bind vorhanden ist. Es handelt sich lediglich um eine Kopie dieser Datei. Sie müssen es also nicht löschen
  • Ändern von Nefitari auf IP 192.168.1.5
  • Gateway zu IP 192.168.1.1
  • In Win7pc können Sie Ihren Windows-PCs oder Linux-Clients einen beliebigen Namen geben. Beachten Sie jedoch, dass die IP- Adresse dieses Clients korrekt in die Datei eingefügt werden muss. In meinem Fall habe ich die IP des Windows PC 192.168.1.50 angegeben
  • Zuletzt benutze ich CNAME bedeutet kanonischer Name, es ist nur ein Alias ​​für Nefitari. Bedeutet, dass Sie auf Ihren Server zugreifen können, indem Sie statt nefitari.autun.hom www.autun.hom eingeben. Sie können dies weglassen oder kommentieren. Es liegt nur an dir.

Erstellen Sie nun eine Reverse-Lookup-Zonendatei

sudo cp /etc/bind/db.127    /etc/bind/zones/db.192

Verwenden Sie nun den folgenden Befehl, um die Datei zu bearbeiten

sudo nano /etc/bind/zones/db.192

   ;
   ; BIND reverse data file for local loopback interface
   ;
   $TTL    604800
   @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
   ;
        IN  NS  nefitari.
1   IN  PTR gateway.autun.hom.
5   IN  PTR nefitari.autun.hom.
50  IN  PTR win7pc.autun.hom.

Speichern Sie es und beenden Sie es

Wenn Sie mit Ihrer Zonendatei fertig sind, müssen Sie überprüfen, ob sie ordnungsgemäß funktioniert, indem Sie den folgenden Befehl für die Weiterleitungszonendatei eingeben

named-checkzone autun.hom /etc/bind/zones/db.autun.hom
zone autun.hom /IN: loaded serial   2
Ok

Überprüfen Sie nun die Reverse-Zone-Datei

named-checkzone autun.hom /etc/bind/zones/db.192
zone autun.hom /IN: loaded serial   2
Ok 

Wenn die Ausgabe Ihrer named-checkzone dieselbe wie oben ist, funktioniert sie einwandfrei, da Sie sonst einen Fehler in der Datei gemacht haben.

Bearbeiten Sie nun die Datei resolv.conf

sudo nano /etc/resolv.conf

nameserver      192.168.1.5
domain      autun.hom
search      autun.hom

Geben Sie die folgenden Zeilen in Ihre resolv.conf-Datei ein und speichern Sie sie

Starten Sie die Bindung neu

sudo /etc/init.d/bind9 restart

Überprüfen Sie nach dem Bindestart Ihre Einstellungen in der Protokolldatei

tail -f /var/log/syslog

Das Protokoll darf keinen Fehler enthalten

Vorwärtszonen prüfen

host –l autun.hom

Die Ausgabe sollte so aussehen

 autun.hom name server nefitari.autun.hom.
 autun.hom has address 192.168.1.5
 gateway.autun.hom has address 192.168.1.1
 nefitari.autun.hom has address 192.168.1.5
 win7pc.autun.hom has address 192.168.1.50

Verwenden Sie jetzt NSLOOKUP

nslookup autun.hom

AUSGABE

Server: 192.168.1.5
Address: 192.168.1.5#53

Name: autun.hom
Address: 192.168.1.5

Verwenden Sie DIG

 dig gateway.autun.hom

 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35612
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

 ;; QUESTION SECTION:
 ;gateway.autun.hom         IN  A

 ;; ANSWER SECTION:
 gateway.autun.hom      604800  IN  A   192.168.1.1

 ;; AUTHORITY SECTION:
 Autun.hom.     604800  IN      NS  nefitari.autun.hom. 

 ;; ADDITIONAL SECTION:
 Nefitari.autun.hom.    604800  IN      A   192.168.1.5

 ;; Query time: 12 msec
 ;; SERVER: 192.168.1.5#53(192.168.1.5)
 ;; WHEN: Thu Aug 8 01:56:25 2013
 ;; MSG SIZE  rcvd: 90

Die Ausgabe sollte ähnlich wie oben aussehen. Überprüfen Sie den Status: NOERROR bedeutet, dass die Überprüfung durchgeführt wird. ANTWORT ABSCHNITT : gateway.autun.hom wird in 192.168.1.1 aufgelöst

Reverse Zone prüfen

 host 192.168.1.1

Ausgabe

 1.1.168.192.in-addr.arpa domain name pointer gateway.autun.hom

Wenn es Ihnen einen Fehler wie unten gibt

 host 1.1.168.192.in-addr.arpa. not found: 3(NXDOMAIN)

Dies bedeutet, dass Sie in der Datei /etc/bind/named.conf.local in der Reverse Zone einen Fehler gemacht haben. Wenn Ihre Server-IP 192.168.1.5 lautet , sieht Ihre Reverse Zone folgendermaßen aus

zone "**1.168.192**.in-addr.arpa" {
 correct ip reversing
};

Manchmal haben die Leute einen Fehler beim Umkehren der IP gemacht (nur ein Beispiel)

zone "**0.168.192**.in-addr.arpa" {
incorrect ip reversing
};

Verwenden Sie NSLOOKUP

nslookup 192.168.1.1

Server: 192.168.1.5
Address: 192.168.1.5#53

1.1.168.192.in-addr.arpa    name=gateway.autun.hom

Wenn Sie NXDOMAIN- oder SERVFAIL-ähnliche Fehler erhalten, bedeutet dies, dass eine Ihrer Zonendateien nicht ordnungsgemäß funktioniert

Jetzt können Sie ubuntu.com zum ersten Mal anpingen oder ubuntu.com ausgraben. Es dauert einige Millisekunden, bis der Name ubuntu.com aufgelöst ist. Wenn Sie ihn jedoch zum zweiten Mal ausführen, dauert es 1, 2 oder 3 Sekunden, normalerweise 1 bis 10 Millisekunden Sekunden sind normal und es bedeutet, dass Ihr DNS ordnungsgemäß funktioniert

Clients konfigurieren

Fensterseite

  • offene Netzwerkverbindungen
  • Wählen Sie Adaptereinstellungen ändern
  • Eigenschaften auswählen
  • Wählen Sie die Internetprotokollversion IPv4

und hier gib die IP-Adresse an (in meinem Fall ist es 192.168.1.50)

  • IP-Adresse 192.168.1.50
  • Subnet Mask 255.255.255.0
  • Standardgateway 192.168.1.1
  • primärer DNS 192.168.1.5 (meine neue BIND-DNS-Server-IP)
  • Wählen Sie im selben Fenster die Option Erweitert
  • Wählen Sie Registerkarte DNS
  • Geben Sie hier das Textfeld unten ein. Im DNS-Suffix für diese Verbindung: autun.hom
  • Klicken Sie auf OK
  • Klicken Sie beim Beenden auf Einstellungen bestätigen
  • OK klicken

und du bist damit fertig, öffne CMD

ping gateway

Es muss Ihnen einige Antworten geben

ähnlich

ping 192.168.1.1 or 5

Es muss Ihnen einige Antworten geben

Testen Sie Ihren Server zur Außenwelt

Jetzt können Sie ubuntu.com zum ersten Mal anpingen oder ubuntu.com ausgraben. Es dauert einige Millisekunden, bis der Name ubuntu.com aufgelöst ist. Wenn Sie ihn jedoch zum zweiten Mal ausführen, nimmt er die Form von 1 bis 10 Millisekunden an Dies bedeutet, dass Ihr DNS ordnungsgemäß funktioniert. Konfigurieren von Clients

Fensterseite

offene Netzwerkverbindungen auswählen Adaptereinstellungen ändern auswählen Eigenschaften auswählen Internetprotokollversion IPv4

und hier gib die IP-Adresse an (in meinem Fall ist es 192.168.1.50)

IP-Adresse 192.168.1.50

Subnet Mask 255.255.255.0

Standardgateway 192.168.1.1

primärer DNS 192.168.1.5 (meine neue BIND-DNS-Server-IP)

wähle Voraus (im selben Fenster)

Wählen Sie DNS - Registerkarte

Geben Sie hier das Textfeld unten ein. Im DNS-Suffix für diese Verbindung: autun.hom

Klicken Sie auf OK

Klicken Sie beim Beenden auf Einstellungen bestätigen

Klicken Sie auf OK

und du bist damit fertig, öffne CMD

Code:

 ping gateway

Es muss Ihnen einige Antworten geben

ähnlich

Code:

 ping 192.168.1.1 or 5

Es muss Ihnen einige Antworten geben, die Sie mit dem NSLOOKUP- Code erhalten können:

 nslookup gateway

LINUX-KUNDEN

Code:

 sudo nano /etc/network/interfaces

Geben Sie die folgenden Zeilen ein

Code:

 auto eth0
 iface eth0 inet dhcp

Starten Sie jetzt Network Deamons neu

Code:

 sudo /etc/init.d/networking restart

um den IP-Befehl zur Clienterneuerung zu erzwingen

Code:

 sudo dhclient -r

Jetzt frische IP beziehen:

Code:

 sudo dhclient

Wenn Sie einen DHCP-Server in Ihrem Netzwerk ausführen, geben Sie den Domänennamen und den Nameserver in die Datei dhcpd.conf ein. Ich habe zum Beispiel einen DNS-Server namens nefitari.autun.hom und die IP-Adresse lautet 192.168.1.5 wie unter

Code:

 option domain-name "nefitari.autun.hom";
 option domain-name-server  192.168.1.5;

Quelle

fossfreedom
quelle
7
Es ist eine Schande, dass diese Seite 3726 Aufrufe hat und die Antwort nur eine positive Bewertung hat. Wenn es für Sie hilfreich war, stimmen Sie es zu!
Fotanus
12
Diese Antwort ist korrekt, mit Ausnahme des Teils zum Bearbeiten von /etc/resolv.conf. Seit Ubuntu 12.04 bearbeiten Sie diese Datei nicht mehr von Hand, sondern konfigurieren resolvconf dafür. Setzen Sie RESOLVCONF = yes in / etc / default / bind9, damit BIND 9 named beim Start seine lokale Abhöradresse 127.0.0.1 bei resolvconf registriert. Stellen Sie sicher, dass /etc/resolv.conf ein symbolischer Link zu ist ../run/resolvconf/resolv.conf.
Jdthood
1
Syslog-Fehler - (network unreachable) resolving './NS/IN': 2001:500:3::42#53Sind vom Binden und versuchen, Abfragen rekursiv mit ipv6 zu lösen. Bearbeiten /etc/default/bind9und Verwenden OPTIONS="-u bind -4"behebt es. Weitere Informationen: serverfault.com/questions/77325/unreachable-resolving-domain
kein Patch
Ich habe gerade das Setup mit Ubuntu Server 16.04 bekommen und es funktioniert immer noch. Das Tutorial von Serverguide zu DNS ist im Vergleich zu dieser Erklärung ein Albtraum. Allerdings hatte ich einen korrigieren Fehler in der Liste: in der Datei db.192vor IN NS nefitari.a @fehlt. Außerdem musste ich den FQDN hinzufügen, damit meine Arbeitszeile so aussah. @ IN NS nefitari.autun.hom.Ich habe den Abschnitt resolv.conf ignoriert und den Ratschlägen von jdthood gefolgt. Der Link war bereits von der Standardserverinstallation vorhanden.
CatMan
1
@fotanus Ich denke, es ist, weil es so lange ist, dass die Leute vergessen haben, wieder nach oben zu scrollen, um zu stimmen \
CodyBugstein
1

Die Antwort ist nur eine Ergänzung zu der großartigen Beschreibung oben.

Tipp zur Fehlerbehebung

Sei sehr vorsichtig mit den vielen "." in den Konfigurationsdateien ist da jeder wichtig. Ein einzelnes fehlendes '.' kann den DNS-Server anhalten. Sie sollten sich nicht auf eindeutige Fehlermeldungen verlassen.

Ich habe gelernt, wie man eine aussagekräftigere Seriennummer verwendet. Es ist sehr wichtig, die Seriennummer jedes Mal zu erhöhen, wenn das Setup geändert wird, z. B. wenn neue Einträge hinzugefügt werden. Wenn es nicht erhöht wird, kann ein sekundärer DNS die neuen Einstellungen nicht synchronisieren. Das vorgeschlagene Format ist YYYYMMDDss, wo ssist die "alte" Seriennummer. Wenn Sie also inkrementieren, sollten Sie ssum +1 inkrementieren und das Datum auf das aktuelle Datum einstellen. Ich fand das sehr hilfreich bei der Fehlerbehebung beim Setup. Im Syslog sehen Sie deutlich das Datum und die Seriennummer der verwendeten Datei.

In Ubuntu 16.04 ist das Ändern von resolv.conf veraltet. Wie jdthood in seinem Kommentar schreibt, ersetzen Sie den Schritt durch das folgende Verfahren: - Ändern Sie / etc / default / bind9: Das neue Testament sollte folgendermaßen aussehen:

   # run resolvconf?
   RESOLVCONF=yes

   # startup options for the server
   OPTIONS="-u bind"

   # use this when you have trouble with IPV6
   #OPTIONS="-u bind -4"

Siehe den Kommentar von not-a-patch zu den IPV6-Problemen.

  • Setzen Sie einen Symlink von /etc/resolv.conf in /run/resolvconf/resolv.conf

     cd /etc
     sudo ln -s /etc/resolv.conf /run/resolvconf/resolv.conf
    

Offline-Setup

Das Setup ist genau das gleiche und sogar ein bisschen einfacher, da Sie die Weiterleitungsabschnitte einfach überspringen können. Sie müssen nicht vorhanden sein und müssen daher nicht bearbeitet werden /etc/bind/names.con.options.

Klasse-B-Netzwerke

Es sind ein paar geringfügige Änderungen erforderlich, damit diese Funktion für Klasse-B-Netzwerke ausgeführt werden kann (bevor es Kommentare gibt, gibt es keinen Grund, warum ein lokales Netzwerk auch zu Hause kein Klasse-B-Netzwerk anstelle eines Klasse-C-Netzwerks sein könnte). . In diesem Beispiel verwende ich die Netzwerknummer 172.20.xx (ich denke, die formale Notation ist 172.20.0.0. Für weitere Informationen google rfc1918).

Verwenden Sie die Beschreibung aus der ersten Antwort, ersetzen Sie alle IPs 192.168.xx durch 172.20.xx, verwenden Sie für den Server IP 172.20.0.100 und ändern Sie die Dateien wie folgt:

  • Der Name der Datei db.192wird db.172.
  • Die Datei named.conf.localerhält einen anderen Reverse Zone-Abschnitt:

    zone "20.172.in-addr.arpe" {
    type master;
    file "/etc/bind/zones/db.172";
    }
    
  • Die Reverse Zones-Datei ändert sich in:

    ;
    ; BIND reverse data file for 172.20.x.x
    ;
    $TTL    604800
    @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                 2017022102         ; more intuitive serial YYYYMMDDss, here ss=02
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
    
    ; note: the '@'was missing from in the initial description
    @       IN  NS  nefitari.autun.hom.    
    
    100.0   IN  PTR nefitari.autun.hom. 
    121.0   IN  PTR client1.autun.hom.
    130.0   IN  PTR client2.autun.hom.
    33.0    IN  PTR client3.autun.hom.
    

Der Rest ist der gleiche.

Hoffe, es ist nützlich für jemanden.

Katzenmann
quelle
Funktioniert dies, wenn Sie sowohl 172.16- als auch 172.20-Adressen verwenden möchten?
kojow7,
@ kojow7. Sehr gute frage Ich weiß nicht, aber um herauszufinden, könnten Sie entweder nur eine zweite Zone und eine zweite Reverse-Datei einschließen. Es ist einfach mit dem Befehl nslookup zu testen. Oder, vielleicht ist es besser, einfach eine Netzmaske zu verwenden, die beide 172.16 enthält. und 172,20. Die Netzmaske wäre nicht so einfach wie 255.255.0.0, enthält aber andere Zahlen neben 0 und 255, aber im Netz finden Sie Anleitungen, wie Sie das herausfinden können, falls Sie es noch nicht wissen. Falls Sie es gelöst haben, können Sie es hier für andere veröffentlichen.
CatMan