Capítulo 1. Servidor de Nomes

Índice
Introdução
Funcionamento do DNS
Domínios e Servidor Primário
Servidor Secundário
Zonas de Repetidores
Cache
DHCP

Neste capítulo serão apresentadas informações sobre instalação, configuração e manutenção de um servidor DNS (Domain Name System[1]) em uma máquina com Conectiva Linux. Você aprenderá como criar um domínio e administrar as máquinas ligadas a ele. Será visto como fazer com que estações possam utilizar o servidor DNS para acessar umas às outras através de seus respectivos nomes. Além disso, você aprenderá um pouco sobre como o DNS consegue organizar um número absurdamente grande de máquinas conectadas possibilitando que se enxerguem, umas às outras, em uma rede.

Introdução

O DNS converte nomes de máquinas em endereços IP. Ele mapeia nomes para IPs e IPs para nomes. Ele é um banco de dados distribuído, permitindo, assim, que uma seção seja gerenciada localmente e esteja, mesmo assim, disponível para todo o mundo.

Os servidores de nomes compõem a parte servidor do mecanismo cliente-servidor do DNS. Os servidores de nomes contêm informações sobre uma parte do banco de dados e as torna disponíveis para os clientes ou resolvedores.

A estrutura do banco de dados do DNS é semelhante à estrutura do sistema de arquivos do Conectiva Linux, representada por uma árvore invertida. No sistema de arquivos tudo parte do diretório raiz; no DNS tudo parte de um nulo (""), representado em texto como um ponto (".").

Cada ramo da árvore representa uma partição do banco de dados geral - um diretório no sistema de arquivos do Conectiva Linux ou um domínio no DNS. Cada domínio pode ser dividido em mais partes chamadas subdomínios.

Cada domínio tem um nome. Este nome é dividido em duas partes. A primeira identifica sua relação ao domínio pai. A segunda parte é o nome do domínio, que identifica sua posição no banco de dados. Por exemplo, podemos ver que em kepler.minhaorganizacao.com.br, o nome de domínio é minhaorganizacao.com.br e o nome da máquina é kepler.

Cada domínio pode ser administrado por uma organização diferente. Estas organizações podem quebrar estes domínios em subdomínios e delegar o controle destes a outras organizações, tornando assim a administração extremamente descentralizada.

A estrutura pode parecer um tanto complicada, mas é muito mais simples do que parece. Tudo é um questão de partir de um domínio e ir descendo, até chegar a uma máquina (ou host).

Funcionamento do DNS

Espaço de Nomes de Domínio

Como já foi mencionado anteriormente, o DNS funciona de forma análoga ao sistema de arquivos do Conectiva Linux. Cada unidade de dados do banco distribuído do DNS é indexada por um nome. Este nome é, basicamente, uma rota em uma árvore invertida, chamada de Espaço de Nomes de Domínios. No topo desta árvore está o domínio raiz. Como em um sistema de arquivos, cada ramo da árvore de domínios pode ter um número qualquer de outros ramos.

Nomes de Domínio

Cada ramo da árvore de domínios é identificado por um nome de, no máximo, 63 caracteres. Estes nomes não podem ser nulos, já que o nulo é reservado ao domínio raiz da árvore.

Quando o domínio raiz aparece no nome de domínio de um ramo, o nome parece terminar com um ponto, quando, na verdade, ele termina com um ponto e o domínio raiz, que é representado por uma seqüência nula de caracteres. Assim, alguns programas interpretam um ponto no final de um nome de domínio como significando que o nome de domínio é absoluto. Um nome de domínio absoluto identifica a localização do ramo na hierarquia sem ambigüidade. Nomes não seguidos por pontos são chamados de nomes relativos, já que eles não especificam sua localização exata na árvore, podendo, assim, ser relativos a diversos pontos dela.

O sistema de nomes de domínios requer que os ramos irmãos (ou seja, os ramos que partem diretamente de um ramo comum) tenham nomes únicos. Comparando com o sistema de arquivos, da mesma forma como não se pode ter dois /usr/bin, não se pode ter dois copernico.minhaorganizacao.com.br. Isso não chega a ser um problema, já que os nomes só têm de ser únicos entre os ramos filhos, ou seja, é possível existir dois ramos de mesmo nome desde que eles não sejam irmãos.

Domínios e Servidor Primário

Apresentação

