Bind

Curso ministrado pelo Centro de Difusão de Tecnologia e Conhecimento no período de 13 a 19 Nov 2006.

Copyright (c) 2005, Centro de Difusão de Tecnologia e Conhecimento. É dada permissão para copiar, distribuir e/ou modificar este curso sob os termos da Licença de Documentação Livre GNU, Versão 1.1 públicada pela Free Software Foundation com a Seção Invariante Sobre o CDTC. Uma cópia da licença está inclusa na seção entitulada ¨Licença de Documentação Livre GNU¨.

Sumário

  1. Um pouco sobre DNS
  2. Planejamento do servidor e instalação do Bind
  3. Antes de começar - arquivos de configuração e execução do bind
  4. Configuração do Bind
  5. Testando e usando o servidor Bind

 

Um pouco sobre DNS

Nomes

Endereço: do mais amplo para o mais restrito

Imagine que você deseja enviar uma carta para uma pessoa que mora em outra cidade, digamos, de Brasília para Porto Alegre por exemplo.

O caminho que a carta percorre vai de uma localização mais ampla para uma mais restrita. Primeiramente, a carta vai para a caixa do correio. De lá, para uma agência qualquer, que a encaminha para uma central, até que ela chegue a outra central em Porto Alegre. A partir daí, deve seguir para o bairro desejado, e por aí vai.

Embora o endereço por extenso seja importante, sabemos que a entrega é feita tendo por base o CEP, um número identificador.

DNS (nomes)

Na Internet e Intranets, o processo é semelhante. Quando você digita o endereço "http://cursos.cdtc.org.br", por exemplo, o primeiro a ser procurado é o domínio mais amplo, o ".br". Dentro deste domínio, existe uma lista de subdomínios, entre os quais os ".com.br" e ".org.br".

