Detaillierte Erklärung zum Einrichten eines DNS-Servers unter Linux

Detaillierte Erklärung zum Einrichten eines DNS-Servers unter Linux

1. DNS-Server-Konzept

Die Kommunikation im Internet erfordert die Hilfe von IP-Adressen, aber das menschliche Gedächtnis für Zahlen ist dem für Wörter weit unterlegen. Daher ist es eine gute Idee, IP-Adressen in leicht zu merkende Wörter umzuwandeln, aber Computer können nur die Codes 0 und 1 erkennen. Derzeit wird ein Mechanismus benötigt, um das Konvertierungsproblem zwischen IP-Adressen und Hostnamen zu lösen. DNS steht für Domain Name System, ein online verteiltes Datenbanksystem, das die von uns häufig verwendeten „Websites“ in IP-Adressen auflöst. Die meisten DNS-Namen werden lokal aufgelöst, und nur eine kleine Anzahl muss online übermittelt werden, was dies sehr effizient macht.

2. DNS-bezogene Konzepte

DNS verwendet eine baumartige Verzeichnisstruktur, um die Verwaltung von Hostnamen auf verschiedene Ebenen zu verteilen, wodurch eine schnellere Hostnamensuche und eine bequemere Änderung der Hostnamenauflösung erreicht werden kann.

Domain:

TLD: Top-Level-Domain

Organisationsdomäne: .com, .org, .net, .edu, .gov, .mil, .cc, …

Länderdomäne: .cn, .us, .tw, .iq, …

Umgekehrte Domäne:.in-addr-arpa

FQDN:

FQDN steht für Fully Qualified Domain Name, also einen vollqualifizierten Domänennamen.
Ein FQDN besteht aus zwei Teilen: dem Hostnamen und dem Domänennamen.
Da DNS hierarchisch verwaltet wird, sind der Hostname und der Domänenname auf verschiedenen Ebenen unterschiedlich.
Nehmen wir www.google.com als Beispiel:
In der zweiten Ebene ist .com der Domänenname und Google der Hostname.
Und in der dritten Ebene .google.
Vorwärtsauflösung: Die Konvertierung von FQDN in IP-Adresse wird als Vorwärtsauflösung bezeichnet.

Umgekehrte Auflösung: Die Konvertierung von der IP-Adresse zum FQDN wird als umgekehrte Auflösung bezeichnet.

Zone: In Vorwärts- oder Rückwärtsauflösung ist jeder Domäneneintrag eine Zone

3. DNS-Serverauflösung

Die Hauptfunktion von DNS besteht darin, Hostnamen aufzulösen.

Analyse:

Fragen Sie die Analysebibliothek entsprechend dem vom Benutzer angegebenen Namen ab, um einen anderen Namen zu erhalten. Domänenname -> IP, IP -> Domänenname

Ressourcendatensatz: rr (Ressourcendatensatz) hat ein Typkonzept; Attribute, die zum Parsen dieses Datensatzes verwendet werden

  1. *SOA-Eintrag: Start of Authority-Eintrag, eine Zonendatei kann nur einen haben
  2. *A-Eintrag: wird verwendet, um den IP-Adressdatensatz (IPv4) anzugeben, der dem Hostnamen (oder Domänennamen) entspricht. (AAAA IPv6)
  3. *CNAME-Eintrag: Alias-Auflösung (Domänenname)
  4. *NS-Eintrag: Domänennameserver-Eintrag, der verwendet wird, um anzugeben, welcher DNS-Server den Domänennamen auflöst.
  5. *MX-Eintrag: Mail-Exchange-Eintrag, der auf den Mailserver verweist
  6. *PTR-Eintrag: Reverse-DNS-Eintrag, die Umkehrung des A-Eintrags
  7. *TTL-Wert: Survival Time, die Cachezeit der DNS-Records auf dem DNS-Server

4. DNS-Server-Prinzip

DNS verwendet zwei Abfragemechanismen: rekursiv und iterativ

