Ist es möglich, eine übergeordnete und eine untergeordnete Domäne auf einem Bind-Server zu hosten?

Ist es möglich, eine übergeordnete und eine untergeordnete Domäne auf einem Bind-Server zu hosten?

NB Dies ist ein Repost vonmeine vorherige Frage, das auf Eis gelegt wurde, und um eine Umformulierung zur besseren Verständlichkeit gebeten wurde (ich hoffe, das ist verständlicher)


Ich habe einen einzelnen DNS-Server bindinstalliert, den ich so einzurichten versuche, dass er eine übergeordnete Domäne ( example.org) und zwei Unterdomänen ( cnc.example.orgund report.example.org) hostet, sodass DNS-Abfragen für Geräte innerhalb einer der Domänen vom einzelnen DNS-Server bearbeitet werden können.

Meine erste Frage, ist das möglich?

Wenn ja, warum erhalte ich die folgenden Fehlermeldungen?

Wenn ich das nslookup host1von der report.example.orgDomäne aus mache, erhalte ich

server can't find host1: SERVFAIL

Wenn ich das nslookup host2von der cnc.example.orgDomäne aus mache, erhalte ich

server can't find host1: SERVFAIL

Netzwerktopologie

Das Setup geht wie folgt:

Host1:

  • IP-Adresse 192.168.252.21/24
  • DNS 192.168.252.22
  • /etc/hostsenthälthost1.cnc.example.org

Gastgeber2:

  • IP-Adresse 192.168.252.20/24
  • DNS 192.168.252.22
  • /etc/hostsenthälthost2.report.example.org

DNS Server:

  • IP-Adresse 192.168.252.22/24
  • DNS 127.0.0.1
  • /etc/hostsenthältDNSServer.example.org

named.conf.localAufbau

/
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

zone "example.org" {
    type master;
    file "/etc/bind/zones/example.org";
#    allow-transfer { 192.168.252.22; };
};

zone "cnc.example.org" {
    type master;
    file "/etc/bind/zones/cnc.example.org";
#    allow-transfer { 192.168.252.22; };
};

zone "report.example.org" {
    type master;
    file "/etc/bind/zones/report.example.org";
#    allow-transfer { 192.168.252.22; };
};

zone "252.168.192.in-appr.arpa" {
     type master;
     file "/etc/bind/zones/reverse/rev.252.168.192";
     allow-transfer { 192.168.252.22; };
};

example.orgAufbau

;
; BIND data for example.org or report.example.org
;
$TTL 3h
@           IN  SOA DNSServer.example.org.  root.example.org. (
                        1       ; serial
                        3h      ; refresh
                        1h      ; retry
                        1w      ; expire
                        1h )    ; minimum
;
; main domain name servers - NS records
                    IN  NS  DNSServer.example.org.


; main domain name servers - A records
DNSServer               IN  A   192.168.252.22


;delegated zones
cnc.example.org.                IN  NS  DNSServer.example.org.
report.example.org.         IN  NS  DNSServer.example.org.

* Ausgabe von /etc/resolv.conf auf DNSServer *

  # Generated by NetworkManager
    search example.org
    nameserver 127.0.0.1

* Ausgabe von /etc/resolv.conf auf Host1 *

 # Generated by NetworkManager
    search report.example.org
    nameserver 192.168.252.22

* Ausgabe von /etc/resolv.conf auf Host2 *

  # Generated by NetworkManager
    search cnc.example.org
    nameserver 192.168.252.22

* Ausgabe vom dig DNSServer auf dem DNSServer *

root@DNSServer:/etc/bind/zones/reverse# dig DNSServer

; <<>> DiG 9.10.3-P4-Debian <<>> DNSServer
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 45573
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;DNSServer.         IN  A

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Nov 27 10:47:23 GMT 2017
;; MSG SIZE  rcvd: 38

* Ausgabe mit dig DNSServer.example.org *

   root@DNSServer:/home/osboxes# dig DNSServer.example.org

    ; <<>> DiG 9.10.3-P4-Debian <<>> DNSServer.example.org
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12335
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;DNSServer.example.org.     IN  A

    ;; ANSWER SECTION:
    DNSServer.example.org.  10800   IN  A   192.168.252.22

    ;; AUTHORITY SECTION:
    example.org.        10800   IN  NS  DNSServer.example.org.

    ;; Query time: 0 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Mon Nov 27 11:01:19 GMT 2017
    ;; MSG SIZE  rcvd: 79

* Ausgabe von dig host1 auf DNSServer *

root@DNSServer:/etc/bind/zones/reverse# dig host1

; <<>> DiG 9.10.3-P4-Debian <<>> host1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 19414
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;host1.         IN  A

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Nov 27 10:48:15 GMT 2017
;; MSG SIZE  rcvd: 40

cnc.example.orgAufbau

;
; BIND data for example.org or report.example.org
;
$TTL 3h
@           IN  SOA DNSServer.example.org.  root.example.org. (
                        1       ; serial
                        3h      ; refresh
                        1h      ; retry
                        1w      ; expire
                        1h )    ; minimum
;
; main domain name servers - NS records
@                   IN  NS  DNSServer.example.org.


; main domain name servers - A records
;DNSServer              IN  A   192.168.252.22


;192.168.252.0/24 - A Records
host1.cnc.example.org.      IN  A   192.168.252.21

report.example.orgAufbau

;
; BIND data for example.org or report.example.org
;
$TTL 3h
@           IN  SOA DNSServer.example.org.  root.example.org. (
                        1       ; serial
                        3h      ; refresh
                        1h      ; retry
                        1w      ; expire
                        1h )    ; minimum