Um domínio nada mais é do que uma sub-árvore do espaço de nomes de domínio. O nome de um domínio é o nome do ramo que está no topo daquele domínio. Por exemplo, o topo do domínio minhaorganizacao.com.br é um ramo chamado com.br, da mesma forma como você esperaria encontrar o diretório /usr no topo de /usr/lib.

Cada sub-árvore é considerada parte de um domínio. Assim como um nome de domínio pode estar em diversas sub-árvores, um nome de domínio pode estar em diversos domínios. Por exemplo, minhaorganizacao.com.br faz parte do domínio com.br e também do domínio br.

Como um domínio é basicamente uma árvore de nomes de domínio, chega-se a conclusão de que as máquinas conectadas ao sistema também devem ser domínios. Lembre-se de que os nomes de domínio são apenas índices do banco de dados do DNS; assim, as máquinas são os nomes de domínio que apontam para informações sobre máquinas individuais.

Os domínios localizados nas pontas dos ramos da árvore de domínios geralmente representam máquinas individuais. Os nomes de domínios podem apontar para um endereço de rede ou informações de roteamento de correio eletrônico. Os domínios internos podem apontar para uma máquina específica e podem apontar para informações estruturais sobre os subdomínios. Por exemplo, minhaorganizacao.com.br pode ser o nome do domínio da Minha Organização e ainda o nome de domínio de uma máquina que encaminha correio eletrônico entre a Internet e a empresa.

O Espaço de Nomes de Domínio da Internet

O Sistema de Nomes de Domínios não impõe muitas regras aos nomes associados aos domínios. Além disso, nenhum significado particular é associado aos nomes de um nível particular. Quando você cria um domínio, você pode definir suas próprias regras para os nomes.

O espaço de nomes de domínios atual da Internet tem algumas regras para a sua estruturação. Em especial, os domínios próximos à raiz seguem certas tradições. Isso evita que os nomes de domínios pareçam desorganizados e sem sentido.

Domínios de Primeiro Nível

Originalmente, a Internet foi dividida em sete domínios, de maneira a dividir a Internet por tipo de organização. Estes domínios foram chamados de Domínios de Primeiro Nível ou DPN. Os domínios originais são:

  • com: Organizações comerciais

  • edu: Organizações de ensino

  • gov: Organizações governamentais

  • mil: Organizações militares

  • net: Organizações da rede

  • org: Organizações internacionais

É possível notar que os domínios acima parecem ser específicos para organizações norte-americanas. Isso se deve ao fato de a Internet ter-se originado da ARPANET, que era um projeto norte-americano. Na época, não se podia prever o sucesso da ARPANET e a conseqüente criação da Internet. Para acomodar a internacionalização da Internet, foi feita uma alteração nos DPNs. Foram reservados, além dos sete domínios originais, domínios que designavam localizações geográficas. Estes nomes de domínios seguem uma padronização internacional chamada ISO3166. Esta padronização define códigos de duas letras para cada país do mundo (por exemplo, br para Brasil).

Embora os domínios originais devessem continuar a ser respeitados dentro de cada um dos domínios internacionais, isto acabou não ocorrendo. Cada país definiu suas próprias regras para divisão. A maioria manteve a divisão por organizações, embora não necessariamente com os domínios originais. A Inglaterra, por exemplo, define co.uk para instituições comerciais e ac.uk para instituições acadêmicas. Já o Brasil manteve os domínios originais (por exemplo, com.br, net.br) e, recentemente, criou domínios adicionais como eti.br, para especialistas em tecnologia da informação, psi.br para provedores de acesso, g12.br para instituições de ensino de 1º e 2º graus, etc. Você pode obter mais informações sobre outros domínios na página da FAPESP .

Implementação

Pré-Requisitos

Para configurar um domínio, você precisará de:

  • um servidor com uma placa de rede devidamente configurada; é importante que você certifique-se de que o nome da máquina e o domínio pertençam ao domínio que está sendo configurado;

  • um domínio registrado (opcional); quando o servidor DNS for usado somente para uma rede interna, não há necessidade de que o domínio (.com.br) seja registrado.

Instalação

Para configurar um domínio, você precisará usar o Synaptic para instalar os seguintes pacotes:

  • bind

  • linuxconf-dnsconf

  • bind-utils

ou, através da linha de comando, poderá utilizar o apt-get:

# apt-get install bind bind-utils linuxconf-dnsconf

Configuração

Para configurar o servidor DNS, abra o Linuxconf e pressione a seqüência de botões Configuração -> Rede -> Tarefas do Servidor -> DNS - servidor de nomes de domínio.

