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 NS
Einträgen sinnlos wird, da eindeutig immer noch ein einzelner Fehlerpunkt vorliegt.)
Die Abfrage führt jedoch 198.143.181.237
zu 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.conf
oder eine dort referenzierte Datei mitinclude
), insbesondere dass die einschlägigenzone
Eintrag vorhanden ist und ob esallow-*
Anweisungen in den Abschnitten zone
oder 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, dig
Ihre eigenen Nameserver abzufragen und nicht die von zu /etc/resolve.conf
verwenden
dig ns1.example.com. @127.0.0.1
(oder was auch immer die IP-Adresse des Nameservers ist, mit dem Sie testen)