Como faço uma configuração completa do servidor DNS do BIND9 com um nome de host?

53

Preciso de um guia passo a passo completo sobre como produzir essa configuração de servidor.

Alguém pode me ajudar?

Artemis
fonte

Respostas:

119

Servidor DNS completo no servidor ubuntu 12.

Primeiro, altere o endereço IP do seu servidor DHCP para STATIC, para isso, use o seguinte comando

sudo nano /etc/network/interfaces

e adicione:

auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-nameservers

Reinicie daemons de rede

sudo /etc/init.d/networking restart

Antes de configurar um servidor DNS no Linux linux, você deve primeiro criar o nome de domínio e depois prosseguir. Primeiro, você verificará o comando hostname, pois isso é

sudo nano /etc/hostname

 nefitari       

(Este é o nome do host do meu servidor Ubuntu, o seu pode ser diferente. Você pode alterar isso de acordo com sua necessidade)

Agora, após o nome do host, você deve criar um nome de domínio para o seu servidor. Diga servername.domain.com, é uma prática melhor que, sempre que você estiver configurando o servidor para uso doméstico, não use .com, mas .hom ou .net ou o que quiser. Dê o comando abaixo

  sudo nano /etc/hosts

adicione se não o possuir:

  127.0.0.1   localhost

  192.168.1.5     nefitari.autun.hom    nefitari

No meu arquivo 127.0.0.1 é para localhost e alterei o segundo endereço IP 127.0.1.1 com o IP do meu servidor que é 192.168.1.5. Agora, insiro meu nome de domínio com meu nome de host nefitari primeiro, depois meu nome de domínio autun.hom e, em seguida, alias nefitari . Você pode selecionar hostname.abc.net ou hostname.home.lan etc., mas lembre-se de alterar esse arquivo para reiniciar o servidor e depois fazer login. Reiniciar é obrigatório

Agora instale o BIND9

 sudo apt-get install bind9

Após a instalação, basta configurar os arquivos abaixo passo a passo

  • Named.conf.options
  • Named.conf.local
  • /etc/resolv.conf

Agora configure o arquivo named.conf.options Este arquivo é usado para IPs DNS. Isso significa que seu servidor deve se conectar a algum DNS externo. Quando você compra nomes de domínio de provedores, eles normalmente fornecem seus próprios IPs DNS. Você pode usar IPs DNS abertos do Google ou algo assim. No meu caso, estou usando meus próprios IPs DNS do ISP.

 sudo nano /etc/bind/named.conf.options
 forwarders {
 # Give here your ISP DNS IP’s
192.168.1.1;    # gateway or router   
182.176.39.23;
182.176.18.13;
68.87.76.178;
  };

*** Salve o arquivo e saia *** usando o controle x pressione y e sobrescreva o arquivo

Agora edite o arquivo named.conf.local Este é o arquivo no qual definimos zonas de avanço e de reversão. Isso significa que, quando inserirmos o nome de domínio, ele será traduzido em endereço IP e, quando inserirmos o endereço IP, ele simplesmente o converterá em nome.

sudo nano /etc/bind/named.conf.local

mostrará:

# Our forward zone
zone "autun.hom" {
 type master;
 file "/etc/bind/zones/db.autun.hom";
 };

# Our reverse Zone 
# Server IP 192.168.1.5 
zone "1.168.192.in-addr.arpa" {
  type master;
  file "/etc/bind/zones/db.192";
 };

*** Salve o arquivo e saia *** usando o controle x pressione y e sobrescreva o arquivo

Agora vamos criar esses dois arquivos de banco de dados db.autun.hom e db.192 na pasta de zonas

Primeiro, crie as zonas de diretório em / etc / bind /

  sudo mkdir /etc/bind/zones

Antes de criar arquivos, deixe-me esclarecer que tenho dispositivos diferentes

