1. Parâmetros do DNS

O DNS inclui vários tipos de parâmetros. Estes são documentados, na sua maior parte, nas especificações RFC1034 e RFC1035. Os parâmetros adicionais para as diversas classes são definidos em outras RFCs conforme indicado nas tabelas.

Para cada nome armazenado no banco de dados do DNS é atribuído um tipo de objeto para identificá-lo. Por exemplo, o nome é para um host, caixa de correio ou usuário? Por exemplo, como você determina se inf em inf.ufrgs.br é o nome de um host ou um sub-domínio? Quando um cliente pede para o DNS converter um nome (isto é, para executar o mapeamento de nome para endereço), ele deve especificar o tipo de resposta desejado. Por exemplo, um aplicativo telnet remoto deve especificar que deseja o endereço IP de uma máquina, e não a informação do servidor de correio eletrônico do domínio. Em outras palavras, a pergunta deve ser bastante específica.

Um servidor de nomes pode trabalhar em dois modos: recursiva ou interativamente, com já foi mencionado no capítulo anterior, dependendo da solicitação do cliente. Quando um cliente conversor de nomes consulta um servidor de nomes, a mensagem contém as informações seguintes:

    1. Classes

O DNS foi criado para ser independente de protocolo. Por isso, o campo classe na consulta identifica o grupo de protocolo do registro de interesse. É possível que haja vários registros no banco de dados DNS que tenham os mesmos dados no campo "nome" mas para protocolos diferentes. Para os usuários do TCP/IP, o código de classe é IN de Internet.

Decimal

Nome

Referências

0

Reservado

Internet Assigned Numbers Authority, Dezembro 1994

1

Internet (IN)

RFC1035

2

Não associado

Internet Assigned Numbers Authority, Dezembro 1994

3

Chaos (CH)

RFC1035

4

Hesiod (HS)

RFC1035

5-253

Não associado

Internet Assigned Numbers Authority, Dezembro 1994

254

Nenhum

Paul Vixie, Junho 1997

255

Qualquer [somente QCLASS]

RFC1035

256-65534

Não associado

Internet Assigned Numbers Authority, Dezembro 1994

65535

Reservado

Internet Assigned Numbers Authority, Dezembro 1994

Tabela 4.1 Classes do DNS

4.2 Tipos de Registros de Recursos

Você leu anteriormente que o DNS pode ser usado para traduzir um nome de host para um endereço IP e também pesquisar um endereço de servidor de correio eletrônico para um domínio. Essa informação é diferenciada pelos tipos de objetos. Na tabela 4.1, estão listados os tipos de RR (registros de recursos) mais comuns usados no DNS.

A

Endereço IP do host

CNAME

Nome de domínio canônico para um alias (nome alternativo)

HINFO

Informações de CPU e sistema operacional para um host

MX

Nome do servidor de correio eletrônico para o domínio

NS

Servidor de nome (que tem autoridade) para o domínio

PTR

Ponteiro para o nome do domínio (como uma ligação simbólica nos sistemas de arquivo)

SOA

Start of Authority - indica a autoridade sobre os dados do domínio

TXT

Informação textual

RP

Pessoa responsável

Tabela 4.2 Tipos mais comuns de registros de recursos

A maioria dos registros que você encontra em um banco de dados DNS é do tipo A, o que significa que eles consistem no nome de um host e seus endereços IP. O próximo tipo comum de registro é provavelmente MX. Ele contém nomes de hosts que atuam como recurso para troca de correspondência eletrônica (gateway) para um sub-domínio dado. Os registros MX habilitam você a enviar uma correspondência eletrônica para alguém em determinado sub-domínio sem precisar conhecer o nome do gateway de correio eletrônico. Por exemplo, você precisa endereçar a correspondência eletrônica para fulano@inf.ufrgs.br sem saber que o nome do servidor de correio eletrônico é caracol. Senão, você teria que endereçar sua correspondência eletrônica para fulano@caracol.inf.ufrgs.br.

Abaixo segue uma tabela com todos os tipos de dados e perguntas (TYPES e QTYPES) definidos para a classe Internet (IN).

Tipo

Valor

Significado Referências

A

1

um endereço de host RFC1035

NS

2

um servidor de nomes authoritative RFC1035

MD

3

um destino de mail (Obsoleto à MX) RFC1035

MF

4

um mail forwarder (Obsoleto à MX) RFC1035

CNAME

5

o nome canônico para um alias RFC1035

SOA

6

define o início de uma zona com autoridade RFC1035

MB

7

um nome de domínio de uma caixa de correio (EXPERIMENTAL) RFC1035

MG

8

um membro de um grupo de mail (EXPERIMENTAL) RFC1035

MR

9

um nome de domínio renomeado de mail (EXPERIMENTAL) RFC1035

NULL

10

um RR nulo (EXPERIMENTAL) RFC1035

WKS

11

descrição de um serviço bastante conhecido (Well Known Service) RFC1035

PTR

12

um ponteiro para um nome de domínio RFC1035

HINFO

13

informações sobre um host RFC1035

MINFO

14

informações sobre um mailbox ou uma lista de mail RFC1035

MX

15

um servidor de mail (mail exchange) RFC1035

TXT

16

texto simples RFC1035

RP

17

para Pessoa Responsável RFC1183

