Erstellen Sie einen DNS-Server mit CentOS 8 und binden Sie

Einführung

Dies ist yuji323, der erste Artikel seit langer Zeit. Dieses Mal unterscheidet es sich ein wenig von der Java-Programmierung und ist ein Artikel, der näher an NW liegt. Wie der Titel schon sagt, habe ich versucht, einen DNS-Server in einer virtuellen Umgebung mit CentOS und BIND zu erstellen. Ich hoffe es wird den Bedürftigen helfen ~

Wenn Sie Fehler haben, lassen Sie es mich bitte in den Kommentaren wissen.

Umgebung

Hypervisor: VMWare WorkStation Player für Windows 15.0 Host-Betriebssystem: Windows 10 Version 1909 Gast-OS1 (DNS-Server / DHCP01): CentOS Linux Release 8.2.2004 (Core) Gast-OS2 (zur Verifizierung / TEST01): CentOS Linux Release 8.2.2004 (Core) Gast OS3 (zur Verifizierung / TEST02): CentOS Linux Release 8.2.2004 (Core)

Zuletzt erstellen wir eine virtuelle Umgebung, wie im folgenden Netzwerkdiagramm gezeigt. Es gibt Dinge, die nichts mit diesem Inhalt zu tun haben, aber das geht in Richtung Ignorieren ...

空白の図 (3).png

Hintergrund

Während ich im Unternehmen wartete, wurde ich gebeten, Lernmaterialien zu erstellen und sagte: "Ich möchte in Zukunft netzwerkbezogene Themen für die Ausbildung neuer Mitarbeiter untersuchen."


Ich war Entwickler und diese Firma war einmal!

Ich habe meine vorherige Firma verlassen, weil ich sie anstelle von NW entwickeln wollte! !! </ b>


Abgesehen von der Bitterkeit der Einstellungen in der Mitte der Karriere

Es scheint, dass er die Erfahrung als NW Engineering seines vorherigen Jobs kauft ... Serveraufbau, nicht Entwicklungsinhalt ... und DNS ...

Um diese Zeit wollte ich die Entwicklung mit viel Aufwand studieren, aber ich versuchte mit einem leichten Gefühl zu studieren: "Nun, wenn Sie ein Full-Stack-Ingenieur sein wollen, gibt es endlich keinen Verlust."

Bauen

Als Voraussetzung

IP-Adressen und Hostnamen werden für jede der drei Einheiten festgelegt und mit der Domäne "testdomain.local" im virtuellen NAT-Netzwerk verbunden. Informationen zu jedem Gastbetriebssystem sehen folgendermaßen aus ↓. Es scheint, dass es später beim Schreiben von DNS-Zoneninformationen benötigt wird. Stellen Sie es daher im Voraus ein.

Gastbetriebssystem Hostname IP Adresse DNS
TEST01 test01.testdomain.local 192.168.146.10 192.168.146.140
DNS01 dns01.testdomain.local 192.168.146.140 192.168.146.2

BIND-Installation

Wenn Sie BIND (Berkeley InternetName Domain) (cool) installieren (es ist schön, die Abkürzung auf Englisch zu schreiben), scheint der installierte Server als DNS-Server zu fungieren. Das zu bindende Image ist für verschiedene Prozesse verantwortlich, wenn die Kombination aus IP und Hostname auf dem DNS-Server erfasst wird.

dns01.


[root@dns01 ~]# yum install bind
[root@dns01 ~]# yum install bind-utils

Da "bind" der Hauptteil von bind ist und "bind-utils" dig-Befehle enthält, können Sie bind nur installieren, wenn Sie den dig-Befehl zum Zeitpunkt der Überprüfung nicht verwenden.

Konfiguration bearbeiten

Bearbeiten Sie die Konfigurationsdatei der installierten Bindung. Ich habe einen Kommentar für das Quiita-Posting geschrieben. Selbst wenn ich ihn kopiere, funktioniert er möglicherweise nicht. .. .. Es ist besser, den Kommentar zu löschen, wenn Sie ihn verwenden ◎

  • Es wird empfohlen, die Originaldatei zu kopieren, damit sie jederzeit wiederhergestellt werden kann.

dns01.


[root@dns01 ~]# cp /etc/named.conf /etc/named.conf.ORG
[root@dns01 ~]# vi /etc named.conf

/etc/named.conf


options {
        listen-on port 53 { 127.0.0.1; 192.168.146.140;}; //Listen Port
        //listen-on-v6 port 53 { ::1; };          //ipv6 scheint für Anfragen zu spät zu sein, also kommentieren Sie es aus
        directory       "/var/named";           
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";

        recursion       yes;         //Rekursive Abfrageberechtigung
        allow-query     {any; };   //Adressen, die eine Namensauflösung ermöglichen → Alle zulassen

        forwarders {         //Wenn die Anfrage keine Informationen in der Zonendatei enthält, werfen wir eine Lösung auf ein anderes DNS ~
                192.168.146.2;};   //Das Ziel zu werfen. Es scheint, dass ISP oder Google DNS in Ordnung ist. Der nächstgelegene Router ist ebenfalls akzeptabel. Diesmal ist es so.
        };