Agora, você pode configurar todo o servidor de nomes de sua empresa. Pressione a opção Adicionar, localizado em Configurar -> Tarefas de Servidor -> DNS - servidor de nomes de domínio -> Configurar -> Configurar Domínios para configurar adicionar um domínio.

Figura 1-1. Configuração inicial do DNS

Nesta tela você deve informar os dados referentes ao seu domínio.

Domínio: este é o nome do domínio; no caso, o domínio que está sendo criado neste exemplo é chamado de minhaorganizacao.

Servidor principal: este é o nome da máquina onde o servidor de nomes estará sendo executado. No exemplo, o domínio minhaorganizacao será controlado pela máquina kepler.minhaorganizacao. Note que o ponto no final do nome é necessário.

Email do administrador: este é o endereço de correio eletrônico do administrador de sistema. Em caso de problemas, este administrador poderá ser avisado. Note que se usa um ponto (".") no lugar de arroba ("@") neste campo.

Há, ainda, algumas outras configurações que podem ser feitas nesta tela, mas que não serão descritas neste livro. São elas:

Servidores de nome (NS): em uma configuração simples, basta o nome do servidor principal. Além disso, você deverá informar aqui quais serão os servidores secundários de seu domínio.

Servidores de correio (MX): aqui você pode definir o servidor que encaminha as mensagens de correio eletrônico do seu domínio para a Internet.

IPs padrão: aqui você pode definir um ou mais endereços de IP de máquinas que serão acessadas através do domínio. É normal pesquisas em servidores de nome se referirem apenas ao domínio, mas os domínios não possuem IPs, apenas máquinas os têm, assim, definindo IPs padrão, uma pesquisa ao domínio minhaorganizacao irá resultar naquele IP padrão.

Funcionalidades: aqui podem ser definidas algumas funcionalidades do domínio. Por exemplo, pode-se definir de quanto em quanto tempo os servidores secundários serão atualizados.

Controle de Acesso: você pode definir algumas opções de segurança para seu servidor de nomes.

Outras Informações: define-se aqui informações opcionais, como por exemplo um comentário ou informação sobre o administrador do DNS.

Nota: A rede que terá acesso ao servidor DNS deverá ser cadastrada. Este cadastro deverá ser feito na aba Segurança -> Configurar Controle de Acesso, a partir do menu principal do DNS, para que as estações possam utilizar serviços como POP e SMTP.

Mapas Reversos

A configuração do mapeamento reverso permite a conversão de endereços IP para nomes, facilitando as buscas para o servidor DNS. Para configurar o mapeamento reverso, dirija-se à opção Configurar-> Configurar mapas de IPs reversos -> Adicionar.

As opções são basicamente as mesmas para as telas da configuração de domínios (Figura 1-1), exceto pelas opções Número de Rede e Intervalo da sub-rede x-y. É através destes campos que o DNS saberá fazer a conversão.

Cadastramento de Estações

Para cadastrar uma máquina no banco de dados do DNS a partir do menu inicial da configuração do servidor DNS, vá para Adicionar/Editar -> Adicionar/Editar Informações e surgirá uma tela como na Figura 1-2.

Simplesmente selecione o domínio desejado para iniciar a adição/edição de máquinas.

Figura 1-2. Selecionando o domínio

Clique em Adicionar para digitar o nome da máquina a ser adicionada. Na tela que aparece (Figura 1-3) já vem informado o nome do domínio; você deve digitar somente o nome da máquina antes do ponto.

Figura 1-3. Especificando o nome de uma máquina

Digite o nome da máquina antes do ponto e pressione Aceitar para preencher as informações da máquina.

Basicamente, a única informação que você tem de informar na próxima tela é o endereço IP da máquina incluída. O resto é opcional.

Depois de preencher corretamente o endereço IP da máquina, clique em Aceitar. Isso irá adicionar a máquina ao banco de dados do DNS.

Figura 1-4. Adição/Edição de máquinas

Note que você retornará sempre à tela de adição de máquinas (Figura 1-3) para possibilitar a adição de máquinas adicionais. Clique em Cancelar quando não desejar mais cadastrar nenhuma máquina.

Após terminar de cadastrar máquinas você poderá ver as máquinas que estão cadastradas no domínio:

Figura 1-5. Máquinas cadastradas no domínio


Além do modo apresentado de adição de máquinas ao DNS, você pode utilizar a opção Adicionar/Editar (edição rápida).

