DNS: sistema de nomes de domínio

O que é o DNS

Cada computador conectado à Internet possui, pelo menos, um endereço IP próprio. Contudo, os usuários não querem trabalhar com endereços numéricos do tipo 194.153.205.26, mas com um nome de domínio ou endereços mais explícitos (chamados endereços FQDN) do tipo [/ CCM.net].

Assim, é possível associar nomes em linguagem corrente aos endereços numéricos graças a um sistema chamado DNS - Domain Name System. Chama-se resolução de nomes de domínios (ou resolução de endereços) a correlação entre os endereços IP e o nome de domínio associado.

Nomes de hóspedes

No início do TCP/IP, como as redes eram muito pouco vastas ou, dito de outra forma, como o número de computadores conectados a uma mesma rede era reduzido, os administradores de rede criavam arquivos chamados tabelas de conversão manual. Estas tabelas de conversão manual eram arquivos sequenciais, geralmente chamados hosts ou hosts.txt, associando em cada linha o endereço IP da máquina e o nome literal associado, chamado de nome de hóspede.

Introdução ao Sistema de nome de domínio

O sistema precedente de tabelas de conversão necessitava da atualização manual das tabelas dos computadores no caso de adição ou modificação de um nome de máquina. Assim, com a explosão da dimensão das redes e da sua interconexão foi necessário instalar um sistema de gestão dos nomes hierarquizado e fácil de administrar. O sistema Domain Name System (DNS) foi criado em novembro de 1983 por Paul Mockapetris (RFC 882 e RFC 883) e, em seguida, revisto em 1987 no RFCs 1034 e 1035. O DNS foi objeto de vários RFCs.

Este sistema propõe um espaço de nomes hierárquico que garante a singularidade de um nome numa estrutura arborescente, como os sistemas de arquivos do Unix; um sistema de servidores distribuídos que disponibiliza o espaço de nomes e um sistema de clientes que permite interrogar os servidores para conhecer o endereço IP que corresponde a um nome.

O espaço de nomes

A estruturação do sistema DNS baseia-se numa estrutura arborescente na qual são definidos domínios de nível superior, chamados TLD - Top Level Domains, ligados a um nó de raiz representado por um ponto:

Arborescence du Domain Name System
Chama-se nome de domínio cada nó da árvore. Cada um deles possui uma etiqueta de, no máximo, 63 caracteres. Assim, o conjunto dos nomes de domínio constitui uma árvore invertida onde cada nó está separado do seguinte por um ponto final.

A extremidade de um ramo chama-se hóspede e corresponde a uma máquina ou a uma entidade da rede. O nome de hóspede que lhe é atribuído deve ser único no domínio em questão ou, se for o caso, no subdomínio. Por exemplo, o servidor web de um domínio geralmente é chamado de www.

A palavra domínio corresponde formalmente ao sufixo de um nome de domínio, ou seja, o conjunto das etiquetas de nós de uma arborescência, com exceção do hóspede.

O nome absoluto correspondente ao conjunto de etiquetas dos nós de uma árvore, separados por pontos e terminado por um ponto final, é chamado de endereço FQDN (Fully Qualified Domain Name - Nome de Domínio Totalmente Qualificado). A profundidade máxima da arborescência é de 127 níveis e o comprimento máximo de um nome FQDN é de 255 caracteres. O endereço FQDN permite localizar, de maneira única, uma máquina. Assim, br.ccm.net representa um endereço FQDN.

Os servidores de nomes

As máquinas chamadas servidores de nome de domínio permitem estabelecer a correspondência entre o nome de domínio e o endereço IP das máquinas de uma rede. Cada domínio possui um servidor de nomes de domínios, chamado servidor de nomes primário, e um servidor de nomes secundário que permite substituir o servidor de nomes primário no caso de indisponibilidade.

Cada servidor de nome está declarado num servidor de nome de domínio de nível imediatamente superior, o que, implicitamente, permite uma delegação de autoridade sobre os domínios. O sistema de nomes é uma arquitetura distribuída, onde cada entidade é responsável pela gestão do seu nome de domínio. Assim sendo, não existe um organismo responsável pela gestão do conjunto dos nomes de domínios.

Os servidores que correspondem aos domínios de mais alto nível (TLD) são chamados servidores de nomes raiz. Existem treze espalhados pelo planeta, com nomes que vão de a.root-servers.net a m.root-servers.net.

