Estou configurando um servidor DNS em casa para facilitar o alias de alguns dos meus servidores locais e também como um projeto para entender melhor o DNS. Desde que eu sou novo para isso, por favor, perdoe (e corrija se você) quaisquer erros com a terminologia!
O propósito do meu servidor DNS local é usar o meu domínio para acessar algumas das minhas máquinas locais. Então, digamos que meu domínio seja my-domain.com
. Eu tenho um servidor de mídia em casa que eu quero acessar como media.my-domain.com
, e eu tenho dois servidores DNS locais que eu uso para essa finalidade. Esses servidores DNS delegam para o DNS do Google para outras consultas.
Aqui está o meu arquivo de zona para my-domain.com
, que é armazenado em /etc/bind/zones/db.my-domain.com
no meu servidor DNS local ns1
:
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.my-domain.com. admin.my-domain.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; name servers - NS records
@ IN NS ns1.my-domain.com.
@ IN NS ns2.my-domain.com.
;
; name servers - A records
ns1.my-domain.com. IN A 10.55.55.55
ns2.my-domain.com. IN A 10.55.55.56
;
; 10.55.55.0/24 - A records
media.my-domain.com. IN A 10.55.55.100
Aqui está o meu arquivo de opções que é armazenado em /etc/bind/named.conf.options
no meu servidor DNS local ns1
:
acl "trusted" {
10.55.55.0/24; # home network
};
options {
directory "/var/cache/bind";
recursion yes;
allow-recursion { trusted; };
listen-on { 10.55.55.55; };
allow-transfer {none; }; # disable zone transfers
forwarders {
8.8.8.8; # google1
8.8.4.4; # google2
};
//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
Aqui, 10.55.55.0/24
é minha sub-rede local e ns1
e ns2
são meus servidores DNS principais e secundários, respectivamente.
Estou usando my-domain.com
para outras finalidades na Internet. Por exemplo, quando acesso o admin.my-domain.com
, ele é direcionado para o Admin Console de um site publicamente visível. Ou seja, se você executar um nslookup
on admin.my-domain.com
dos servidores DNS do Google, ele será mapeado para um endereço IP público acessível globalmente.
Infelizmente, depois de implementar meus servidores DNS locais, não consigo resolver admin.my-domain.com
corretamente. Minhas solicitações nslookup
atingiram meus servidores DNS locais, que não estão configurados para este subdomínio, e recebo "Sem resposta" do meu DNS local.
O comportamento que eu gostaria, em vez disso, é que meus servidores DNS encaminhem solicitações de my-domain.com
para o DNS do Google e forneçam apenas respostas para ns1.my-domain.com
, ns2.my-domain.com
e media.my-domain.com
. Eu tenho visto algumas questões que são semelhantes às minhas, mas as respostas tendem a ser para criar um arquivo de zona única para cada subdomínio. Este é realmente o único caminho? Eu realmente gostaria de poder dizer: "Se eu tiver especificado uma regra para x.my-domain.com
, siga essa regra. Caso contrário, delegue a cadeia (para o DNS do Google no meu caso)."
Não sei ao certo como solucionar isso com o Google, já que não sou muito claro sobre a terminologia e, como sou um noob total, não sei por onde começar a corrigi-lo sozinho. O que eu estou pedindo é possível? Qualquer ajuda sobre como eu poderia implementar esse comportamento, ou procurá-lo, seria muito apreciada. Obrigado!