Você deverá digitar o nome completo da máquina a ser adicionada, ou seja, o nome e o domínio. Clique em Aceitar para adicionar a máquina. A tela seguinte permite digitar as informações da máquina. Note que é a mesma tela utilizada na opção anterior.

Após as configurações, deve iniciar o serviço named (menu Controle -> Painel de Controle -> Controle de Atividades e Serviços).

Nota: Se você for sair do Linuxconf, pode ser que surja uma tela, pedindo que você faça as alterações mostradas. Clique no botão Não faça nada, pois todas as informações necessárias já foram incluídas ou modificadas.

Testes de Configuração

Para verificar se a configuração está correta tente acessar outras máquinas da rede a partir de um cliente DNS (o comando ping pode auxiliar nesta tarefa).

Se não for possível conectar-se ao servidor DNS, verifique se o serviço named está sendo executado no servidor. Você pode fazer isso através do Linuxconf.

Outro teste que pode ser realizado é a execução dos seguintes comandos:

# host -t NS minhaorganizacao

Este comando irá buscar o name server (NS), ou seja, o nome do servidor (ou servidores) de DNS. Se não retornar, verifique o erro e revise sua configuração. Outro parâmetro pode ser usado: o MX (para servidores de e-mail).

Referências

Servidor Secundário

Apresentação

Um servidor secundário é uma espécie de cópia de segurança do servidor primário. Quando não é possível encontrar um domínio através do servidor primário o sistema tenta resolver o nome através do servidor secundário.

Implementação

Instalação

A instalação é idêntica à instalação do servidor primário, basta usar o Synaptic para instalar os seguintes pacotes:

  • bind

  • linuxconf-dnsconf

  • bind-utils

ou utilizar o apt-get:

# apt-get install bind bind-utils linuxconf-dnsconf

Configuração

Para configurar o DNS secundário acesse Configuração -> Rede -> Tarefas do servidor -> DNS - servidor de nomes de domínios -> Configurar -> Configurar secundários no Linuxconf, clique em Adicionar, preencha o domínio para o qual se deseja configurar o DNS secundário e o número IP do servidor de nomes primário deste domínio.

Isto é tudo o que você precisa fazer no DNS secundário. Não é necessário adicionar máquinas ou criar o mapa de IP reverso pois isso é feito automaticamente, uma vez que o DNS secundário busca estas informações no servidor de nomes primário para o domínio. No entanto, é necessário configurar o DNS primário para que ele divulgue o secundário e permita que ele leia a sua base de dados. Para fazer isso acrescente o nome do servidor secundário na lista de servidores de nomes do primário (veja a Figura 1-1) e o autorize em Controle de acesso -> Permite transferência para, como na Figura 1-6.

Figura 1-6. Autorizando a transferência de dados para o DNS secundário

Zonas de Repetidores

Apresentação

Existem casos em que não é interessante que o servidor de nomes envie uma grande quantidade de pacotes para fora da rede local. Isto pode ocorrer por diversos motivos, como, por exemplo, no caso de empresas que se conectam com a matriz através de antenas. Seria ineficiente que o servidor ficasse tentando localizar algo através do servidor da matriz. Para isso, pode-se criar servidores de nomes que servem para criar um grande cache (veja a seção Cache). Estes servidores são chamados de repetidores.

A configuração de zona de repetidores é um caso específico de repetidor. Os repetidores são utilizados para resolver nomes externos no lugar do servidor primário e a zona de repetidores é utilizada para resolver apenas os nomes de um domínio específico que o seu servidor primário não consegue resolver.

Por exemplo, se o seu departamento na empresa tem um servidor 200.20.57.1 e os departamentos vizinhos ao seu possuem os servidores 200.20.57.12 e 200.20.57.13, então você poderá configurar as zonas de repetição conforme a Figura 1-7.

Isso irá evitar a consulta ao servidor da matriz sempre que for necessário resolver um nome que está dentro da própria empresa.

Implementação

Instalação

Para configurar uma zona de repetidores, você precisará usar o Synaptic para instalar os seguintes pacotes:

  • bind

  • linuxconf-dnsconf

  • bind-utils

ou utilize o apt-get:

# apt-get install bind bind-utils linuxconf-dnsconf

Configuração

