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 bind
instalado, que estoy intentando configurar para alojar un dominio principal ( example.org
) y dos subdominios ( cnc.example.org
y 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 host1
desde el report.example.org
dominio recibo
server can't find host1: SERVFAIL
Cuando lo hago nslookup host2
desde el cnc.example.org
dominio recibo
server can't find host1: SERVFAIL
Configure de la siguiente manera:
anfitrión1:
- IP 192.168.252.21/24
- DNS 192.168.252.22
/etc/hosts
contienehost1.cnc.example.org
anfitrión2:
- IP 192.168.252.20/24
- DNS 192.168.252.22
/etc/hosts
contienehost2.report.example.org
Servidor DNS:
- IP 192.168.252.22/24
- DNS 127.0.0.1
/etc/hosts
contieneDNSServer.example.org
named.conf.local
configuració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.org
configuració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.org
configuració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.org
configuració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.org
y 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 host1
obtengoroot@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.org
motivo por el cual nslookup
no le devuelva una respuesta correctamente. En este caso, deberá reemplazar el domain example.org
en su /etc/resolv.conf
con search example.org report.example.org
o 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.conf
no incluye el componente que lo contiene, host2
por lo que nslookup
no puede ver el nombre no calificado host2
en ninguna parte.
Supongo que los archivos
/etc/hosts
y/etc/hostname
en host1 y host2 aún deberían estarhost1.cnc.example.org
yhost2.report.example.org
No tengo idea real de a qué te refieres cuando dices que /etc/hosts
debería ser así host1.cnc.example.org
. El /etc/hosts
archivo 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 nslookup
se ignora intencionalmente /etc/hosts
).
De cualquiera de los hosts cuando lo hago
nslookup host1.cnc.example.org
onslookup host2.report.example.org
resuelve 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.org
ycnc.example.org
parareport.example.org
que cuando un nuevo dispositivo se comunique con la red para solicitar nuevos comandos para ejecutar, consultecnc.example.org
y se dirija ahost1.cnc.example.org
(192.168.252.21), pero cuando quiera enviar informes De regreso a la red, consulta elreport.example.org
dominio y se dirige ahost2.report.example.org
(192.168.252.20).
Para hacer esto, usaría un CNAME
registro (alias) en el DNS, de modo que una consulta report.example.org
se asigne al host host2.report.example.org
. Tenga en cuenta que no hay ninguna razón técnica en su pregunta por la que host2
no deba llamarse host2.example.org
. CNAME
los registros pueden apuntar a cualquier lugar, no solo a los hosts en el (sub)dominio actual.
Respuesta2
Sí. 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.com
en example.com
la configuración.
host1.cnc IN A 192.168.252.21
Entonces, necesitas las siguientes actualizaciones
- Quitar
cnc.example.org
yreport.example.com
denamed.conf.local
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 comohost1.cnc.example.com. IN A 192.168.252.21
- Elimine los archivos de zona correspondientes a
cnc.example.com
yreport.example.com
reinicieBIND
el servidor.