logging {               //Einstellungen für die Protokollaufnahme
//        channel default_debug {      //Die standardmäßig festgelegte Person verfügt nicht über genügend Informationen. Kommentieren Sie sie daher aus
//                file "data/named.run";
//                severity dynamic;
//        };
        channel "default-log" {       //Beschreiben Sie die neuen Erfassungseinstellungen
                file "/var/named/log/default.log" versions 5 size 10M;
                severity debug;
               print-time yes;
                print-severity yes;
                print-category yes;
        };

        category default{"default-log";};  //default-Ich werde log ~ verwenden
};

// zone "." IN {               //★ Kommentare deaktiviert, da nicht aufgelöste Adressen keine Zoneninformationen enthalten. Ich war wirklich begeistert(Große Niederlage)
//      type hint;
//      file "named.ca";
// };

// include "/etc/named.rfc1912.zones";
// include "/etc/named.root.key";

zone "testdomain.local" {          //Geben Sie den Speicherort der Zonendatei der festgelegten Domäne an
        type master;             //Ich werde danach ausführlich schreiben.
        file "testdomain.local.zone";
};

Erstellung / Syntaxprüfung des Protokollausgabeverzeichnisses

Erstellen Sie im Voraus das in ↑ angegebene Protokollausgabeverzeichnis. Erstellen Sie das in "/etc/named.conf" und "file" / set permissions angegebene Verzeichnis!

dns01.


[root@dns01 ~]# mkdir /var/named/log
[root@dns01 ~]# chown named.named /var/named/log

Überprüfen Sie die Syntax, wenn Sie fertig sind! !! !! !! Weiter, sobald der Fehler verschwindet. (Die Zeile zeigt Ihnen den Fehler im Detail an.)

dns01.


[root@dns01 ~]# named-checkconf

Erstellung von Zonendateien

Erstellen Sie eine DNS -Zonendatei. Die Korrespondenztabelle "Domänenname: IP-Adresse" ist der Hauptteil der Datei. Darüber hinaus wird das Verhalten bei einer DNS-Anforderung ein wenig beschrieben. Weniger als!

dns01.(Erstelle neu)


[root@dns01 ~]# vi /var/named/testdomain.local.zone

/var/named/testdomain.local.zone


$TTL 86400                                       //↓ Administrator-E-Mail-Adresse.
@       IN      SOA     dns01.testdomain.local.   root.testdomain.local. (
          2020050502   ;Serial //Ordnungsnummer. Aktualisieren, wenn die Datei aktualisiert wird! !! Datum+Es scheint, dass Einheit 0 oft verwendet wird
          3600         ;Refresh  //Gefühl der Zonenübertragung
          300          ;Retry   //Wiederholungsgefühl, wenn die Übertragung fehlschlägt
          360000       ;Expire   //Aufbewahrungszeit für Zonendateien
          86400   )    ;Negative //Auf anderen Servern zwischengespeicherte Zeit

//↓ ↓ Hostname ↓ ↓ ↓ ↓ Datensatztyp ↓ ↓ ↓ ↓ IP-Adresse ↓ ↓
                        IN      NS      dns01.testdomain.local
dns01.testdomain.local  IN      A       192.168.146.140
dns01                   IN      A       192.168.146.140
db01                    IN      A       192.168.146.130
dhcp01                  IN      A       192.168.146.150
pr01                    IN      A       192.168.146.160
test01                  IN      A       192.168.146.10

Und Syntaxprüfung !!!!!

dns01.


[root@dns01 ~]# named-checkconf -z

Diese Prüfung gibt unabhängig von Erfolg / Misserfolg ein Protokoll aus. Überprüfen Sie daher den Inhalt sorgfältig! Wenn ein Fehler auftritt, können Sie die Details mit [systemctl status named] überprüfen.

Firewall-Einstellungen

Wenn Sie es von Anfang an geschnitten haben, können Sie es ignorieren. Diesmal handelt es sich um eine Überprüfungsumgebung, daher ist es in Ordnung, sie auszuschalten, aber ... ich werde die Bohrmethode auch zum Studieren verwenden.

dns01.


[root@dns01 ~]# firewall-cmd --add-service=dns
[root@dns01 ~]# firewall-cmd --reload

IPv6 deaktiviert

dns01.


[root@dns01 ~]# vi /etc/sysconfig/named

Fügen Sie "OPTIONS =" - 4 "" hinzu!

Servicestart

dns01.


[root@dns01 ~]# status named.service
[root@dns01 ~]# status named-chroot.service

Wenn es keine besonderen Fehler gibt, ist dies das Ende der Konstruktion! Danke für deine harte Arbeit. .. .. .. Lassen Sie uns weiterhin überprüfen, ob eine Namensauflösung möglich ist ~

Überprüfung

Dieses Mal wird nur die Weiterleitungszonendatei erstellt. Überprüfen Sie daher, ob die IP aus dem Domänennamen gezogen werden kann. Ich werde versuchen, den Namen von dns01 anhand des Domainnamens von test01 und des Namens der externen Domain aufzulösen. image.png image.png

Ich habe sicher geschlossen! </ b>

Zusammenfassung

Geräte im Netzwerk 192.168.146.0/24 können jetzt über den Domainnamen kommunizieren! !! Dies ist sicher, da Sie der Zonendatei nur dann Datensätze hinzufügen müssen, wenn Sie in Zukunft einen neuen Server einrichten ◎ Dann!

Recommended Posts