Um servidor de nomes define uma área, ou seja, um conjunto de domínios sobre o qual o servidor tem autoridade. O sistema de nomes de domínio é transparente para o usuário, no entanto, não devemos esquecer, em primeiro lugar, que cada computador deve ser configurado com o endereço de um computador capaz de transformar qualquer nome num endereço IP.

Este computador chama-se Domain Name Server. Assim que você se conectar à Internet, o fornecedor de acesso vai, automaticamente, alterar os seus parâmetros de rede para colocar à sua disposição estes servidores de nomes. Em segundo lugar, também devemos lembrar que o endereço IP de um DNS secundário também deve ser definido. O servidor de nomes secundário pode substituir o servidor de nomes primário em caso de problema.

O servidor mais comum chama-se BIND - Berkeley Internet Name Domain. É um software livre, disponível nos sistemas UNIX, desenvolvido inicialmente pela Universidade de Berkeley, na Califórnia e mantido pelo ISC (Internet Systems Consortium).

Resolução de nomes de domínio

O mecanismo para encontrar o endereço IP que corresponde ao nome de um hóspede é chamado resolução de nome de domínio. A aplicação para realizar esta operação (geralmente integrada no sistema operacional) chama-se resolvedor.

Uma aplicação, ao querer conectar-se a um hóspede conhecido pelo seu nome de domínio (por exemplo, ‘www.br.ccm.net’), interroga um servidor de nomes definido em sua configuração de rede. Cada máquina conectada à rede possui em sua configuração os endereços IP de dois servidores de nomes do seu fornecedor de acesso.

Um pedido é então enviado ao primeiro servidor de nomes (chamado servidor de nome primário). Se ele possuir o registro no seu cache, ele vai enviá-lo para a aplicação, caso contrário, vai interrogar um servidor raiz. O servidor de nome raiz envia uma lista de servidores de nomes com autoridade sobre o domínio. O servidor de nomes primário com autoridade sobre o domínio vai, então, ser interrogado e retornará o registro que corresponde ao domínio do servidor:

Processo de resolução de nome de domínio

Tipos de registros

DNS é um banco de dados distribuído que contém registros chamados RR (Resource Records ou Registro de Recursos) relativos aos nomes de domínios. A seguinte informação só é útil para pessoas responsáveis pela administração de um domínio, já que o funcionamento dos servidores de nomes de domínio é totalmente transparente para os usuários.

Já que o sistema de memória cache permite que o sistema DNS seja distribuído, os registros de cada domínio possuem uma duração de vida chamada TTL (Time To Live - Esperança de vida), permitindo que os servidores intermediários conheçam a data de expiração da informação e, assim, saber se é necessário verificar, ou não.

Geralmente, um registro de DNS contém as seguintes informações:

Nome de domínio (FQDN) TTL Tipo Classe RData
br.ccm.net. 3600 A IN 163.5.255.85

Nome de domínio: o nome de domínio deve ser um nome FQDN, ou seja, deve terminar por um ponto. Se o ponto for omitido, o nome de domínio é relativo, o que significa que o nome de domínio principal incluirá um sufixo no domínio digitado.

Tipo é um valor de 16 bits que define o tipo de recurso descrito pelo registro. O tipo de recurso pode ser um dos seguintes:

A: este é um tipo básico que estabelece a correspondência entre um nome canônico e um endereço IP. Além disso, podem existir vários registros A relacionados com diversas máquinas da rede (servidores).
CNAME - Canonical Name: permite definir um pseudônimo para o nome canônico. Ele é particularmente útil para fornecer nomes alternativos relacionados aos diferentes serviços de uma mesma máquina.
HINFO: trata-se de um campo unicamente descritivo que permite descrever o hardware (CPU) e o sistema operacional (OS). De um modo geral, é aconselhável não informá-lo para não fornecer elementos que possam ser úteis para piratas informáticos.
MX - Mail eXchange: corresponde ao servidor de gestão de e-mail. Quando um usuário envia um e-mail para um endereço (usuário@domínio), o servidor de e-mail de saída interroga o servidor de nome com autoridade sobre o domínio a fim de obter o registro MX. Podem existir vários MX por domínio, para fornecer uma redundância no caso de avaria do servidor de serviço de mensagens principal. Por esta razão, o registro MX permite definir uma prioridade com um valor que pode ir de 0 a 65.535. Ele será assim expressado: NS que corresponde ao servidor de nomes com autoridade sobre o domínio, PTRque é um cursor para outra parte do espaço de nomes de domínios e SOA - Start Of Authority que é o campo que permite descrever o servidor de nome com autoridade sobre a área, assim como o e-mail do contato técnico (cujo caractere @ é substituído por um ponto).