Der Client sendet eine Abfrageanforderung an den DNS-Server. Der DNS-Server durchsucht die lokale Auflösungsbibliothek, findet jedoch kein Ergebnis. Daher sendet er eine Abfrageanforderung an die Stammdomäne. Die Stammdomäne teilt dem DNS-Server mit, dass der .com-Server über die benötigten Ressourcen verfügt. Der DNS-Server sendet erneut eine Abfrageanforderung an den .com-Server und erhält die Nachricht, dass der .google.com-Server das gewünschte Ergebnis hat. Schließlich findet er den Auflösungsdatensatz auf dem .google.com-Server und sendet ihn an den Client zurück. Im obigen Abfrageprozess sendet der Client nur einmal eine Anforderung und erhält das endgültige Ergebnis. Diese Abfragemethode wird als Rekursion bezeichnet. Der DNS-Server sendet während des Abfrageprozesses weiterhin Anforderungen, bis er das gewünschte Ergebnis findet. Diese Abfragemethode wird als Iteration bezeichnet.

5. DNS-Abfragereihenfolge

  1. Lokale Hosts-Datei
  2. Lokaler DNS-Cache
  3. Lokaler DNS-Server
  4. Eine iterative Abfrage einleiten

6. DNS-Server-Port TCP UDP 53

7. DNS-Servertyp

Primärer DNS-Server:

Der Hauptbereich, der die Domänennamenauflösung für Clients bereitstellt. Wenn der primäre DNS-Server ausfällt, wird der sekundäre DNS-Server aktiviert, um Dienste bereitzustellen.

Vom DNS-Server:

  1. 1. Wenn der DNS des Masterservers längere Zeit nicht antwortet, stellt auch der Slave-Server die Bereitstellung von Diensten ein
  2. 2. Die Synchronisierung zwischen Master- und Slave-Regionen erfolgt über einen Mechanismus zur regelmäßigen Überprüfung und Benachrichtigung
  3. 3. Der Slave-Server überprüft regelmäßig die Datensätze auf dem Master-Server. Sobald eine Änderung gefunden wird, wird sie synchronisiert. Wenn die Daten auf dem Master-Server geändert werden, wird der Slave-Server außerdem sofort benachrichtigt, um den Datensatz zu aktualisieren.

Cache-Server:

Der Server selbst stellt keine Auflösungszonen zur Verfügung, sondern nur nicht-autoritative Antworten

Weiterleitungsserver:

Wenn der Auflösungsbereich des DNS-Servers (einschließlich Cache) keine autoritative Antwort auf die aktuelle Anfrage liefern kann, wird die Anfrage an andere DNS-Server weitergeleitet. Zu diesem Zeitpunkt ist der lokale DNS-Server der Weiterleitungsserver.

Konfiguration:

nslookup, dig DNS-Client-Testtool
#tcpdump,Wireshark-Tool zur Analyse der Paketerfassung

DNS-Server-Setup, Vorwärtsauflösung, Rückwärtsauflösung

1. Firewall und Selinux ausschalten

systemctl stoppe Firewall 
systemctl deaktiviert Firewall 
0 
getenforce

2. Installieren Sie die DNS-Serversoftware

yum installiere bind-chroot 
#Hauptkonfigurationsdatei /etc/named.conf
#Die Zonenkonfigurationsdatei /etc/named.rfc1912.zones wird verwendet, um die Entsprechung zwischen Domänennamen und IP-Adressen zu speichern. #Das Datenkonfigurationsdateiverzeichnis /var/named wird verwendet, um den Speicherort der Entsprechung zwischen Domänennamen und IP-Adressen zu speichern.

3. Ändern Sie die Hauptkonfigurationsdatei

vi /etc/named.conf 
listen-on port 53 { any; }; #Alle IP-Adressen auf dem Server können den DNS-Domänennamenauflösungsdienst bereitstellen allow-query { any; }; #Jedem erlauben, DNS-Abfragen an diesen Server zu senden #Syntax zur Erkennung des Befehls named-checkconf

4. Ändern Sie die regionale Konfigurationsdatei

