So erstellen Sie eine DNS-Zonendatei

So erstellen Sie eine DNS-Zonendatei

meine Domäne ist easydata.ir und ich erstelle eine Zonendatei für meine Domäne, aber wenn ich den Befehl „dig“ verwende, wird Folgendes zurückgegeben:

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> ns1.easydata.ir
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 41395
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;ns1.easydata.ir.               IN      A

;; Query time: 136 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Jan 22 00:17:20 EST 2020
;; MSG SIZE  rcvd: 44

also habe ich meine Konfigurationsdatei eingefügt. Bitte sagen Sie mir, wie ich sie richtig einstelle.

$TTL 86400;
@ IN SOA ns1.easydata.ir. root.easydata.ir. (
  2013042201 ;Serial
  3600 ;Refresh
  1800 ;Retry
  604800 ;Expire
  86400 ;Minimum TTL ) ; add nameservers
@ IN NS ns1.easydata.ir. 
@ IN NS ns2.easydata.ir. ;IN MX 10 mail.easydata.ir.
ns1 IN A 198.143.181.237
ns2 IN A 198.143.181.237
www IN A 198.143.181.237
ftp IN A 198.143.181.237

Hier ist meine /etc/named.conf-Datei. Bitte sagen Sie mir, ob sie richtig ist.