AFSDB

18

para a localização de base de dados AFS RFC1183

X25

19

para endereço X.25 PSDN RFC1183

ISDN

20

para endereço ISDN RFC1183

RT

21

para indicação de rota RFC1183

NSAP

22

para endereço NSAP (estilo de registro A para NSAP) RFC1706

NSAP-PTR

23

idem (estilo de PTR para NSAP) RFC1706

SIG

24

para assinatura de segurança RFC2065

KEY

25

para chave de segurança RFC2065

PX

26

informação de mapeamento de mail X.400 RFC1664

GPOS

27

posição geográfica RFC1712

AAAA

28

endereço IP6 Susan Thomson, Agosto 1995

LOC

29

informação sobre localização Paul Vixie, Junho 1997

NXT

30

próximo domínio RFC2065

EID

31

identificador de fim Michael Patton, Junho 1995

NIMLOC

32

localizador Nimrod Michael Patton, Junho 1995

SRV

33

servidor selecionado RFC2052

ATMA

34

endereço ATM George Dobrowski, Julho 1996

NAPTR

35

ponteiro para autoridade de um nome Ron Daniel, Junho 1997

TSIG

36

assinatura de transação Paul Vixie, Junho 1997

IXFR

251

transferência incremental RFC1995

AXFR

252

transferência de toda uma zona RFC1035

MAILB

253

RRs relacionados a mailbox (MB, MG ou MR) RFC1035

MAILA

254

RRs para agentes de mail (Obsoleto - veja MX) RFC1035

*

255

Um pedido por todos os registros RFC1035

Tabela 4.3 Tipos de dados e perguntas da classe Internet

    1. Formato das Mensagens
    2. Toda a comunicação envolvendo o protocolo do DNS é carregado por um só formato de pacote chamado mensagem. O formato em um primeiro nível da mensagem é dividido em 5 seções (algumas delas ficam vazias em alguns casos), mostrado na figura 4.1.

    3. O cabeçalho está sempre presente. O cabeçalho inclui campos que especificam quais das seções restantes estão presentes na mensagem, e também indica se é uma pergunta ou uma resposta, uma pergunta padrão ou algum outro código de operação, etc.

      Os nomes da seções depois do cabeçalho são derivados dos seus usos nas perguntas padrões. A seção pergunta contém campos que descrevem um pergunta a um servidor de nomes. Esses campos são: QTYPE (tipo), QCLASS (classe) e QNAME (nome de domínio). As últimas três seções possuem o mesmo formato: uma lista de registros de recursos (RRs) concatenados, podendo ser vazia. A seção de resposta contém RRs que respondem a pergunta. A seção autoridade contém RRs que apontam para servidores de nomes com autoridade sobre o nome de domínio perguntado. A seção adicional contém RRs que se relacionam com a pergunta, mas não são respostas diretas para a pergunta.

    4. Códigos de Operação
    5. Quando um servidor de nomes receber uma consulta, ele verificará se o nome está dentro do sub-domínio para o qual tem autoridade. Nesse caso, ele pesquisará o nome no banco de dados e retornará a informação solicitada, se houver.

      Se o servidor de nome não puder converter o nome completamente, ele verificará qual "código de operação" o cliente especificou. Se o cliente tiver solicitado uma conversão recursiva (pesquisa completa), o servidor de nome irá contactar outro servidor de nomes para ver se poderá convertê-lo; se esse servidor contactado não puder converter o nome, ele irá indicar o próximo servidor e assim por diante até que tenha sucesso ou até que o tempo limite de nome não encontrado seja decorrido.

      Código

      Nome

      Significado

      Referências

      0

      Query

      Pergunta recursiva

      RFC1035

      1

      IQuery

      pergunta não-recursiva

      RFC1035

      2

      Status

      Estado

      RFC1035

      3

      Reservado

       

      Internet Assigned Numbers Authority, Dezembro 1994

      4

      Notify

      Notificação

      RFC1996

      5

      Update

      Atualização

      Paul Vixie, Junho 1997

      Tabela 4.4 Códigos de Operação

      Se o resolver pedir conversão interativa (pesquisa não recursiva), o servidor de nome irá gerar um erro se não puder converter o nome. Como parte da mensagem de resposta, o servidor de nome indicará outro um servidor no qual o cliente deverá fazer o próxima tentativa.

    6. Códigos de Resposta

Sempre que um cliente envia uma pergunta para um servidor de nomes, este responde seguindo um código para as respostas. Abaixo seguem os códigos de resposta e seus respectivos significados.

Código

Nome

Significado

Referências

0

NoError

Sem erro

RFC1035

1

FormErr

Erro de formato

RFC1035

2

ServFail

Falha no servidor

RFC1035

3

NXDomain

Domínio não existente

RFC1035

4

NotImp

Não implementado

RFC1035

5

Refused

Pergunta recusada

RFC1035

6

YXDomain

Nome existe, mas não deveria

RFC2136

7

YXRRSet

RR afirma existir, mas não deveria

RFC2136

8

NXRRSet

RR afirma que deveria existir, mas não existe

RFC2136

9

NotAuth

Servidor sem autoridade sobre a zona

RFC2136

10

NotZone

Nome não está contido na zona

RFC2136

Tabela4 .5 Códigos de resposta