É possível hospedar um domínio pai e filho em um servidor de ligação?

É possível hospedar um domínio pai e filho em um servidor de ligação?

NB Esta é uma repostagem deminha pergunta anterior, que foi colocado em espera e solicitado a ser reformulado para maior clareza (espero que faça mais sentido)


Eu tenho um único servidor DNS bindinstalado, que estou tentando configurar para hospedar um domínio pai ( example.org) e dois subdomínios ( cnc.example.orge report.example.org) para que os dispositivos dentro de qualquer um dos domínios possam ter consultas DNS atendidas pelo único servidor DNS.

Minha primeira pergunta é isso possível?

Em caso afirmativo, por que receberia os seguintes erros?

Quando faço nslookup host1do report.example.orgdomínio recebo

server can't find host1: SERVFAIL

Quando faço nslookup host2do cnc.example.orgdomínio recebo

server can't find host1: SERVFAIL

topologia de rede

Configure da seguinte forma:

anfitrião1:

  • IP 192.168.252.21/24
  • DNS 192.168.252.22
  • /etc/hostscontémhost1.cnc.example.org

anfitrião2:

  • IP 192.168.252.20/24
  • DNS 192.168.252.22
  • /etc/hostscontémhost2.report.example.org

Servidor dns:

  • IP 192.168.252.22/24
  • DNS 127.0.0.1
  • /etc/hostscontémDNSServer.example.org

named.conf.localconfiguração

/
// 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.orgconfiguração

;
; 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.

* saída de /etc/resolv.conf no DNSServer *

  # Generated by NetworkManager
    search example.org
    nameserver 127.0.0.1

* saída de /etc/resolv.conf no host1 *

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

* saída de /etc/resolv.conf no host2 *

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

* saída de dig DNSServer no 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

* saída usando 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

* saída de dig host1 no 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.orgconfiguração

;
; 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.orgconfiguração

;
; 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

obrigado

Responder1

Você pode usar a delegação, mas, a menos que realmente precise, sugiro que você mantenha as coisas simples e use uma zona que contenha example.org, cnc.example.org, e 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

Citando comentários:

No DNSServer quando eu nslookup host1recebo

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

Não há caminho de pesquisa no DNSServer, mas o domínio é example.org, o que significa que todos os nomes não qualificados devem estar nesse domínio. Não há host2.example.orgrazão nslookuppara não retornar uma resposta. Nesse caso, você precisaria substituir o domain example.orgno seu /etc/resolv.confpor search example.org report.example.orgou procurar nslookup host2.report.

De host1 ou host2 eu recebo

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

Mesma razão. Seu domínio (caminho de pesquisa) /etc/resolv.confnão inclui o componente que contém, host2portanto nslookupnão é possível ver o nome não qualificado host2em lugar nenhum.

Presumo que os arquivos /etc/hostse /etc/hostnameem host1 e host2 ainda devam ser host1.cnc.example.orgehost2.report.example.org

Não tenho ideia do que você quer dizer quando diz que /etc/hostsdeveria ser host1.cnc.example.org. O /etc/hostsarquivo é uma forma alternativa de mapeamento entre nomes de host e endereços IP. Se você tiver apenas dois ou três nomes de host, é melhor evitar a complexidade do DNS interno e apenas colocar essas entradas em /etc/hosts. Por outro lado, se você tiver um número razoável de hosts, o DNS será uma boa solução centralizada para uma rede local. (Tenha em mente, porém, que isso nslookupignora intencionalmente /etc/hosts.)

De qualquer um dos hosts quando eu faço isso nslookup host1.cnc.example.orgou nslookup host2.report.example.orgele resolve corretamente o endereço IP

Sim. Você forneceu um nome totalmente qualificado, que nslookup(e bind) pode ser resolvido corretamente. Isso prova que o DNS está funcionando bem.

Eu preciso de um único servidor DNS para lidar com qualquer consulta example.orge cnc.example.orgpara report.example.orgque quando um novo dispositivo se comunique de volta à rede para solicitar novos comandos para executar, ele consulte cnc.example.orge seja direcionado para host1.cnc.example.org(192.168.252.21), mas quando quiser enviar relatórios de volta à rede ele consulta o report.example.orgdomínio e é direcionado para host2.report.example.org(192.168.252.20)

Para fazer isso você usaria um CNAMEregistro (alias) no DNS, para que uma consulta report.example.orgfosse mapeada para o host host2.report.example.org. Observe que não há razão técnica na sua pergunta para host2não ser chamado host2.example.org. CNAMEos registros podem apontar para qualquer lugar, não apenas para hosts no (sub)domínio atual.

Responder2

Sim. Mas não há necessidade de criar configurações específicas para o subdomínio.

Um .no final significa um nome de domínio completo e sem .significa um subdomínio do domínio original.

Adicione uma entrada como esta apenas cnc.example.comna example.comconfiguração.

host1.cnc      IN  A   192.168.252.21    

Então, você precisa das seguintes atualizações

  1. Remover cnc.example.orge report.example.comdenamed.conf.local
  2. Adicione todas as entradas correspondentes ao subdomínio sem .final na configuração do domínio pai. Você também pode mencioná-los explicitamente na zona dos pais, como

    host1.cnc.example.com.  IN A  192.168.252.21
    
  3. Remova os arquivos de zona correspondentes cnc.example.come report.example.comreinicie BINDo servidor.

informação relacionada