;
; main domain name servers - NS records
@                   IN  NS  DNSServer.example.org.

; main domain name servers - A records
DNSServer               IN  A   192.168.252.22

;192.168.252.0/24 - A Records
host2.report.example.org.   IN  A   192.168.252.20

Danke

Antwort1

Sie können die Delegation verwenden, aber wenn Sie sie nicht wirklich benötigen, würde ich vorschlagen, dass Sie die Dinge einfach halten und eine Zone verwenden, die example.org, cnc.example.org, und enthält report.example.org.

;
; BIND data for example.org
;
$TTL 3h
@           IN  SOA DNSServer.example.org.  root.example.org. (
                        1       ; serial
                        3h      ; refresh
                        1h      ; retry
                        1w      ; expire
                        1h )    ; minimum
;
; main domain name servers - NS records
                    IN  NS  DNSServer.example.org.

; main domain name servers - A records
DNSServer           IN  A  192.168.252.22

; public targets
cnc                 IN  CNAME  host1.cnc
report              IN  CNAME  host2.report

; hosts delivering services
host1.cnc           IN  A   192.168.252.21
host2.report        IN  A   192.168.252.20

Zitat aus Kommentaren:

Wenn ich das auf dem DNS-Server mache, nslookup host1erhalte ich

root@host1:/home/osbixes# nslookup host2
Server: 127.0.0.1
Address 127.0.0.1#53
** server can’t find host2: SERVFAIL

Es gibt keinen Suchpfad auf dem DNS-Server, aber die Domäne ist example.org, was bedeutet, dass alle unqualifizierten Namen in dieser Domäne sein müssen. Es gibt keinen, host2.example.orgdaher wird Ihnen korrekterweise keine Antwort zurückgegeben. In diesem Fall müssten Sie entweder das in Ihrem durch nslookupersetzen oder nachschlagen .domain example.org/etc/resolv.confsearch example.org report.example.orgnslookup host2.report

Von Host1 oder Host2 bekomme ich

root@host1:/home/osbixes# nslookup host2
Server: 192.168.252.22
Address 192.168.252.22#53
** server can’t find host2: SERVFAIL

Gleicher Grund. Ihre Domäne (Suchpfad) /etc/resolv.confenthält die entsprechende Komponente nicht, host2daher nslookupist der unqualifizierte Name host2nirgends zu sehen.

Ich gehe davon aus, dass die /etc/hostsund Dateien auf Host1 und Host2 weiterhin und /etc/hostnamesein sollten.host1.cnc.example.orghost2.report.example.org

Ich habe keine Ahnung, was Sie meinen, wenn Sie sagen, dass es /etc/hostssein sollte host1.cnc.example.org. Die /etc/hostsDatei ist eine alternative Möglichkeit, Hostnamen und IP-Adressen zuzuordnen. Wenn Sie nur zwei oder drei Hostnamen haben, können Sie die Komplexität des internen DNS genauso gut vermeiden und diese Einträge einfach in eingeben /etc/hosts. Wenn Sie andererseits eine angemessene Anzahl von Hosts haben, ist DNS eine gute zentralisierte Lösung für ein lokales Netzwerk. (Bedenken Sie jedoch, dass dabei nslookupabsichtlich ignoriert wird /etc/hosts.)

Von einem der Hosts, wenn ich das tue nslookup host1.cnc.example.orgoder nslookup host2.report.example.orges löst die IP-Adresse korrekt auf

Ja. Sie haben einen vollqualifizierten Namen angegeben, der nslookup(und bind) korrekt aufgelöst werden kann. Dies beweist, dass DNS gut funktioniert.

Ich brauche einen einzelnen DNS-Server, der alle Abfragen verarbeitet example.org, cnc.example.orgsodass report.example.org, wenn ein neues Gerät mit dem Netzwerk kommuniziert und neue auszuführende Befehle anfordert, es die Abfrage macht cnc.example.orgund an (192.168.252.21) weitergeleitet wird host1.cnc.example.org, aber wenn es Berichte an das Netzwerk zurücksenden möchte, die Domäne abfragt und an (192.168.252.20) report.example.orgweitergeleitet wird .host2.report.example.org

Dazu würden Sie einen CNAME(Alias-)Eintrag im DNS verwenden, sodass eine Abfrage report.example.orgfür dem Host zugeordnet wird host2.report.example.org. Beachten Sie, dass es in Ihrer Frage keinen technischen Grund gibt, warum host2nicht aufgerufen werden sollte host2.example.org. CNAME-Einträge können überallhin verweisen, nicht nur auf Hosts in der aktuellen (Sub-)Domäne.

Antwort2

Ja. Es ist jedoch nicht erforderlich, eine separate Konfiguration für die Subdomäne zu erstellen.

Ein A .am Ende bedeutet einen vollständigen Domänennamen, und ohne A .bedeutet es eine Subdomäne der ursprünglichen Domäne.

Fügen Sie einen Eintrag wie diesen nur cnc.example.comin example.comder Konfiguration hinzu.

host1.cnc      IN  A   192.168.252.21    

Sie benötigen also die folgenden Updates

  1. Entfernen cnc.example.orgund report.example.comvonnamed.conf.local
  2. Fügen Sie alle Einträge, die der Subdomäne entsprechen, ohne ein .at in der Konfiguration der übergeordneten Domäne hinzu. Sie können sie auch explizit in der Zone der übergeordneten Domäne angeben, wie

    host1.cnc.example.com.  IN A  192.168.252.21
    
  3. Entfernen Sie die entsprechenden Zonendateien cnc.example.comund report.example.comstarten Sie BINDden Server neu.

verwandte Informationen