#Wird verwendet, um den Speicherort der Korrespondenz zwischen Domänennamen und IP-Adressen zu speichern. In dieser Datei werden die Auflösungsregeln für Domänennamen und IP-Adressen, der gespeicherte Dateispeicherort und der Diensttyp definiert, sie enthält jedoch keine spezifischen Korrespondenzinformationen zwischen Domänennamen und IP-Adressen. Es gibt drei Arten von Diensten: Hinweis (Root-Zone), Master (Primärzone) und Slave (Sekundärzone). Die häufig verwendeten Master- und Slave-Dienste beziehen sich auf den Primärserver und die Slave-Serverzone "c74.com" IN {  
     Typ Master; #Diensttypdatei „c74.com.zone“; #Datei zum Speichern der Auflösungsregel für Domänennamen und IP-Adressen, allow-update { none; }; #Welche Clients dürfen Auflösungsinformationen dynamisch aktualisieren? }; #Vorwärtsauflösungsparameterzone „1.168.192.in-addr.arpa“ IN { #Reflexionsauflösungszone, dargestellt durch das Netzwerksegment 192.168.1.0/24, Typ Master;  
     Datei "192.168.1.arpa"; 
     }; #Parameter umkehren

5. Vorwärtsparsing

5.1 vi /etc/named.rfc1912.zones

Es kann auf der ursprünglichen Basis geändert oder gelöscht werden, um nur die verwendete Informationszone „c74.com“ beizubehalten. IN { #Diensttyp Typ Master; #Auflösungsregel für Domänennamen und IP-Adressen, Datei speichern, Datei „c74.com.zone“; #Welche Clients dürfen die Auflösungsinformationen dynamisch aktualisieren? allow-update { none; }; 
     }; 
#named-checkzone überprüft die Konfiguration der Zonendatei

5.2#Bearbeiten Sie die Datenkonfigurationsdatei. Kopieren Sie eine Vorwärtsauflösungsvorlagendatei (named.localhost) aus dem Verzeichnis /var/named, tragen Sie dann die entsprechenden Daten des Domänennamens und der IP-Adresse in die Datenkonfigurationsdatei ein und speichern Sie sie. Denken Sie daran, beim Kopieren den Parameter -a hinzuzufügen, damit der Besitzer, die Gruppe, die Berechtigungsattribute usw. der Originaldatei erhalten bleiben.

cd /var/benannt
cp -a named.localhost c74.com.zone #Kopiert den Dateiinhalt (Vorlage) in named.localhost nach c74.com.zone vi c74.com.zone 
$TTL 1D #Lebenszyklus beträgt 1 Tag @ IN SOA c74.com. root.c74.com.( #@Aktueller Domänenname #Autorisierungsinformationen beginnen #Adresse der DNS-Zone #Verwenden Sie nicht das @-Symbol für die E-Mail des Domänenadministrators 0 ; Seriennummer #Seriennummer des Updates 1D ; Aktualisieren #Aktualisierungszeit 1H ; Wiederholen #Wiederholungsverzögerung 1W ; Ablaufen #Ablaufzeit 3H ) ; Minimum #Ungültige Auflösungsdatensatzzeit NS ns.c74.com. #Domänennameserver-Datensatz ns IN A 192.168.5.153 #Adressdatensatz ns.c74.com.  
 IN MX 10 mail.c74.com. #Mailbox-Austauschdatensatz 10 ist die Prioritätsnummer, je kleiner die Zahl, desto höher die Ebene Mail IN A 192.168.5.153 #Adressdatensatz mail.c74.com. 
 www IN A 192.168.5.153 #Adressdatensatz www.c74.com. 
 Nachrichten IN A 192.168.5.153 #Adressdatensatz news.c74.com. 

5.3 Dienst starten und testen

 systemctl Neustart mit dem Namen 
 yum installiere bind-utils -y 
 #bind-utils testet DNS für den Client mit nslookup 
 > www.c74.com 
 Server: 192.168.5.153 
 Adresse: 192.168.5.153#53
 #Es sind auch andere Tests erforderlich, die hier weggelassen werden

6. Rückwärtsanalyse

#Die Funktion der umgekehrten Auflösung besteht darin, die vom Benutzer übermittelte IP-Adresse in die entsprechenden Domänennameninformationen aufzulösen. Sie wird im Allgemeinen verwendet, um alle an eine bestimmte IP-Adresse gebundenen Domänennamen insgesamt zu blockieren und Spam zu blockieren, der von bestimmten Domänennamen gesendet wird.