Para configurar um servidor de nomes como repetidor não é necessária qualquer configuração especial. Você só precisa configurar os outros servidores de nomes para encaminharem suas requisições para o repetidor. Desta forma, os servidores tentam resolver nomes através do repetidor, que, por sua vez, já pode ter a resposta em seu cache, evitando assim que a requisição tenha de sair da rede local.

Figura 1-7. Configurando uma zona de repetidores

Cache

Uma das características que aceleram o processo de procura de uma máquina é chamada de caching.

Um servidor de nomes procurando uma máquina pode ter de enviar um número considerável de pesquisas até encontrá-la. Enquanto faz isso, ele recebe uma grande quantidade de informações sobre os outros servidores.

O servidor de nomes guarda esta informação para acelerar futuras pesquisas. Na próxima vez em que o servidor de nomes tiver de pesquisar algo sobre isso, o processo será acelerado. Mesmo que ele não tenha a resposta em cache, ele pode ter informações sobre o servidor de nomes responsável por sua zona.

DHCP

Apresentação

O protocolo DHCP (Dynamic Host Configuration Protocol[2]) é um método usado para configurar automaticamente computadores em uma rede durante a inicialização. É comumente usado para fornecer um endereço IP e um gateway padrão, mas pode também ser usado para fornecer endereços de servidores DNS, NIS, etc.

Implementação

Pré-Requisitos

Você irá necessitar do endereço IP de sua(s) placa(s) de rede. Opcionalmente, você deverá informar os endereços de seus servidores DNS e NIS.

Instalação

Para instalar um servidor DHCP, você deve usar o Synaptic para instalar os seguintes pacotes:

  • dhcp

  • linuxconf-dhcpd

ou utilizar o comando apt-get:

# apt-get install dhcp linuxconf-dhcpd

Configuração

Para criar um servidor DHCP, abra o Linuxconf e vá para Configuração -> Rede -> Serviços de Inicialização -> Servidor DHCP/BOOTP.

Na primeira vez em que você entrar neste módulo do Linuxconf, ele irá diretamente para a tela de edição de padrões (Figura 1-8).

Figura 1-8. Edição de padrões do DHCP

A única informação obrigatória é o identificador do servidor. Informe o nome da máquina servidor neste campo.

Na parte inferior da tela encontram-se pastas para configurações opcionais do servidor DNS, NIS, configurações Netbios, roteadores, servidores de impressão, etc. Normalmente usa-se pelo menos a configuração do servidor DNS; digite o nome do domínio e o endereço do servidor DNS nos campos apropriados. Para mais informações consulte a Ajuda on-line do Linuxconf.

Após informar os padrões de sua rede, clique em Aceitar para continuar a configuração do DHCP.

A partir deste momento, o Linuxconf sempre voltará diretamente a esta tela (Figura 1-9), permitindo que você possa seguir diretamente às tarefas mais comuns.

Figura 1-9. Tela normal do módulo DHCP


Sempre que você quiser alterar os padrões novamente, você pode usar o botão Padrões.

O próximo passo para a configuração é a criação de uma nova sub-rede. Clique em Adicionar Rede para adicionar uma nova sub-rede. O Linuxconf apresentará a tela mostrada na Figura 1-10.

Figura 1-10. Adicionando uma sub-rede


Informe o número da rede e sua máscara. Agora você pode começar a criar faixas de IP para serem usadas pelos clientes DHCP. Para criar uma faixa, preencha os campos da aba Faixas na parte inferior da tela. Você deve informar o IP inicial e o IP final.

Cada sub-rede pode ter uma configuração específica de DNS, NIS, servidores de impressão, etc. Para informar, por exemplo, o servidor DNS a ser utilizado pelas máquinas cliente, clique na pasta DNS e preencha os valores da mesma forma como foi feito na especificação dos padrões do servidor DHCP.

Quando você tiver terminado de criar faixas de IP, clique em Aceitar para retornar à tela inicial da configuração do DHCP. Note que as novas sub-redes aparecem nesta tela (Figura 1-11).

Figura 1-11. Tela inicial com sub-redes

Testes de Configuração

Para verificar se a configuração está correta, basta inicializar uma máquina cliente e verificar se ela recebe as configurações desejadas.

Se o cliente não conseguir conectar-se ao servidor, ou não receber as configurações corretas, verifique se o serviço dhcpd está sendo executado no servidor. Você pode fazer isto através do Linuxconf. Verifique a documentação do Linuxconf para saber como proceder.

Notas

[1]

Sistema de nomes de domínio.

[2]

Protocolo de configuração dinâmica de hosts.