IPs de dispositivos

  • Servidor em si 192.168.1.5
  • Gateway 192.168.1.1
  • Win7pc 192.168.1.50

Agora, no diretório de zonas, criaremos dois arquivos primeiro, db.autun.hom . Estou apenas copiando o db.local já presente na pasta / etc / bind para a pasta de zonas, alterando seu nome para db.autun.hom . Vou colocar esses IPs no meu arquivo db.autun.hom. Vamos começar

sudo cp /etc/bind/db.local  /etc/bind/zones/db.autun.hom

Agora use o comando abaixo para editar o arquivo

sudo nano /etc/bind/zones/db.autun.hom

 ;
 ; BIND data file for local loopback interface
 ;
 $TTL    604800
 @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
  ;
autun.hom.      IN  NS  nefitari.autun.hom.
autun.hom.      IN  A   192.168.1.5
   ;@               IN  A   127.0.0.1
   ;@               IN  AAAA    ::1
nefitari            IN  A   192.168.1.5
gateway         IN  A   192.168.1.1
win7pc          IN  A   192.168.1.50
www     IN  CNAME   autun.hom.

Salve e saia

  • Webuser.autun.hom. é o email que acessará o servidor de nomes. Você pode escrever qualquer nome, em vez do usuário da web, como administrador, raiz ou host, etc.
  • Autun.hom. é o meu NS significa servidor de nomes
  • Mudança automática para IP 192.168.1.5
  • @ IN A 127.0.0.1 e AAAA :: 1 podem ser comentados, você não precisa disso porque o db.local já está presente em / etc / bind, é apenas uma cópia desse arquivo. Portanto, não há necessidade de excluí-lo
  • Alterando o Nefitari para IP 192.168.1.5
  • Gateway para IP 192.168.1.1
  • Win7pc, você pode nomear seus PCs com Windows ou clientes Linux com qualquer nome, mas lembre-se de que o IP desse cliente deve ser inserido corretamente no arquivo. No meu caso eu dei IP do windows PC 192.168.1.50
  • Por último, estou usando CNAME significa nome canônico, é apenas um apelido para nefitari. Significa que você pode acessar seu servidor digitando www.autun.hom em vez de nefitari.autun.hom. Você pode omitir ou comentar. Depende de você.

Agora crie o arquivo da zona de pesquisa reversa

sudo cp /etc/bind/db.127    /etc/bind/zones/db.192

Agora use o comando abaixo para editar o arquivo

sudo nano /etc/bind/zones/db.192

   ;
   ; BIND reverse data file for local loopback interface
   ;
   $TTL    604800
   @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
   ;
        IN  NS  nefitari.
1   IN  PTR gateway.autun.hom.
5   IN  PTR nefitari.autun.hom.
50  IN  PTR win7pc.autun.hom.

Salve e saia

Agora, quando você terminar seu arquivo de zona, verifique se está funcionando corretamente ou não, digitando o comando abaixo para o arquivo de zona direta

named-checkzone autun.hom /etc/bind/zones/db.autun.hom
zone autun.hom /IN: loaded serial   2
Ok

Agora verifique o arquivo da zona reversa

named-checkzone autun.hom /etc/bind/zones/db.192
zone autun.hom /IN: loaded serial   2
Ok 

Se a saída da sua zona de verificação nomeada for a mesma que a anterior, ela está funcionando bem, caso contrário você cometeu algum erro no arquivo.

Agora edite o arquivo resolv.conf

sudo nano /etc/resolv.conf

nameserver      192.168.1.5
domain      autun.hom
search      autun.hom

Digite as seguintes linhas no seu arquivo resolv.conf e salve-o

Reinicie a ligação

sudo /etc/init.d/bind9 restart

Após o início da ligação, verifique sua configuração no arquivo de log

tail -f /var/log/syslog

ele não deve ter nenhum erro no log

Verificando zonas avançadas

host –l autun.hom