Quando você entra no endereço deste curso, o servidor do domínio ".br" aponta para o ".org.br", que por sua vez possui uma lista de subdomínios internos a ele (entre eles "cipsga.org.br", "cdtc.org.br", e por aí vai.

O responsável pelo gerenciamento destes subdomínios é o servidor DNS. O ".br" possui um DNS, o ".org.br" possui outro, o "cdtc.org.br" também, etc.

O importante a ser notado aqui é que não existe uma máquina (ou algumas máquinas) que possuam todos os endereços válidos da Internet. No começo isto acontecia, e você pode imaginar a dificuldade em manter uma quantidade de informação tão grande sempre disponível e atualizada. A revolução causada pelo DNS, e que permite o uso da Internet como temos hoje, foi exatamente esta descentralização da informação.

É como se cada endereço fosse dividido em camadas, e cada uma das camadas tivesse um servidor (ou alguns servidores) responsável(is) apenas pela camada imediadamente abaixo. Você também pode pensar em pastas e subpastas.

Analogia: Endereço de correspondência e DNS

Pense na carta: para a agência central de Brasília, onde a carta espera o envio para o Rio Grande do Sul, não interessa em nada a rua ou número da casa onde a pessoa mora, nem mesmo se o endereço de fato existe. Basta saber que a carta deve chegar a Porto Alegre, e lá sim a agência local precisa buscar esta informação.

Do mesmo modo, quem vai dizer se o domínio "cursos.cdtc.org.br" existe não é o servidor DNS responsável pelo domínio "br", tão pouco o DNS do ".org.br", mas sim o "cdtc.org.br", nível imediatamente acima do endereço desejado.

É importante notar aqui que o DNS responsável pelos ".org" não tem nada a ver com o DNS do ".org.br", ou seja, se existir, além do "cursos.cdtc.org.br", um outro endereço válido "cursos.cdtc.org", um não tem nada a ver com o outro. É como se existisse duas pessoas com exatamente o mesmo nome e mesmo endereço, mas cidades diferentes. Se você errasse apenas a cidade, o destinatário errado receberia a carta.

Para esclarecer:

Estado > Cidade > Rua > Número > Apartamento > Nome da Pessoa

br > org > cdtc > cursos

Números IP

Agora que você já relembrou um pouco o conceito de nomes, vamos entender o que isso tem a ver com números IP.

As máquinas não se comunicam usando nomes para identificação, e sim através de números. Outra função do DNS é justamente amarrar um endereço IP a um nome de domínio, e vice-versa.

Quando você entra em "http://cursos.cdtc.org.br", você de fato está acessando o endereço IP 164.41.9.30. Ou seja, o DNS transforma números IP (difíceis de se gravar) em nomes "amigáveis". Ou você discorda?

Além disto, é mais comum a mudança do endereço IP de um determinado portal, por exemplo, do que do seu nome de domínio em si. Ou seja, se "http://cursos.cdtc.org.br" é o IP 164.41.9.30 ou 200.199.255.249, para você a princípio não faz diferença.

Para esclarecer, existe um DNS responsável, por exemplo, pelos IPs 164.41.x.x (onde "x" é qualquer número de 0 a 255), todos pertencentes ao domínio "unb.br" (entre outros). O que o DNS faz é ligar cada IP (desejado) desta faixa a um endereço do domínio. Nem todo IP precisa ter um nome de domínio associado, mas todo domínio precisa ter um IP (ou faixa de IPs) associado.

É importante notar que um nome de domínio válido pode estar ligado a uma máquina que não possua um IP de fato válido, desde que o encaminhamento seja feito corretamente. Você entenderá isso mais claramente adiante, mas para exemplificar, digamos que você seja o administrador do domínio "cdtc.org.br". Você pode ligar o subdomínio "aluno.cdtc.org.br" a uma máquina que tenha apenas um IP interno, com NAT, 192.168.0.112, por exemplo, sem problema algum. A máquina que hospeda o site não terá um IP válido associado, mas o site (o nome de domínio em si terá). O DNS de seu domínio será o responsável pela tradução, encaminhando para o local correto, e fornecendo um IP válido.

Um mesmo endereço IP pode ser acessado por diversos nomes de domínio, e cada nome de domínio pode ser equivalente a um único endereço IP ou vários (nesta última opção, estão os "Round Robin DNS"). Ou seja, o IP 164.41.9.30 pode ser "cdtc.org.br", "cdtc.unb.br", "cdtc.com.br", e assim vai. Já "cdtc.org.br" pode estar ligado a um único endereço IP (o mais comum) ou a mais de um, no caso de servidores "Round Robin" (nos DNS "Round Robin" imagine que vc tem 3 servidores web com o mesmo conteúdo. Você recebe um pedido, o BIND redireciona pra um servidor, o 2º pedido ele vai redirecionar para o 2º servidor e por aí vai.. o 4º pedido é novamente redirecionado para o 1o servidor, e recomeça).

O que mais um servidor DNS faz

Certo, você já reviu como funciona um DNS. Mas sabemos que qualquer máquina que tenha acesso à Internet precisa de um servidor DNS para tradução. Como isso funciona?

Esse DNS usado localmente simplesmente se conecta a outros servidores, de modo a conseguir um roteamento na camada mais alta do nome desejado. Por exemplo, quanto você entra em "http://cursos.cdtc.org.br", o seu DNS faz uma pesquisa, busca o caminho necessário para que você acesse nosso portal e devolve para seu computador, de modo que ele saiba o IP da máquina desejada.

Para esclarecer:

  1. Sua máquina pergunta: "quem é "http://cursos.cdtc.org.br""?

  2. Seu servidor DNS responde: "não sei, vou pesquisar". Ele então se conecta com outros servidores, fazendo a mesma pergunta.

  3. Alguém responde: "eu cuido dos domínios .br, e sei quem cuida dos .org.br!" e assim vai... Até que a informação chegue "na ponta" e retorne para sua máquina.

O Bind, do qual este curso trata, faz os dois papéis, tanto o de tradução de nomes locais, quando a busca por nomes remotos.

 

Planejamento do servidor e instalação do Bind

Planejando o servidor DNS

A primeira coisa a fazer é levantar um diagrama da sua rede, usando um aplicativo como o Dia ou o Kivio, por exemplo, com os servidores e clientes existentes e seus respectivos endereços IP.

Daí para a frente, tudo depende do seu objetivo. Existem duas situações mais comuns:

No primeiro caso, você tem um servidor web, um portal, ftp, servidor de e-mails, algo assim, que deseja que seja acessível de "fora" da sua rede. Para isto, obviamente, você precisa ter um domínio válido, fornecido ou alugado, que será a "raiz" do seu domínio. Por exemplo: "http://cursos.org.br".

No segundo caso, em uma Intranet, você quer apenas um servidor DNS para não precisar decorar o IP de cada máquina da sua rede, facilitando o gerenciamento e o uso de conexões remotas, por exemplo.

Nada impede que você implemente os dois simultaneamente na mesma máquina, desde que a configuração seja feita corretamente.

Alguns cuidados na criação dos nomes

Se você quer criar um DNS para sua Intranet, e os IPs são dinâmicos, via DHCP por exemplo, de modo que uma máquina possa pegar qualquer IP em um determinado momento, você obviamente não conseguirá seu objetivo.

Procure organizar da melhor maneira possível seus domínios e subdomínios, procure usar nomes intuitivos e simples, evite usar nomes longos (por exemplo: "mail.cursos.org.br", em vez de "servidor_e-mail.cursos.org.br).

Caso esteja configurando sua Intranet, procure atribuir nomes que facilitem a identificação visual, por exemplo: "janela", "escritorio01", "escritorio02", "coordenacao", "secretaria" etc. Caso haja diversas máquinas, uma ao lado da outra, em um laboratório, por exemplo, procure usar uma estrutura do tipo: "lab1-01", "lab1-02", usando um micro como referência (o do final, mais perto da parede, ou o do canto, mais perto da porta) e incrementando os nomes.

Procure manter uma tabela sempre atualizada de máquinas e respectivos endereços IP, em um local seguro.

Instalação do pacote

  1. Atualize a lista de pacotes disponíveis:

    #apt-get update
  2. Instale o pacote do "Bind"

    #apt-get install bind
  3. Verifique se a versão do pacote instalado é a mesma deste curso:

    #apt-show-versions bind

    Se a versão for a correta, você terá a seguinte resposta usando o comando acima:

    bind/stable uptodate 1:8.4.6-1

    Obs: se você não possui o apt-show-versions instalado, basta baixar o pacote via apt:

    #apt-get install apt-show-versions

Testando o Bind recém-instalado

Para ver se seu Bind "novinho em folha" está funcionando corretamente, que tal fazer um teste? Instale o pacote "dnsutils" (se já não estiver instalado em sua máquina):

#apt-get install dnsutils

Com este pacote, podemos testar o DNS local, recém-criado, sem que pra isso tenhamos que começar a usá-lo como DNS padrão, antes da devida configuração. Ou seja, quando você instala o Bind, você continuará usando o DNS original para a resolução dos nomes, enquanto você não editar seu "/etc/resolv.conf" corretamente.

Uma vez instalado, digite o seguinte comando:

#dig www.cdtc.org.br @127.0.0.1

Você receberá uma resposta como essa:

; <<>> DiG 9.2.4 <<>> www.cdtc.org.br @127.0.0.1
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18342
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 3

;; QUESTION SECTION:
;www.cdtc.org.br. IN A

;; ANSWER SECTION:
www.cdtc.org.br. 3600 IN CNAME mx.cdtc.org.br.
mx.cdtc.org.br. 3600 IN A 164.41.9.30

;; AUTHORITY SECTION:
cdtc.org.br. 86400 IN NS dns1.cdtc.org.br.
cdtc.org.br. 86400 IN NS dns2.cdtc.org.br.
cdtc.org.br. 86400 IN NS dns0.cdtc.org.br.

;; ADDITIONAL SECTION:
dns1.cdtc.org.br. 66418 IN A 164.41.38.111
dns2.cdtc.org.br. 66418 IN A 164.41.38.112
dns0.cdtc.org.br. 66418 IN A 164.41.9.30

;; Query time: 60 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Feb 3 15:27:05 2006
;; MSG SIZE rcvd: 186

Com isto, você deve obter uma lista de dados, entre eles o IP da máquina cdtc. Note, na "ANSWER SECTION" que ele encontrou o IP correspondente (164.41.9.30).

O que fizemos foi usar o DNS local para resolver o IP desejado. Se você executar o comando acima sem o @127.0.0.1 receberá uma resposta parecida, mas no final da mensagem, em "SERVER" você verá o IP do servidor que está sendo usado atualmente por sua máquina como DNS.

 

Antes de começar - arquivos de configuração e execução do bind

Uma vez instalado o Bind, os arquivos de configuração ficam gravados na pasta "/etc/bind".

Abaixo um rápido resumo:

O named.conf é o arquivo base de configuração do DNS e será customizado.

Os arquivos named.conf.local , named.conf.options e db.root a princípio não precisarão de configuração personalizada.

Os arquivos db.0, db.255, db.127 e db.local são para configuração de loopback (127.0.0.1), e a princípio não precisarão ser alterados.

Os dois últimos arquivos precisarão ser criados e personalizados de acordo com a sua rede.

Arquivos de execução do bind

Além dos arquivos de configuração, criados no "/etc/bind", existem ainda dois arquivos dignos de destaque que são criados, estes para a execução do Bind.

São os seguintes:

O /etc/init.d/bind é um script criado para facilitar a manipulação do named. Quando você desejar reiniciar ou parar o serviço Bind, deve usar comandos como esses (adiante você verá isso mais a fundo):

#/etc/init.d/bind stop
#/etc/init.d/bind start
#/etc/init.d/bind restart

e por aí vai.

O script "bind" se encarrega então, de todo o procedimento necessário para parar, iniciar ou reiniciar o "named", que é o serviço DNS em si.

Antes de começar a configuração, faça algo que deve ser um hábito de qualquer administrador de redes Linux: faça um backup dos arquivos originais! Existe sempre a possibilidade de algo dar errado e você ter que voltar alguns passos.

Sendo assim, faça um backup agora, antes de iniciar a configuração e acostume-se a fazer backups periódicos também.

Exemplo de backup:

Crie uma pasta "original" dentro da pasta do Bind:

#mkdir /etc/bind/original

Copie os arquivos originais para lá:

#cp /etc/bind /etc/bind/orginal/.

Pronto, vamos meter a mão na massa agora!



Configuração do Bind

Configurando o named.conf

Agora que você já sabe bastante sobre a estrutura do Bind, chegou a hora de "meter a mão na massa".

O primeiro arquivo a ser editado é o named.conf

Abra o arquivo com seu editor preferido, e localize as seguintes linhas:

// add local zone definitions here
include "/etc/bind/named.conf.local";

Como o próprio arquivo sugere, aqui você irá adicionar as configurações locais, da zona a ser criada agora. A essa altura, você já escolheu o nome do seu domínio (da Internet ou da Intranet local) e está pronto para a configuração.


Digamos que o domínio disponível para você seja "www.cursos.org.br". Se você está configurando uma Intranet, basta substituir isso pelo nome de seu domínio local: "escritorio", por exemplo. A partir daqui, usaremos a primeira opção. Digamos ainda que as máquinas de sua rede possuem IPs na faixa 192.168.1.x, com máscara 255.255.255.0

Acostume-se sempre a comentar suas configurações, isso poupa muito trabalho na hora de reconfigurar ou entender o que já foi feito!

Abaixo da linha citada, adicione suas configurações locais:

// add local zone definitions here
include "/etc/bind/named.conf.local";

//definicoes do "www.cursos.org.br"
zone "www.cursos.org.br"{
type master; //este eh o server primario deste dominio
file "/etc/bind/db.cursos";
};

zone "1.168.192.in-addr.arpa" { //rede a qual o servidor
pertence
type master; //este eh o server primario do dominio
file "/etc/bind/db.1.168.192"; //servidor de dominio
reverso
};

Na primeira parte definimos a zona responsável pelo seu domínio, e o respectivo arquivo de configuração.

"Type master" significa que este será o servidor DNS primário do domínio, e diz ao que ele possui os endereços para a zona cursos.org.br e não precisa consultar ninguém para responder por ela.

O "file" definido deve ter um nome de acordo com a sua organização. Não esqueça que você precisará criá-lo posteriormente! Ele indica qual o arquivo possuirá a relação de nomes e IPs do seu domínio.

Na segunda parte, definimos a zona do DNS reverso, responsável por transformar IPs em nomes de domínio (quando você der um "ping" em uma máquina pelo IP, o DNS retorna o nome da mesma). Aqui, o "1.168.192" deve ser substituído pela configuração de sua rede. Caso sua rede seja 160.10.25.x, com máscara 255.255.255.0, por exemplo, teríamos:


zone "25.10.160.in-addr.arpa" { //rede a qual o servidor pertence
type master; //este eh o server primario do dominio
file "/etc/bind/db.25.10.160"; //servidor de dominio reverso
};

E, se sua rede fosse 160.10.x.x. com máscara do tipo 255.255.0.0:

zone "10.160.in-addr.arpa" { //rede a qual o servidor pertence
type master; //este eh o server primario do dominio
file "/etc/bind/db.10.160"; //servidor de dominio reverso
};


Observação: Se você quiser criar várias zonas (por exemplo, uma para a rede local e outra para as máquinas que são servidores de internet) não há problema, basta definir cada uma das zonas do mesmo modo citado aqui.

Configurando o arquivo de zona local (domínio rede local: Intranet)

Vamos agora à configuração do resolvedor de nomes da sua zona local.

Vamos começar com um exemplo simples, de uma Intranet. No próximo item, você verá como configurar um DNS para a Internet.

Digamos que você possua 10 máquinas em um escritório, e que você deseje que elas se chamem micro01, micro02, ..., etc., com os respectivos IPs 192.168.0.1, 192.168.0.2, ..., etc.

Você precisa inserir estes dados em seu servidor DNS. Abra, usando seu editor favorito, o "db.escritorio", ou correspondente, criado por você no passo anterior. Digamos que a máquina na qual você está instalando o DNS se chame "servidor", e o IP desta máquina seja 192.168.0.100. Além disso, suponha que você gostaria de usar o nome "escritorio" para este domínio. O arquivo (já configurado) seria assim (os comentários em "//" explicam a função da linha inferior):

;definição o cache
$TTL 604800

;Define a zona a qual o DNS pertence e quem é o responsável
@ IN SOA servidor.escritorio. root.servidor.escritorio. (

;indica qual é a versão do arquivo.
2006031203 ; Serial
;define de quanto em quanto tempo os dados são atualizados
604800; Refresh
;define um tempo para proucurar em outro servidor
86400; Retry
;define o tempo máximo de procura
2419200; Expire
604800); Negative Cache TTL
;

@ IN NS servidor.
@ IN A 192.168.0.100
servidor IN A 192.168.0.100
micro01 IN A 192.168.0.1
micro02 IN A 192.168.0.2
micro03 IN A 192.168.0.3
micro04 IN A 192.168.0.4
micro05 IN A 192.168.0.5
micro06 IN A 192.168.0.6
micro07 IN A 192.168.0.7
micro08 IN A 192.168.0.8
micro09 IN A 192.168.0.9
micro10 IN A 192.168.0.10

Agora vamos a uma explicação mais detalhada de alguns pontos.


@ IN SOA servidor.escritorio. root.servidor.escritorio.(

servidor.escritorio.

o servidor de nome primário/autoritativo para esta zona

root.servidor.escritorio.

o endereço de correio eletrônico da pessoa responsável por esta zona, com a @ trocada. <root@servidor.escritorio> (root@servidor.escritorio é substituído por root.servidor.escritorio)


2006031203; serial

O número de série (versão) do arquivo é muito importante na sincronia dos arquivos de configuração e deve ser incrementado sempre que o arquivo for alterado.

A informação acima significa que o arquivo foi editado pela última vez no dia 12/03/2006 (o formato é AAAAMMDDII ou YYYYMMDDII), e que está é a terceira (3a) vez que o arquivo é editado neste mesmo dia. Sempre que editar seus arquivos de configuração, atualize esta linha corretamente, definindo o dia e versão da edição!


"." (ponto) no final

Note que cada nome de sistema que termina com um "."' é um nome exato, ao passo que tudo sem um "."' no final é referenciado à origem. Por exemplo, www é traduzido para www + origem. Em nosso arquivo de zona fictício, nossa origem é cursos.org.br, então www será traduzido para www.cursos.org.br. IMPORTANTE: Não esqueça o "." no fim do nome do domínio!


A

O "A" indica uma ligação usando um endereço IPv4.


@

A "@" como aqui mostrada poderia ter sido cursos.org.br. A "@" é traduzida pela origem.


Agora, vamos para a configuração de um DNS para Internet!!

 

Configurando o arquivo de zona local (domínio de internet)

Vamos agora à configuração do resolvedor de nomes da sua zona local.

Digamos que você possua um servidor web e um servidor de e-mails em seu domínio, para simplificar, com a seguinte configuração:

Você precisa inserir estes dados em seu servidor DNS. Abra, usando seu editor favorito, o "db.cursos", ou correspondente, criado por você no passo anterior. Digamos que a máquina na qual você está instalando o DNS se chame "servidor", e o IP desta máquina seja 192.168.0.1. O arquivo (já configurado) seria assim (os comentários em "//" explicam a função da linha inferior):

$TTL 604800 ;definicao do cache

;Define a zona a qual o DNS pertence e quem é o responsável
@ IN SOA servidor.cursos.org.br. root.servidor.cursos.org.br.(

;indica qual é a versão do arquivo.
2006031203; serial
; define de quanto em quanto tempo os dados são atualizados
604800; Refresh
; define um tempo para proucurar em outro servidor
86400; Retry
;define o tempo máximo de procura
2419200; Expire
604800); Negative Cache TTL
;

; define quem é o servidor de nomes do domínio
@ IN NS servidor.cursos.org.br.

; define quem é a máquina cursos.org.br
@ IN A 192.168.0.1

; define o caminho para o servidor de mensagens
@ IN MX 10 mail.cursos.org.br

; Nomes das máquinas
servidor IN A 192.168.0.1
arquivos IN A 192.168.0.1
site IN A 192.168.0.4

; define quem é o servidor de mensagens (MX= mail exchanger)
mail IN A 192.168.0.5

; define quem é o servidor www
www IN A 192.168.0.4

; Apelidos (aliases)
servnom IN CNAME servidor
portal IN CNAME site

Agora vamos a uma explicação mais detalhada de alguns pontos.


@ IN SOA servidor.cursos.org.br. root.servidor.cursos.org.br.(

servidor.cursos.org.br.

o servidor de nome primário/autoritativo para esta zona


root.servidor.cursos.org.br.

o endereço de correio eletrônico da pessoa responsável por esta zona, com a @ trocada. root@servidor.cursos.org.br é substituído por root.servidor.cursos.org.br


2006031203; serial

O número de série (versão) do arquivo é muito importante na sincronia dos arquivos de configuração e deve ser incrementado sempre que o arquivo for alterado.

A informação acima significa que o arquivo foi editado pela última vez no dia 12/03/2006 (o formato é AAAAMMDDII ou YYYYMMDDII), e que está é a terceira (3a) vez que o arquivo é editado neste mesmo dia. Sempre que editar seus arquivos de configuração, atualize esta linha corretamente, definindo o dia e versão da edição!


"." no final

Note que cada nome de sistema que termina com um "." é um nome exato, ao passo que tudo sem um "." no final é referenciado à origem. Por exemplo, www é traduzido para www + origem. Em nosso arquivo de zona fictício, nossa origem é cursos.org.br, então www será traduzido para www.cursos.org.br. IMPORTANTE: Não esqueça o "." no fim do nome do domínio!


A

O "A" indica uma ligação usando um endereço IPv4.


CNAME (Apelidos)

O "CNAME" indica um apelido, ou seja, toda máquina pode ter um nome, ligado um IP, em um sevidor DNS. Além deste a máquina pode ter outros nomes. O CNAME liga o nome original a outros que você desejar. No caso, "site" e "portal" são a mesma máquina.


MX

O "MX" é usado para servidores de correio. O número ("10" no caso) indica a prioridade do servidor de e-mails. Alguém pode ter vários servidores de correio, com prioridades de 3, 2 e 1. Um servidor de correio tentando fazer uma entrega para cursos.org.br tentaria primeiro o MX de maior prioridade, depois o de segunda maior e assim por diante, até que o correio seja entregue corretamente.

@ IN MX 10 mail.cursos.org.br

O registro MX indica quais servidores de correio são responsáveis por tratar correspondência de entrada para a zona. mail.cursos.org.br é o nome do servidor de correio. Ou seja, se você tiver um servidor de e-mail, os aliases seriam do tipo <nome_do_usuário>@mail.cursos.org.br (por exemplo: joao@mail.cursos.org.br)


www

Define quem é o servidor www do domínio


@

A "@" como aqui mostrada poderia ter sido cursos.org.br. A "@" é traduzida pela origem.


 

Configurando o DNS reverso

Para arquivos de zona in-addr.arpa (DNS reverso), o mesmo formato é usado, exceto pelo fato de conter entradas PTR ao invés de A ou CNAME. PTR significa ponteiro. Reembrando, o DNS reverso é responsável por ligar IPs a nomes de domínio.

Cada uma das máquinas cadastradas anteriormente deve ser cadastrada aqui também. A sintaxe começa com final do endereço IP (no caso de uma máscara de 24 bits), seguido pelo nome da máquina no domínio.

$TTL 604800
@ IN SOA servidor.escritorio. root.servidor.escritorio. (

@ IN NS servidor.cursos.org.br.
1 IN NS servidor.cursos.org.br.
1 IN PTR servnom.cursos.org.br.
1 IN PTR arquivos.cursos.org.br.
4 IN PTR www.cursos.org.br.
4 IN PTR portal.cursos.org.br.
4 IN PTR site.cursos.org.br.
5 IN PTR mail.cursos.org.br.

No caso da nossa Intranet, teríamos:

$TTL 604800
@ IN SOA servidor.escritorio. root.servidor.escritorio. (
2006120700 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS servidor.escritorio.
100 IN PTR servidor.escritorio.
1 IN PTR micro01.escritorio.
2 IN PTR micro02.escritorio.
3 IN PTR micro03.escritorio.
4 IN PTR micro04.escritorio.
5 IN PTR micro05.escritorio.
6 IN PTR micro06.escritorio.
7 IN PTR micro07.escritorio.
8 IN PTR micro08.escritorio.
9 IN PTR micro09.escritorio.
10 IN PTR micro10.escritorio.

Pronto, seu servidor DNS usando Bind está corretamente configurado. Reinicie-o, para que as configurações novas tenham efeito:

#/etc/init.d/bind restart

Agora vamos aos testes!!!

 

Testando e usando o servidor Bind

Testando o servidor de nomes

Considerando que nosso servidor do exemplo está no endereço 192.168.0.1 podemos usar o dig novamente para testar a conexão das outra máquinas da rede ao servidor DNS. O comando é o mesmo que executamos anteriormente, mas agora vamos tentar de outra máquina da rede e não do próprio servidor. Por isso não podemos mais usar seu endereço de retorno (o 127.0.0.1). O comando a ser dado é

$ dig www.cursos.org.br @192.168.0.1

Ou algo parecido, como:

$ dig mail.cursos.org.br @192.168.0.1

Se tudo ocorreu corretamente, você verá uma resposta com o IP da máquina desejada. Algo assim:

;; ANSWER SECTION:
www.cursos.org.br.
604800 IN A 192.168.0.4

Testando o DNS reverso

O DNS reverso é um meio de que outras máquinas podem ter certeza de que você é você, por exemplo, é normal servidores de email, checarem se o seu dns é mesmo valido, um exemplo pra você ver como isso funciona seria usando o comando host.

#host www.cursos.org.br

Se estiver correto, você receberá:

www.cursos.org.br has address 192.168.0.4

Caso haja algum erro, a resposta será:

Host www.cursos.org.br  not found: 3(NXDOMAIN)

Outra maneira é usar o ping:

#ping www.cursos.org.br 

A resposta esperada é:

PING www.cursos.org.br  (192.168.0.4) 56(84) bytes of data.

Resolvendo problemas

Caso os testes apresentem algum erro, existem alguns passos que podem ser tomados.

Reinicie o servidor Bind:

#/etc/init.d/bind restart

Observe os erros encontrados usando o comando:

#tail -30 /var/log/syslog

O Syslog é um registrador geral de erros no sistema. O comando acima lista as 30 últimas alterações no mesmo. O mais comum é algum erro na sintaxe do arquivo de configuração (faltou um ".", nome errado, algo assim). O Syslog avisa sobre o erro e a linha onde ele se encontra. Assim, você resolve facilmente o problema.

Usando seu novo servidor DNS nos clientes

Agora, se o servidor está funcionando corretamente, basta configurar os clientes.

Se sua rede não usa DHCP, abra o /etc/resolv.conf com seu editor favorito e coloque as seguintes linhas (onde após o search vem o nome do seu domínio, e após o nameserver o ip do DNS do mesmo):

search cursos.org.br
nameserver 192.168.0.1

ou

search escritorio
nameserver 192.168.0.100

Lembre-se que estas linhas devem estar antes de qualquer outra que exista no arquivo resolv.conf. Caso contrário, o DNS primário da máquina configurada será outro.

Usando o Bind com o DHCPD

Caso você possua um servidor DHCP em sua rede, como o DHCPD, pode usá-lo integrado ao bind. No DHCP, por exemplo, são necessárias apenas duas alterações no /etc/dhcp3/dhcpd.conf (ou /etc/dhcpd/dhcpd.conf):

1) No "option domain-name", adicione o nome de seu domínio.

Exemplo:

option domain-name "cursos.org.br";
option domain-name-servers 192.168.0.1;
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;

ou, no caso da nossa intranet:

option domain-name "escritorio";
option domain-name-servers 192.168.0.100;
option routers 192.168.0.100;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;

2) Adicione a seguinte linha (esta opção serve para indicar se o servidor DNS será atualizado quando um aluguel de ip for solicitado. "none" "aliviará" seu servidor DHCP):

ddns-update-style none;