Classe: a classe pode ser, seja IN (que corresponde aos protocolos da Internet, trata-se então do sistema utilizado no nosso caso), seja CH (para o sistema caótico).

RDATA: trata-se dos dados que correspondem ao registro. Veja as informações esperadas de acordo com o tipo de registro:

A: um endereço IP em 32 bits
CNAME: um nome de domínio
MX: um valor de prioridade de 16 bits, seguido de um nome de hóspede
NS: um nome de hóspede
PTR: um nome de domínio
SOA: vários campos

Domínios de nível elevado

Existem duas categorias de TLD - Top Level Domain, ou seja, domínios de nível mais elevado:

Os domínios ditos genéricos, chamados gTLD - generic TLD que são nomes de domínios genéricos de nível superior propondo uma classificação de acordo com o setor de atividade. Assim, cada gTLD possui as suas próprias regras de acesso:

gTLD históricos:

ARPA corresponde às máquinas procedentes da rede original.
COM correspondia inicialmente às empresas comerciais. Desde então, este TLD tornou-se o "TLD padrão" e a aquisição de domínios com esta extensão é possível, incluindo por particulares.
EDU corresponde aos organismos educativos.
GOV corresponde aos organismos governamentais.
INT corresponde às organizações internacionais.
MIL corresponde aos organismos militares.
NET correspondia inicialmente aos organismos associados às redes. Este TLD tornou-se, há alguns anos, um TLD comum. A aquisição de domínios com esta extensão é possível, incluindo por particulares.
ORG corresponde habitualmente às empresas com fins não lucrativos.

Novos gTLD introduzidos em novembro de 2000 pelo ICANN:

AERO corresponde à indústria aeronáutica.
BIZ (business) correspondendo às empresas comerciais.
MUSEUM corresponde aos museus.
NAME corresponde aos nomes de pessoas ou nomes de personagens imaginários.
INFO corresponde às organizações ligadas à informação.
COOD correspondendo às cooperativas.
PRO correspondendo às profissões liberais.

gTLD especiais:

ARPA corresponde às infraestruturas de gestão de rede. O gTLD ARPA serve para a resolução inversa das máquinas da rede, permitindo encontrar o nome que corresponde a um endereço IP.

Os domínios ditos nacionais, chamados ccTLD - country code TLD que correspondem aos diferentes países e os seus nomes correspondem às abreviaturas dos nomes de países definidas pela norma ISO 3166. O quadro abaixo recapitula a lista dos ccTLD.

