Domain Name Service (DNS) é um serviço de Internet que mapeia endereços IP e nomes de domínio totalmente qualificados (FQDN) um para o outro. Desta forma, o DNS alivia a necessidade de lembrar endereços IP. Computadores que executam DNS são chamados servidores de nomes. Ubuntu ships with BIND( Berkley Internet Naming Daemon), the most common program used for maintaining a name server on Linux.,
numa linha de comandos do terminal, indique o seguinte comando para instalar dns:
sudo apt install bind9
um pacote muito útil para testar e resolver problemas de DNS é o dnsutils
pacote. Muitas vezes essas ferramentas será instalado já, mas para verificar e/ou instalar o dnsutils
insira o seguinte:
sudo apt install dnsutils
Configuração
Existem muitas maneiras de configurar o BIND9. Algumas das configurações mais comuns são um servidor de nomes Cache, servidor primário e servidor secundário.,
-
quando configurado como um servidor de nomes de cache BIND9 irá encontrar a resposta para consultas de nomes e recordar a resposta quando o domínio for questionado novamente.
-
Como um servidor primário, BIND9 lê os dados para uma zona a partir de um arquivo em seu host e é autoritário para essa zona.
-
Como um servidor secundário, BIND9 recebe os dados da zona de outro servidor de nomes que é autoritário para a zona.
visão geral
os ficheiros de configuração DNS são armazenados na pasta /etc/bind
., O arquivo de configuração primária é /etc/bind/named.conf
, que na disposição fornecida pelo pacote apenas inclui esses arquivos.
os nomes de raiz usados para serem descritos no arquivo /etc/bind/db.root
. Este é agora fornecido pelo arquivo /usr/share/dns/root.hints
enviado com o arquivo dns-root-data
, e é referenciado no arquivo named.conf.default-zones
configuração acima.
é possível configurar o mesmo servidor para ser um servidor de nomes de cache, primário e secundário: tudo depende das zonas que está servindo., Um servidor pode ser o início da Autoridade (SOA) para uma zona, enquanto fornece serviço secundário para outra zona. Todo o tempo fornecendo serviços de caching para hosts na LAN local.
processador de nomes
a configuração por omissão funciona como um servidor de cache. Simplesmente descomente e edite /etc/bind/named.conf.options
para definir os endereços IP dos servidores de DNS do ISP:
forwarders { 1.2.3.4; 5.6.7.8;};
Nota
Substituir
1.2.3.4
e5.6.7.8
com os Endereços IP real de servidores de nomes.,
Para activar a nova configuração, reinicie o servidor DNS. A partir de uma linha de comandos do terminal:
sudo systemctl restart bind9.service
veja o dig para mais informações sobre o teste de um servidor de DNS de cache.
servidor primário
nesta secção BIND9 será configurado como o servidor primário para o domínio example.com
. Simplesmente substitua example.com
por seu FQDN (nome de domínio totalmente qualificado).,
para a Frente da Zona de Arquivo
Para adicionar uma zona de DNS para o BIND9, transformando o BIND9-se em um servidor Primário, primeira edição /etc/bind/named.conf.local
:
zone "example.com" { type master; file "/etc/bind/db.example.com";};
Nota
Se ligar vai receber atualizações automáticas do arquivo como com DDNS, em seguida, use
/var/lib/bind/db.example.com
ao invés de/etc/bind/db.example.com
tanto aqui e no comando copy abaixo.,
Agora usar um arquivo de zona existente como um modelo para criar o /etc/bind/db.example.com
ficheiro:
sudo cp /etc/bind/db.local /etc/bind/db.example.com
Edite o novo arquivo de zona /etc/bind/db.example.com
e altere o localhost.
para o FQDN do servidor, deixando-o adicional .
no final., Altere o 127.0.0.1
para o servidor de nomes do Endereço IP e da root.localhost
para um endereço de email válido, mas com uma .
em vez do habitual ” @
símbolo, deixando novamente o .
no final. Altera o comentário para indicar o domínio para o qual este ficheiro se destina.
crie um registro para o domínio de base, example.com
. Além disso, crie um registo para ns.example.com
, o servidor de nomes neste exemplo:
tem de aumentar o número de série sempre que fizer alterações ao ficheiro zone., Se você fizer várias alterações antes de reiniciar BIND9, simplesmente aumente a série uma vez.
Agora, você pode adicionar registros DNS para o fundo do arquivo zone. Veja os tipos de Registos comuns para mais detalhes.,
Nota
Muitos administradores de como usar a última data editado como o de série de um horário, como 2020012100 que é yyyymmddss (onde ss é o Número de Série)
Depois de ter feito alterações no arquivo de zona BIND9 precisa ser reiniciado para que as alterações entrem em vigor:
sudo systemctl restart bind9.service
Zona Reversa de arquivos
Agora que a zona é a instalação e a resolução de nomes para Endereços IP, uma zona Inversa precisa ser adicionado ao permite que o DNS para resolver um endereço para um nome.,
Editar /etc/bind/named.conf.local
e adicione o seguinte:
zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192";};
Nota
Substituir
1.168.192
com os três primeiros octetos de qualquer rede que você está usando. Além disso, nomeie o arquivo zone/etc/bind/db.192
apropriadamente. Deve corresponder ao primeiro octeto da sua rede.,
Agora crie o /etc/bind/db.192
arquivo:
sudo cp /etc/bind/db.127 /etc/bind/db.192
a Próxima edição /etc/bind/db.192
alterar as mesmas opções como /etc/bind/db.example.com
:
O Número de Série na zona Inversa precisa ser incrementado em cada mudança. Para cada registo que configurar em /etc/bind/db.example.com
, ou seja, para um endereço diferente, é necessário criar um registo PTR em /etc/bind/db.192
.,
Depois de criar o arquivo de zona reversa reiniciar o BIND9:
sudo systemctl restart bind9.service
Servidor Secundário
uma Vez que um Servidor Principal tiver sido configurado um Servidor Secundário é altamente recomendado, a fim de manter a disponibilidade do domínio deve Primária tornar-se indisponível.
primeiro, no servidor primário, a transferência de zona precisa ser permitida., Adicione o allow-transfer
opção para o exemplo de Forward e Reverse zona de definições /etc/bind/named.conf.local
:
Nota
Substituir
192.168.1.11
com o Endereço IP do seu servidor de nomes Secundário.
Reinicie o BIND9 no servidor Primário:
sudo systemctl restart bind9.service
em seguida, no servidor Secundário, instale o pacote bind9 da mesma forma como no Primário., Em seguida, edite o /etc/bind/named.conf.local
e adicione as seguintes declarações para a Frente e zonas de Reverse:
Nota
Substituir
192.168.1.10
com o Endereço IP do seu servidor de nomes Principal.,
Reinicie o BIND9 no servidor Secundário:
sudo systemctl restart bind9.service
/var/log/syslog
você deverá ver algo semelhante à seguinte (algumas linhas foram divididas para ajustar o formato do documento):
Nota
Nota: A zona de são transferidos somente se o Número de Série do Primário é maior do que o do Secundário., Se você quiser ter o seu DNS Primário notificar outros Servidores de DNS Secundários das alterações de fuso horário, você pode adicionar
also-notify { ipaddress; };
/etc/bind/named.conf.local
, como mostrado no exemplo abaixo:
Nota
O diretório padrão para não-autorizado de arquivos de zona é
/var/cache/bind/
. Esta pasta também está configurada no AppArmor para permitir que o servidor nomeado escreva para ele. Para mais informações sobre AppArmor, consulte Security-AppArmor.,
solução de problemas
Esta secção abrange o diagnóstico de problemas com configurações de DNS e BIND9.
ensaio
resolução.conf
o primeiro passo no teste BIND9 é adicionar o endereço IP do servidor de nomes a um servidor de máquinas. O servidor de nomes primário deve ser configurado, bem como outro host para verificar as coisas. Consulte a configuração do cliente DNS para obter mais detalhes sobre a adição de endereços de servidor de nomes aos seus clientes de rede., No final, o nameserver
linha /etc/resolv.conf
deve estar apontando para 127.0.0.53
e você deve ter uma search
parâmetro para o seu domínio. Algo como:
nameserver 127.0.0.53search example.com
Para verificar qual o DNS do servidor de seu local de resolução está usando, execute:
systemd-resolve --status
Nota
Você também deve adicionar o Endereço IP do servidor de nomes Secundário para a configuração do cliente no caso o Principal não estiver disponível.,
dig
Se instalou o pacote dnsutils, poderá testar a sua configuração com a escavação do utilitário DNS:
-
Depois de instalar o BIND9 use o dig contra a interface loopback para se certificar de que está a ouvir no Porto 53.,eu>
Se você tiver configurado o BIND9, como o Cache do servidor de nomes “cavar” um domínio externo para verificar o tempo de consulta:
dig ubuntu.com
Note que o tempo de consulta para o fim de saída do comando:
;; Query time: 49 msec
Depois de uma segunda escavação deve haver melhoria:
;; Query time: 1 msec
ping
Agora, para demonstrar como os aplicativos utilizam o DNS para resolver um nome de host use o utilitário ping para enviar uma solicitação de eco ICMP:
ping example.com
Isso testa se o servidor de nomes pode resolver o nome de ns.example.com
para um Endereço IP., A saída de comandos deve assemelhar-se a:
named-checkzone
uma grande maneira de testar os ficheiros da sua zona é usando o pacote named-checkzone
utilitário instalado com o bind9
. Este utilitário permite que você se certifique de que a configuração está correta antes de reiniciar BIND9 e fazer as mudanças ao vivo.,
-
Para testar o nosso exemplo para a Frente da zona de arquivo digite o seguinte em um prompt de comando:
named-checkzone example.com /etc/bind/db.example.com
Se tudo estiver configurado corretamente, você deve ver uma saída semelhante ao seguinte:
zone example.com/IN: loaded serial 6OK
-
da mesma forma, para testar a zona Reversa do arquivo digite o seguinte:
named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192
A saída deve ser semelhante a:
zone 1.168.192.in-addr.arpa/IN: loaded serial 3OK
Nota
O Número de Série do seu arquivo de zona serão provavelmente diferentes.,
registo temporário rápido da consulta
com a ferramenta rndc
, pode activar e desactivar rapidamente o registo da consulta, sem reiniciar o serviço ou alterar o ficheiro de configuração.
Para ativar o log de consulta, execute o:
sudo rndc querylog on
da Mesma forma, para desativá-lo, execute:
sudo rndc querylog off
Os logs serão enviadas ao syslog e aparecerão na /var/log/syslog
por padrão:
Nota
A quantidade de logs gerados pelo permitindo
querylog
pode ser enorme!,
Logging
BIND9 tem uma grande variedade de opções de configuração de registro disponíveis, mas as duas principais são canal e categoria, que configuram onde os logs vão, e que informações são registradas, respectivamente.
Se não estiverem configuradas opções de registo, a configuração por omissão é:
logging { category default { default_syslog; default_debug; }; category unmatched { null; };};
vamos em vez disso configurar BIND9 para enviar mensagens de depuração relacionadas com consultas DNS para um ficheiro separado.
é necessário configurar um canal para especificar o ficheiro para onde enviar as mensagens e uma categoria., Neste exemplo, a categoria registrará todas as consultas. Editar /etc/bind/named.conf.local
e adicione o seguinte:
logging { channel query.log { file "/var/log/named/query.log"; severity debug 3; }; category queries { query.log; };};
Nota
A opção de depuração pode ser definida de 1 a 3. Se um nível não é especificado, o Nível 1 é o padrão.,
-
Desde que o chamado daemon é executado como o usuário de associação
/var/log/named
diretório deve ser criado e a propriedade mudou de:sudo mkdir /var/log/namedsudo chown bind:bind /var/log/named
-
Agora reinicie o BIND9 para que as alterações entrem em vigor:
sudo systemctl restart bind9.service
Você deve ver o ficheiro /var/log/named/query.log
preencha com as informações de consulta. Este é um exemplo simples das opções de registro BIND9. Para a cobertura de opções avançadas, consulte Mais informações.,
tipos de Registos comuns
Esta secção abrange alguns dos tipos de Registos DNS mais comuns.
-
A
record: este registo mapeia um endereço IP para um nome de máquina.www IN A 192.168.1.12
-
CNAME
record: usado para criar uma alcunha para um registo A existente. Você não pode criar um registroCNAME
apontando para outro registroCNAME
.web IN CNAME www
-
MX
record: usado para definir para onde o e-mail deve ser enviado., Must point to anA
record, not aCNAME
.@ IN MX 1 mail.example.com.mail IN A 192.168.1.13
-
NS
record: usado para definir quais servidores servem cópias de uma zona. Ele deve apontar para umA
registro, não umCNAME
. É aqui que os servidores primários e secundários são definidos.@ IN NS ns.example.com.@ IN NS ns2.example.com.ns IN A 192.168.1.10ns2 IN A 192.168.1.11
Mais Informações
-
a Montante BIND9 Documentação
-
Bind9.net tem links para uma grande coleção de DNS e o BIND9 recursos.,
-
DNS and BIND é um livro popular na sua quinta edição. Há agora também um dns e BIND no Livro IPv6.
-
um ótimo lugar para pedir assistência BIND9, e se envolver com a comunidade de servidores Ubuntu, é o canal #ubuntu-server IRC no freenode.
última actualização Há 10 meses. Ajude a melhorar este documento no fórum.