¿Es posible alojar un dominio principal y un dominio secundario en un servidor de enlace?

¿Es posible alojar un dominio principal y un dominio secundario en un servidor de enlace?

NB Esta es una nueva publicación demi pregunta anterior, que quedó en suspenso y se pidió que se reformulara para mayor claridad (espero que esto tenga más sentido)


Tengo un único servidor DNS bindinstalado, que estoy intentando configurar para alojar un dominio principal ( example.org) y dos subdominios ( cnc.example.orgy report.example.org) para que los dispositivos dentro de cualquiera de los dominios puedan tener consultas DNS atendidas por un único servidor DNS.

Mi primera pregunta ¿es esto posible?

Si es así, ¿por qué recibiría los siguientes errores?

Cuando lo hago nslookup host1desde el report.example.orgdominio recibo

server can't find host1: SERVFAIL

Cuando lo hago nslookup host2desde el cnc.example.orgdominio recibo

server can't find host1: SERVFAIL

topología de la red

Configure de la siguiente manera:

anfitrión1:

  • IP 192.168.252.21/24
  • DNS 192.168.252.22
  • /etc/hostscontienehost1.cnc.example.org

anfitrión2:

  • IP 192.168.252.20/24
  • DNS 192.168.252.22
  • /etc/hostscontienehost2.report.example.org

Servidor DNS:

  • IP 192.168.252.22/24
  • DNS 127.0.0.1
  • /etc/hostscontieneDNSServer.example.org

named.conf.localconfiguración

/
// 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.orgconfiguración

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

* salida de /etc/resolv.conf en DNSServer *

  # Generated by NetworkManager
    search example.org
    nameserver 127.0.0.1

* salida de /etc/resolv.conf en host1 *

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

* salida de /etc/resolv.conf en host2 *

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

* salida de dig DNSServer en 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

* salida 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

* salida de dig host1 en 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.orgconfiguración

;
; 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.orgconfiguración

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

gracias

Respuesta1

Puede usar la delegación, pero a menos que realmente la necesite, le sugiero que mantenga las cosas simples y use una zona que contenga example.org, cnc.example.orgy 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 comentarios:

En el servidor DNS cuando lo hago nslookup host1obtengo

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

No hay una ruta de búsqueda en DNSServer, pero el dominio es example.org, lo que significa que todos los nombres no calificados deben estar en ese dominio. No hay ningún host2.example.orgmotivo por el cual nslookupno le devuelva una respuesta correctamente. En este caso, deberá reemplazar el domain example.orgen su /etc/resolv.confcon search example.org report.example.orgo buscar nslookup host2.report.

Desde host1 o host2 obtengo

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

Misma razón. Su dominio (ruta de búsqueda) /etc/resolv.confno incluye el componente que lo contiene, host2por lo que nslookupno puede ver el nombre no calificado host2en ninguna parte.

Supongo que los archivos /etc/hostsy /etc/hostnameen host1 y host2 aún deberían estar host1.cnc.example.orgyhost2.report.example.org

No tengo idea real de a qué te refieres cuando dices que /etc/hostsdebería ser así host1.cnc.example.org. El /etc/hostsarchivo es una forma alternativa de mapear entre nombres de host y direcciones IP. Si solo tiene dos o tres nombres de host, también puede evitar la complejidad del DNS interno y simplemente colocar esas entradas en /etc/hosts. Por otro lado, si tiene una cantidad razonable de hosts, DNS es una buena solución centralizada para una red local. (Tenga en cuenta, sin embargo, que esto nslookupse ignora intencionalmente /etc/hosts).

De cualquiera de los hosts cuando lo hago nslookup host1.cnc.example.orgo nslookup host2.report.example.orgresuelve correctamente la dirección IP

Sí. Ha proporcionado un nombre completo, que nslookup(y bind) puede resolver correctamente. Esto prueba que cualquiera de los DNS funciona bien.

Necesito un único servidor DNS para manejar cualquier consulta example.orgy cnc.example.orgpara report.example.orgque cuando un nuevo dispositivo se comunique con la red para solicitar nuevos comandos para ejecutar, consulte cnc.example.orgy se dirija a host1.cnc.example.org(192.168.252.21), pero cuando quiera enviar informes De regreso a la red, consulta el report.example.orgdominio y se dirige a host2.report.example.org(192.168.252.20).

Para hacer esto, usaría un CNAMEregistro (alias) en el DNS, de modo que una consulta report.example.orgse asigne al host host2.report.example.org. Tenga en cuenta que no hay ninguna razón técnica en su pregunta por la que host2no deba llamarse host2.example.org. CNAMElos registros pueden apuntar a cualquier lugar, no solo a los hosts en el (sub)dominio actual.

Respuesta2

. Pero no es necesario crear una configuración especial para el subdominio.

Una .al final significa un nombre de dominio completo y sin una .significa un subdominio del dominio original.

Agregue una entrada como esta solo cnc.example.comen example.comla configuración.

host1.cnc      IN  A   192.168.252.21    

Entonces, necesitas las siguientes actualizaciones

  1. Quitar cnc.example.orgy report.example.comdenamed.conf.local
  2. Agregue todas las entradas correspondientes al subdominio sin un .final en la configuración del dominio principal. También puedes mencionarlos explícitamente en la zona de padres como

    host1.cnc.example.com.  IN A  192.168.252.21
    
  3. Elimine los archivos de zona correspondientes a cnc.example.comy report.example.comreinicie BINDel servidor.

información relacionada