6.1 vi /etc/named.rfc1912.zones

zone "1.168.192.in-addr.arpa" IN { 
 Typ Master; 
 Datei "192.168.1.arpa";
 };

6.2 Bearbeiten der Konfigurationsdatei

 #Kopieren Sie eine Reverse-Parsing-Vorlagendatei (named.loopback) aus dem Verzeichnis /var/named und fügen Sie dann die folgenden Parameter in die Datei ein: cd /var/named 
 cp -a named.loopback 192.168.1.arpa 
 vi 192.168.1.arpa 
 $TTL 1D 
 @ IN SOA c74.com.root.c74.com. (          
       0; Seriennummer          
       1D; aktualisieren          
       1H; erneut versuchen          
       1W; ablaufen          
       3H ) ; Minimum  
      NS ns.c74.com. 
  k.A. A 192.168.5.153 
  153 PTR ns.c74.com. #PTR ist ein Zeigerdatensatz, der nur für die umgekehrte Auflösung 153 PTR mail.c74.com verwendet wird.
  153 PTR www.c74.com. 
  153 PTR-news.c74.com.

6.3 Testen

 systemctl Neustart mit dem Namen 
  nslookup

7. Erweiterter DNS-Master-Slave-Dienst

#Da der Master-Server oben bereitgestellt wurde, wird im Folgenden hauptsächlich der Slave-Server vorgestellt
#Im DNS-Domänennamenauflösungsdienst kann der Slave-Server die angegebene Zonendatendatei vom Master-Server abrufen und so die Rolle eines Backup-Auflösungsdatensatzes und eines Lastausgleichs übernehmen. Daher kann durch die Bereitstellung des Slave-Servers der Lastdruck des Master-Servers verringert und die Abfrageeffizienz der Benutzer verbessert werden.
#Zum Testen sind zwei Server erforderlich! Master 192.168.10.10, Slave 192.168.10.20

7.1#Erlauben Sie die Aktualisierungsanforderung des Slave-Servers in der Zonenkonfigurationsdatei des Master-Servers, d. h. ändern Sie den Parameter allow-update {Hostadresse, die die Aktualisierung von Zoneninformationen zulässt;}; und starten Sie dann das DNS-Dienstprogramm des Master-Servers neu

 vi /etc/named.rfc1912.
  Zonen Zone "c74.com" IN { 
        Typ Master;
        Datei "c74.com.zone"; 
        zulassen-update { 192.168.10.20; }; 
        }; 
  Zone "10.168.192.in-addr.arpa" IN { 
        Typ Master; Datei „192.168.10.arpa“; 
        zulassen-update { 192.168.10.20; };
        }; 
  systemctl Neustart mit dem Namen 

7.2#Geben Sie die IP-Adresse des Masterservers und die Bereichsinformationen ein, die im Slave-Server erfasst werden sollen, und starten Sie den Dienst neu. Beachten Sie, dass der Diensttyp zu diesem Zeitpunkt „Slave“ und nicht „Master“ sein sollte. Auf den Parameter „masters“ sollte die IP-Adresse des Masterservers folgen, und der Parameter „file“ definiert den Speicherort, an dem die synchronisierte Datenkonfigurationsdatei gespeichert wird. Sie können die synchronisierten Dateien später in diesem Verzeichnis sehen.

 vi /etc/named.rfc1912.zones 
  zone "c74.com" IN {
       Typ Sklave; 
       Meister { 192.168.10.10; }; 
       Datei „slaves/c74.com.zone“; 
       }; 
  Zone "10.168.192.in-addr.arpa" IN { 
       Typ Sklave; 
       Meister { 192.168.10.10; }; 
       Datei "slaves/192.168.10.arpa"; 
       }; #Der Dateiparameter definiert den Speicherort, an dem die synchronisierte Datenkonfigurationsdatei gespeichert wird. Sie können die synchronisierten Dateien später in diesem Verzeichnis sehen.}; systemctl restart named

