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.
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.
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.
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:
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.
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).
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:
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
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.