A saída deve ficar assim

 autun.hom name server nefitari.autun.hom.
 autun.hom has address 192.168.1.5
 gateway.autun.hom has address 192.168.1.1
 nefitari.autun.hom has address 192.168.1.5
 win7pc.autun.hom has address 192.168.1.50

Agora use NSLOOKUP

nslookup autun.hom

RESULTADO

Server: 192.168.1.5
Address: 192.168.1.5#53

Name: autun.hom
Address: 192.168.1.5

Use DIG

 dig gateway.autun.hom

 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35612
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

 ;; QUESTION SECTION:
 ;gateway.autun.hom         IN  A

 ;; ANSWER SECTION:
 gateway.autun.hom      604800  IN  A   192.168.1.1

 ;; AUTHORITY SECTION:
 Autun.hom.     604800  IN      NS  nefitari.autun.hom. 

 ;; ADDITIONAL SECTION:
 Nefitari.autun.hom.    604800  IN      A   192.168.1.5

 ;; Query time: 12 msec
 ;; SERVER: 192.168.1.5#53(192.168.1.5)
 ;; WHEN: Thu Aug 8 01:56:25 2013
 ;; MSG SIZE  rcvd: 90

A saída deve ser semelhante à acima, verifique o status: NOERROR significa que está resolvendo, verifique ANSWER SECTION: gateway.autun.hom foi resolvido para 192.168.1.1

Verificando a zona reversa

 host 192.168.1.1

Resultado

 1.1.168.192.in-addr.arpa domain name pointer gateway.autun.hom

Se isso lhe der um erro como abaixo

 host 1.1.168.192.in-addr.arpa. not found: 3(NXDOMAIN)

Isso significa que você cometeu algum erro no arquivo /etc/bind/named.conf.local na zona reversa Se o IP do servidor for 192.168.1.5 , sua zona reversa será semelhante a esta

zone "**1.168.192**.in-addr.arpa" {
 correct ip reversing
};

Em algum momento as pessoas cometeram erros ao reverter o ip como (apenas um exemplo)

zone "**0.168.192**.in-addr.arpa" {
incorrect ip reversing
};

Use NSLOOKUP

nslookup 192.168.1.1

Server: 192.168.1.5
Address: 192.168.1.5#53

1.1.168.192.in-addr.arpa    name=gateway.autun.hom

Se você receber erros do tipo NXDOMAIN ou SERVFAIL, significa que um dos arquivos da sua zona não está funcionando corretamente

Agora você pode executar ping no ubuntu.com ou cavar o ubuntu.com pela primeira vez, que levará vários milissegundos para resolver o nome ubuntu.com, mas quando você o executar pela segunda vez, levará 1, 2 ou 3 segundos normalmente, de 1 a 10 mili segundos são normais e significa que seu DNS está funcionando corretamente

Configurando Clientes

lado do windows

  • abrir conexões de rede
  • selecione alterar configurações do adaptador
  • selecione propriedades
  • selecione a versão do protocolo da Internet IPv4

e aqui dê o endereço IP (no meu caso, é 192.168.1.50, você se lembra do win7pc)

  • Endereço IP 192.168.1.50
  • Máscara de sub-rede 255.255.255.0
  • Gateway padrão 192.168.1.1
  • DNS primário 192.168.1.5 (meu novo ip do servidor DNS BIND)
  • na mesma janela, selecione Avançar
  • selecione a guia DNS
  • Digite na caixa de texto abaixo aqui No sufixo DNS para esta conexão: autun.hom
  • clique ok
  • clique em validar configuração ao sair
  • Clique OK

e você está pronto com isso aberto CMD

ping gateway

deve lhe dar algumas respostas

similarmente

ping 192.168.1.1 or 5

deve lhe dar algumas respostas

Teste seu servidor para o mundo exterior