7.3 #Überprüfen Sie die Analyseergebnisse. Wenn das DNS-Dienstprogramm des Slave-Servers neu gestartet wird, wird die Datenkonfigurationsdatei im Allgemeinen automatisch vom Master-Server synchronisiert und die Datei wird standardmäßig an dem in der Zonenkonfigurationsdatei definierten Verzeichnisspeicherort abgelegt. Ändern Sie dann die Netzwerkparameter des Slave-Servers und ändern Sie die DNS-Adressparameter auf 192.168.10.20, damit Sie den vom Slave-Server selbst bereitgestellten DNS-Domänennamenauflösungsdienst verwenden können. Anschließend können Sie den Befehl nslookup verwenden, um die Analyseergebnisse erfolgreich anzuzeigen.

 cd /var/benannte/Slaves
  ls #Beachten Sie, dass der Slave-Server die Dateien des Master-Servers synchronisiert!
  nslookup 
  www.c74.com 
  192.168.10.10

Oben finden Sie die detaillierte Integration der Einrichtung eines DNS-Servers in Linux, die vom Herausgeber vorgestellt wurde. Ich hoffe, dass sie für alle hilfreich sein wird. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • Umfassende Analyse basierend auf dem HTTP-Browser-Cache-Mechanismus
  • Wissenszusammenfassung zum Browser-Cache und Anwendungsanalyse
  • Mehrere Möglichkeiten zum Löschen des Browser-Cache mit js
  • Zusammenfassung verschiedener Methoden zum Löschen des Browser-Cache (unbedingt lesen)
  • Grafisches Tutorial zur DNS-Serverkonfiguration unter Windows Server 2008 R2
  • So konfigurieren Sie DNS im Standard-Bridge-Netzwerk von Docker
  • Detaillierte Erläuterung zur Installation und Konfiguration des DNS-Servers in Windows Server 2012
  • Detaillierte Erklärung zur Installation des DNS-Servers bind9 unter Windows 7
  • So ändern Sie die IP-, DNS- und Routing-Befehlszeilenkonfiguration in Linux
  • Beheben Sie das Problem, dass die Änderung der DNS-Adresse direkt in der Datei /etc/resolv.conf in Cent0S 6.7 nach dem Neustart nicht wirksam wird
  • Detaillierte Erklärung zum Erstellen eines CDN-Servers mit Nginx (Bild und Text)
  • Was sind die Unterschiede zwischen CDN, SCDN und DCDN zur Website-Beschleunigung? Wie man wählt?
  • Detaillierte Erläuterung der Verwendung von CDN zur Beschleunigung von mit React WebPack gepackten Dateien
  • Schritte zur Domänennamenauflösung beim Alibaba Cloud Server (Tutorial für Anfänger)
  • Dieser Artikel zeigt Ihnen, was Browser-Cache, DNS, CDN und Domänennamenauflösungstypen sind

<<:  Grafisches Tutorial zur Installation und Konfiguration komprimierter Pakete von MySQL 5.7.17

>>:  So verwenden Sie SessionStorage und LocalStorage in Javascript

Artikel empfehlen

Zen-Codierung für Editplus – Beispielcodebeschreibung

Er gibt beispielsweise ein: XML/HTML Code div#Seit...

Kurze Einführung und Verwendung von Table und div

Web-Frontend 1 Studierendenausweis Name Geschlech...

10 Tipps für das User Interface Design mobiler Apps

Tipp 1: Konzentriert bleiben Die besten mobilen A...

Detailliertes Tutorial zum Herunterladen und Installieren von VMware Workstation

Virtuelle Maschinen sind eine sehr praktische Tes...

Mehrere Methoden zur Lösung des Problems des MySQL-Fuzzy-Abfrageindexfehlers

Wenn wir das Platzhalterzeichen „like %“ verwende...

So implementieren Sie eine bidirektionale MySQL-Sicherung

Die bidirektionale MySQL-Sicherung wird auch als ...

Beispiel für die Konfiguration der Timeout-Einstellung für MySQL-Datenbanken

Inhaltsverzeichnis Vorwort 1. JDBC-Timeout-Einste...

Verwenden Sie CSS, um spezielle Logos oder Grafiken zu implementieren

1. Einleitung Da Bilder viel Platz beanspruchen u...

Docker-Bereitstellung von Kafka und Spring Kafka-Implementierung

In diesem Artikel wird hauptsächlich die Bereitst...