Código País
AC Ilha da Ascensão
AD Andorra
AE Emirados Árabes Unidos
AF Afeganistão
AG Antígua e Barbuda
AI Angula
AL Albânia
AM Armênia
AN Antilhas Holandesas
AO Angola
AQ Antártica
AR Argentina
AS Samoa Americana
AT Áustria
AU Austrália
AW Aruba
AZ Azerbaijão
BA Bósnia-Herzegovina
BB Barbados
BD Bangladesch
BE Bélgica
BF Burquina Faso
BG Bulgária
BH Bahrein
BI Burundi
BJ Benim
BM Bermudas
BN Brunei
BO Bolívia
BR Brasil
BS Bahamas
BT Butão
BV Ilha Bouvet
BW Botsuana
BY Bielorrússia
BZ Belize
CA Canadá
CC Ilhas Cocos
CD República Democrática do Congo
CF República Centro Africana
CG Congo
CH Suíça
CI Costa de Marfim
CK Ilhas Cook
CL Chile
CM Camarões
CN China
CO Colômbia
COM Organismo com objetivos comerciais
CR Costa Rica
CU Cuba
CV Cabo Verde
CX Ilha Christmas
CY Chipre
CZ República Checa
DE Alemanha
DJ Djibuti
DK Dinamarca
DM Domínica
DO República Dominicana
DZ Argélia
EC Equador
EDU Organismo relacionado com a educação
EE Estônia
EG Egito
EH Sara Ocidental
ER Eritreia
ES Espanha
ET Etiópia
EU Europa
FI Finlândia
FJ Fiji
FK Ilhas Falklands (Malvinas)
FM Micronésia
FO Ilhas Faroé
FR França
FX França (Território Europeu)
GA Gabão
GB Grã-Bretanha
GD Granada
GE Geórgia
GF Guiana Francesa
GG Guernsey
GH Gana
GI Gibraltar
GL Groenlândia
GM Gâmbia
GN Guiné
GOV Organismo governamental
GP Guadalupe
GQ Guiné Equatorial
GR Grécia
GS Geórgia do Sul
GT Guatemala
GU Guam (EUA)
GW Guiné-Bissau
GY Guiana
HK Hong Kong
HM Ilhas Heard and McDonald
HN Honduras
HR Croácia
HT Haiti
HU Hungria
ID Indonésia
IE Irlanda
IL Israel
IM Ilha de Man
IN Índia
IO Territórios Britânicos do Oceano Índico
IQ Iraque
IR Irã
IS Islândia
IT Itália
JM Jamaica
JO Jordânia
JP Japão
KE Quênia
KG Quirguizistão
KH Camboja
KI Quiribati
KM Comores
KN Santo Kitts e Nevis
KP Coreia do Norte
KR Coreia do Sul
KW Kuwait
KY Ilhas Cayman
KZ Cazaquistão
LA Laos
LB Líbano
LC Santa Lúcia
LI Liechtenstein
LK Sri Lanka
LR Libéria
LS Lesoto
LT Lituânia
LU Luxemburgo
LV Letônia
LY Líbia
MA Marrocos
MC Mônaco
MD Moldávia
MG Madagascar
MH Ilhas Marshall
MK Macedônia
ML Mali
MIL Organismo militar
MM Myanmar
MN Mongólia
MO Macau
MP Ilhas Marianne do Norte
MQ Martinica
MR Mauritânia
MS Montserrat
MU Maurício
MV Maldivas
MW Malavi
MX México
MY Malásia
MZ Moçambique
NA Namíbia
NC Nova Caledônia
NE Níger
NET Organismo relacionado com Internet
NF Ilhas Norfolk
NG Nigéria
NI Nicarágua
NL Países Baixos
NO Noruega
NP Nepal
NR Nauru
NT Zona Neutra
NU Niue
NZ Nova Zelândia
OM Omã
ORG Organismo não referenciado
PA Panamá
PE Peru
PF Polinésia francesa
PG Papuásia-Nova Guiné
PH Filipinas
PK Paquistão
PL Polónia
PM Saint-Pierre e Miquelon
PN Pitcairn
PR Porto Rico (EUA)
PS Territórios palestinianos
PT Portugal
PY Paraguai
PW Palau
QA Catar
RE Reunião
RO Romênia
RU Federação Russa
RW Ruanda
SA Arábia Saudita
SB Ilhas Salomão
SC Seychelles
SD Sudão
SE Suécia
SG Singapura
SH Santa Helena
SI Eslovênia
SJ Ilhas Svalbard e Jan Mayen
SK República Eslovaca
SL Serra Leoa
SM San Marino
SN Senegal
SO Somália
SR Suriname
ST São Tomé e Príncipe
SU União Soviética
SV Salvador
SY Síria
SZ Suazilândia
TC Ilhas Turks e Caicos
TD Chade
TF Território Austral francês
TG Togo
TH Tailândia
TJ Tajiquistão
TK Tokelau
TM Turquemenistão
TN Tunísia
TO Tonga
TP Timor-Leste
TR Turquia
TT Trindade e Tobago
TV Tuvalu
TW Taiwan
TZ Tanzânia
UA Ucrânia
UG Uganda
UK Reino Unido
UM US Minor Outlying Islands
US Estados Unidos
UY Uruguai
UZ Uzbequistão
VA Cidade do Vaticano
VC São Vicente e Granadinas
VE Venezuela
VG Ilhas Virgens Britânicas
VI Ilhas Virgens Americanas
VN Vietnam
VU Vanuatu
WF Wallis e Futuna
WS Samoa do Oeste
YE Iêmen
YT Mayotte
YU Iugoslávia
ZA África do Sul
ZM Zâmbia
ZR Zaire
ZW Zimbabwe

Para saber mais sobre o assunto, leia os nomes de domínio.

Nosso conteúdo é produzido em colaboração com especialistas em tecnologia da informação sob o comando de Jean-François Pillou, fundador do CCM.net. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.
Este documento, intitulado 'DNS: sistema de nomes de domínio ', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.

Assine nossa newsletter!

Assine nossa newsletter!
Junte-se à comunidade