Agora você pode executar ping no ubuntu.com ou cavar o ubuntu.com pela primeira vez, que levará vários milissegundos para resolver o nome ubuntu.com, mas quando você o executar pela segunda vez, o formulário será de 1 a 10 mili segundos, seu tempo normal e isso significa que seu DNS está funcionando corretamente Configurando clientes

lado do windows

abrir conexões de rede selecione alterar configurações do adaptador selecione propriedades selecione versão do protocolo de internet IPv4

e aqui dê o endereço IP (no meu caso, é 192.168.1.50, você se lembra do win7pc)

Endereço IP 192.168.1.50

Máscara de sub-rede 255.255.255.0

Gateway padrão 192.168.1.1

DNS primário 192.168.1.5 (meu novo ip do servidor DNS BIND)

selecione Avançar (na mesma janela)

selecione a guia DNS

Digite na caixa de texto abaixo aqui No sufixo DNS para esta conexão: autun.hom

clique ok

clique em validar configuração ao sair

clique ok

e você está pronto com isso aberto CMD

Código:

 ping gateway

deve lhe dar algumas respostas

similarmente

Código:

 ping 192.168.1.1 or 5

ele deve fornecer algumas respostas para você usar o código NSLOOKUP :

 nslookup gateway

CLIENTES LINUX

Código:

 sudo nano /etc/network/interfaces

digite as seguintes linhas

Código:

 auto eth0
 iface eth0 inet dhcp

Agora reinicie os Deamons de Rede

Código:

 sudo /etc/init.d/networking restart

forçar o comando IP de renovação do cliente

Código:

 sudo dhclient -r

Agora obtenha um novo IP:

Código:

 sudo dhclient

Se você estiver executando o servidor DHCP na sua rede, digite o nome do domínio e o servidor de nomes no arquivo dhcpd.conf; por exemplo, eu tenho um servidor DNS chamado nefitari.autun.hom e o endereço IP é 192.168.1.5 como em

Código:

 option domain-name "nefitari.autun.hom";
 option domain-name-server  192.168.1.5;

fonte

liberdade de uso
fonte
7
É uma pena que esta página tenha 3726 visualizações uniq e a resposta tenha apenas uma votação positiva. Se foi útil para você, faça um voto positivo!
Fotanus
12
Esta resposta está correta, exceto na parte sobre a edição do /etc/resolv.conf. Desde o Ubuntu 12.04, você não edita esse arquivo manualmente, mas configura o resolvconf para fazer isso. Configure RESOLVCONF = yes em / etc / default / bind9 para fazer com que o BIND 9 nomeado registre seu endereço de escuta local 127.0.0.1 com resolvconf ao iniciar. Certifique-se de que /etc/resolv.conf seja um link simbólico para ../run/resolvconf/resolv.conf.
Jdthood
11
Erros de syslog - (network unreachable) resolving './NS/IN': 2001:500:3::42#53São do bind tentando resolver consultas recursivamente usando o ipv6. Editar /etc/default/bind9e usar OPTIONS="-u bind -4"corrige isso. Mais informações: serverfault.com/questions/77325/unreachable-resolving-domain
não é um patch
Acabei de configurar o servidor Ubuntu 16.04 e ainda funciona. O tutorial do ServerGuide sobre DNS é um pesadelo comparado a esta explicação. No entanto, tive que corrigir um erro nas listagens: no arquivo db.192anterior IN NS nefitari.está @faltando. Também tive que adicionar o FQDN, então minha linha de trabalho ficou assim @ IN NS nefitari.autun.hom.: ignorei a seção resolv.conf e segui os conselhos do jdthood. O link já estava lá da instalação do servidor padrão.
CatMan 22/02
11
@fotanus Eu acho que é porque é tão longa que as pessoas se esqueceram de rolar para trás até upvote \
CodyBugstein
1

A resposta é apenas uma adição à grande descrição acima.

Dica para solução de problemas

Tenha muito cuidado com os muitos '.' nos arquivos de configuração, pois cada um é importante. Um único ausente '.' pode parar o servidor DNS de funcionar. Você não deve contar com mensagens de erro claras.