options {
        listen-on port 53 { 127.0.0.1; 198.143.181.237;};
        #listen-on-v6 port 53 { ::1; };
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { localhost; 87.107.219.167; };

        /*
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         - If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.root.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

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

zone "easydata.ir" IN {
                type master;
                file "easydata.ir.zone";
                allow-update { none; };
        };

Antwort1

Ein kurzer Blick auf die betroffene Domäne zeigt, dass die Delegation wie folgt aussieht:

;; AUTHORITY SECTION:
easydata.ir.            1440    IN      NS      ns1.easydata.ir.
easydata.ir.            1440    IN      NS      ns2.easydata.ir.

;; ADDITIONAL SECTION:
ns1.easydata.ir.        1440    IN      A       198.143.181.237
ns2.easydata.ir.        1440    IN      A       198.143.181.237

(Randbemerkung: Sowohl ns1 als auch ns2 haben anscheinend dieselbe IP, wodurch die Existenz von zwei NSEinträgen sinnlos wird, da eindeutig immer noch ein einzelner Fehlerpunkt vorliegt.)

Die Abfrage führt jedoch 198.143.181.237zu einer Antwort mit dem Status REFUSED(d. h. der Nameserver ist so konfiguriert, dass keine Abfragen für diese Zone zulässig sind, oder die Zone existiert überhaupt nicht).

$ dig @198.143.181.237 easydata.ir NS +norec

; <<>> DiG 9.11.14-RedHat-9.11.14-2.fc31 <<>> @198.143.181.237 easydata.ir NS +norec
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 49376
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 921222c5e444e2602d3491645e282d41475c2ae33ad32e29 (good)
;; QUESTION SECTION:
;easydata.ir.                   IN      NS

;; Query time: 106 msec
;; SERVER: 198.143.181.237#53(198.143.181.237)
;; WHEN: Wed Jan 22 11:08:49 UTC 2020
;; MSG SIZE  rcvd: 68

$

Überprüfen Sie die Konfiguration ( named.confoder eine dort referenzierte Datei mitinclude), insbesondere dass die einschlägigenzoneEintrag vorhanden ist und ob esallow-*Anweisungen in den Abschnitten zoneoder options, die Abfragen nicht zulassen würden.

Insbesondere diese Zeile in Ihrer Konfiguration sieht problematisch aus, da sie stark einschränkt, wer Ihren Nameserver abfragen darf:

allow-query     { localhost; 87.107.219.167; };

Das Auskommentieren oder vollständige Entfernen dieser Zeile ist wahrscheinlich die sauberste Lösung.

Antwort2

Angenommen, Sie verfügen bereits über den primären Nameserver, der die maßgebliche Quelle für die von ihm repräsentierte Domäne ist, und Sie haben named.conf geändert, um Ihre Domäne einzurichten (sagen wir Example.com), müssen Sie Folgendes tun:

  • Erstellen Sie zwei neue Dateien - die Forward- und Reverse-Zone-Dateien, die Sie im Verzeichnis /var/named ablegen. Dieser Speicherort wird durch die Direktive „directory“ in der Konfigurationsdatei named.conf angegeben.

Erstellen der Forward-Zonendatei

Die Forward-Zone-Datei enthält „A“-Einträge, die die Namen der Hosts in der Zone (auch Domäne genannt) mit ihren jeweiligen IP-Adressen verknüpfen. Sie kann auch CNAME-Einträge enthalten, die Aliase für die echten Hostnamen in den A-Einträgen sind, sowie MX-Einträge für Mailserver.

Sie müssen eine grundlegende Forward-Zone-Datei erstellen, /var/named/example.com.zone, und ihr die folgenden Zeilen hinzufügen. Ihre Zonendatei sollte wie das folgende Beispiel aussehen:

; Authoritative data for example.com zone
;
$TTL 1D
@   IN SOA  serv.example.com   root.serv.example.com. (
                                       2020012201      ; serial
                                       1D              ; refresh
                                       1H              ; retry
                                       1W              ; expire
                                       3H )            ; minimum

$ORIGIN         example.com.
example.com.            IN      NS      serv.example.com.
epc                     IN      A       127.0.0.1
server                  IN      A       192.168.2.1
www                     IN      CNAME   server
mail                    IN      CNAME   server
test1                   IN      A       192.168.2.24
t1                      IN      CNAME   test1

; Mail server MX record
example.com.            IN      MX      10      mail.example.com.

Die erste Zeile ohne Kommentar ist die TTL, die in diesem Fall einen Tag für alle Datensätze beträgt (D steht für Day). Die Spezifizierer in der SOA-Zeile (Start of Authority) sind ebenso offensichtlich.

Der NS-Eintrag muss den FQDN (Fully Qualified Domain Name) des Hosts enthalten. Die Datei muss außerdem einen A-Eintrag mit einer gültigen IP-Adresse für den Host enthalten. Zum Testen sollten Sie die lokale IP-Adresse 127.0.0.1 verwenden. Andernfalls eine echte IP-Adresse.

Sie sollten das heutige Datum (also den aktuellen Tag, an dem dies geschieht) verwenden und einen Zähler anhängen, der bei 01 beginnt, um die Seriennummer anzugeben. Die obige Seriennummer ist die erste Änderung vom 22.01.2020. Die Seriennummer wird jedes Mal erhöht, wenn die Zonendatei geändert wird. Wenn es sekundäre Nameserver gäbe, die diesen für einen primären verwenden, würden sie nicht aktualisiert, es sei denn, die Seriennummer wird erhöht.

Jetzt müssen Sie die Forward-Zone-Dateien zu named.conf hinzufügen

Bevor Ihr DNS-Server jedoch funktioniert, müssen Sie einen Eintrag in /etc/named.conf erstellen, der auf Ihre neue Zonendatei verweist. Fügen Sie die folgenden Zeilen unter dem Eintrag für die Top-Level-Hints-Zone, aber vor den „Include“-Zeilen hinzu.

zone "example.com" IN {
        type master;
        file "example.com.zone";
};
  • Neustart mit dem Namen
  • Führen Sie Tests mit den Befehlen dig und nsloookup durch:

    dig test1.example.com

    dig mx beispiel.com

    nslookup test1.beispiel.com

    graben www.amd.com

Beachten Sie, dass die Verwendung des FQDN für diese Befehle mit Ausnahme des Befehls nslookup erforderlich ist, solange die Domänen- und Sucheinträge von Example.com in der Datei /etc/resolv.conf angegeben sind. Wenn dies nicht der Fall ist, verwenden Sie für alle Tests einfach die FQDNs.

Danach sollten Sie bereit sein, die Root-Nameserver bei Bedarf zu verwenden.

Antwort3

In Ihrer Dig-Ausgabe sehen Sie unter anderem, dass die Antwort, die Sie erhalten, von den öffentlichen Resolvern von Google stammt

;; SERVER: 8.8.8.8#53(8.8.8.8)

Wenn Sie Ihre eigenen Nameserver und DNS-Zonen testen, müssen Sie anweisen, digIhre eigenen Nameserver abzufragen und nicht die von zu /etc/resolve.confverwenden

dig ns1.example.com. @127.0.0.1

(oder was auch immer die IP-Adresse des Nameservers ist, mit dem Sie testen)

verwandte Informationen