Aprendi suas práticas recomendadas a usar um número de série mais revelador. É muito importante incrementar o número de série toda vez que a configuração é modificada, por exemplo, novas entradas sendo adicionadas. Se não for incrementado, um DNS secundário falhará ao sincronizar as novas configurações. O formato sugerido é YYYYMMDDssonde ssestá o número de série "antigo". Portanto, ao incrementar, você deve incrementar ssem +1 e definir a data como a data atual. Achei isso muito útil na solução de problemas da instalação. No syslog, você vê claramente a data e a série do arquivo usado.

No Ubuntu 16.04, alterar o resolv.conf está obsoleto. Enquanto o jdthood escreve em seu comentário, substitua a etapa pelo seguinte procedimento: - Altere / etc / default / bind9: a nova vontade deve ficar assim:

   # run resolvconf?
   RESOLVCONF=yes

   # startup options for the server
   OPTIONS="-u bind"

   # use this when you have trouble with IPV6
   #OPTIONS="-u bind -4"

veja o comentário de não um patch para os problemas do IPV6.

  • coloque um link simbólico de /etc/resolv.conf em /run/resolvconf/resolv.conf

     cd /etc
     sudo ln -s /etc/resolv.conf /run/resolvconf/resolv.conf
    

Configuração offline

A configuração é exatamente a mesma e até um pouco mais fácil, pois você pode simplesmente pular as seções de encaminhamento. Eles não precisam estar presentes, portanto não há necessidade de editar o arquivo /etc/bind/names.con.options.

Redes Classe B

Existem algumas pequenas alterações necessárias para fazer isso funcionar em redes classe B (antes de haver comentários, não há razão para que uma rede local, mesmo em casa, não possa ser uma classe B em vez de uma rede classe C) . Neste exemplo, eu uso o número de rede 172.20.xx (acho que a notação formal é 172.20.0.0. Para mais informações google rfc1918).

Use a descrição da primeira resposta, substitua todos os IPs 192.168.xx por 172.20.xx, use para o servidor IP 172.20.0.100 e modifique os arquivos da seguinte maneira:

  • o nome do arquivo db.192se torna db.172.
  • o arquivo named.conf.localobtém uma seção diferente da zona reversa:

    zone "20.172.in-addr.arpe" {
    type master;
    file "/etc/bind/zones/db.172";
    }
    
  • O arquivo de zonas reversas muda para:

    ;
    ; BIND reverse data file for 172.20.x.x
    ;
    $TTL    604800
    @       IN      SOA     nefitari.autun.hom. webuser.autun.hom. (
                 2017022102         ; more intuitive serial YYYYMMDDss, here ss=02
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL
    
    ; note: the '@'was missing from in the initial description
    @       IN  NS  nefitari.autun.hom.    
    
    100.0   IN  PTR nefitari.autun.hom. 
    121.0   IN  PTR client1.autun.hom.
    130.0   IN  PTR client2.autun.hom.
    33.0    IN  PTR client3.autun.hom.
    

O resto é o mesmo.

Espero que seja útil para alguém.

Homem gato
fonte
Isso funciona se você deseja usar os endereços 172.16 e 172.20?
Kjow7
@ kojow7. Muito boa pergunta. Eu não sei, mas para descobrir que você pode verificar apenas para incluir uma segunda zona e um segundo arquivo reverso. É fácil testar com o comando nslookup. Ou, talvez o melhor fosse, basta usar uma máscara de rede que inclui os 172.16. e 172,20. A máscara de rede não seria tão simples quanto 255.255.0.0, mas conteria outros números além de 0 e 255, mas na rede você pode encontrar tutoriais sobre como descobrir isso, caso ainda não saiba. Caso você o tenha resolvido, considere publicá-lo aqui para o benefício de outras pessoas.
CatMan