DNS

Disponível

História do DNS

Nos anos 70, as pessoas se cansavam de lembrar os endereços IP dos servidores que desejavam acessar. Ao mesmo tempo, surgiu a ideia de usar um nome mais simples e memorável em vez de um endereço de host numérico.

Trabalhadores do Stanford Research Institute criaram um arquivo de texto HOSTS.TXT , que continha uma lista de nomes de strings e seus endereços numéricos correspondentes de computadores na ARPANET.

Os endereços foram atribuídos manualmente. Para solicitar um nome de host e endereço ou adicionar um computador ao arquivo principal, os usuários entravam em contato com o centro de informações de rede de Stanford por telefone durante o horário comercial.

No início da década de 1980, a manutenção de uma única tabela de host centralizada havia se tornado lenta e complicada, e a crescente rede precisava de um sistema de nomenclatura automático para lidar com questões técnicas e de pessoal.

Em 1984, quatro alunos da UC Berkeley escreveram a primeira versão do sistema hierárquico de nomes de domínio. Agora é amplamente usado, especialmente em sistemas Unix, e ainda é o software DNS mais usado na Internet.

Introdução ao DNS

Domain Name System (DNS) é um sistema de distribuição para armazenar e recuperar informações sobre domínios. É mais comumente usado para obter um endereço IP de um nome de host (computador ou dispositivo), obter informações de roteamento de e-mail e/ou servir hosts para protocolos em um domínio.

O sistema é organizado na forma de uma certa hierarquia de servidores DNS interagindo de acordo com um determinado protocolo. A base para a compreensão do DNS é a compreensão da estrutura hierárquica do nome e das zonas.

Cada servidor responsável por uma zona de domínio pode transferir a responsabilidade por outra parte do domínio para outro servidor, o que permite atribuir a responsabilidade pela relevância da informação aos servidores de várias organizações que são responsáveis ​​apenas pela "sua" parte do nome do domínio.

O sistema DNS contém uma hierarquia de servidores DNS correspondente à hierarquia de zona. Cada zona é suportada por pelo menos um servidor DNS autorizado que hospeda informações sobre o domínio.

Importante! O nome e o endereço IP não estão necessariamente relacionados entre si como um para um. Um endereço IP pode ter muitos nomes de domínio, o que permite que você suporte muitos sites em um computador (isso é chamado de hospedagem compartilhada ).

Também pode ser o contrário - muitos endereços IP podem ser associados a um nome de domínio: isso permite criar balanceamento de carga e é usado ativamente em redes CDN .

Para aumentar a estabilidade do sistema, muitos servidores contendo informações idênticas são utilizados, e o protocolo possui meios para manter o sincronismo das informações localizadas em diferentes servidores. Existem 13 servidores raiz, seus endereços praticamente não mudam.

Interessante! O protocolo DNS usa a porta TCP ou UDP 53 para responder às consultas. Tradicionalmente, as solicitações e respostas são enviadas como um único datagrama UDP. O TCP é usado quando o tamanho dos dados de resposta excede 512 bytes.

registros DNS

O servidor DNS armazena um conjunto de parâmetros para cada nome de domínio. São registros sobre o nome de domínio, seu endereço IP, bem como várias informações de serviço.

Existem várias dezenas dessas entradas no total, portanto, consideraremos apenas as mais populares delas:

A Endereço endereço de IP
AAAA Endereço IPv6 Endereço no formato IPv6
CNAME nome canônico Nome canônico para alias
MX trocador de correio Endereço de gateway de correio para o domínio
NS nome do servidor O endereço do nó responsável pela zona de domínio
SOA Início da autoridade Indicação da autoridade da informação
SRV seleção de servidor Especificando locais de servidor para serviços
PTR ponteiro Correspondência de nome de endereço - correspondência reversa para A e AAAA
TXT sequência de texto Escreva dados binários arbitrários, até 255 bytes

Os mais interessantes aqui são:

  • O registro A permite que você especifique um endereço IP que corresponda a um domínio.
  • O CNAME permite definir um sinônimo para o nome, por exemplo, www.codegym.cc == codegym.cc.
  • O registro MX contém informações sobre o servidor de correio: o que fazer se uma carta chegar a xxx@codegym.cc.
  • NS - indica o endereço do servidor DNS, que contém informações sobre este domínio. Útil quando os registros são armazenados em cache e armazenados em nós não nativos.

Pesquisa de endereço IP

Vamos ver como funciona o sistema DNS.

Digamos que você digitou api.codegym.cc em seu navegador. O navegador entrará em contato com o serviço DNS local e solicitará que você forneça um endereço IP para o domínio api.codegym.cc. Aqui está o que vai acontecer a seguir...

Primeiro, o serviço DNS verifica se esse domínio está no arquivo de hosts locais do seu computador. Se houver, ele pega o endereço IP dele. Caso contrário, ele envia uma solicitação ao servidor DNS conhecido por ele: “Qual é o endereço IP de api.codegym.cc?”.

No entanto, o servidor DNS pode não saber nada não apenas sobre o nome solicitado, mas também sobre todo o domínio codegym.cc. Nesse caso, o servidor contata o servidor raiz - por exemplo, 198.41.0.4. Este servidor diz: "Não tenho informações sobre este endereço, mas sei que 204.74.112.1 é responsável pela zona ru."

Em seguida, o servidor DNS envia sua solicitação para 204.74.112.1, mas responde: “Não tenho informações sobre este servidor, mas sei que 207.142.131.234 é responsável pela zona codegym.cc”. Por fim, a mesma solicitação é enviada a um terceiro servidor DNS e recebe uma resposta - um endereço IP, que é transmitido ao cliente, ou seja, o navegador.

Nesse caso, no processo de busca de um IP pelo nome, funcionaram as seguintes regras:

  • O navegador enviou uma solicitação recursiva a um servidor DNS conhecido (em resposta a esse tipo de solicitação, o servidor deve retornar um endereço IP ou uma resposta vazia e um código de erro NXDOMAIN).
  • O servidor DNS que recebeu a solicitação do navegador enviou sucessivamente solicitações não recursivas, às quais recebeu respostas de outros servidores DNS, até receber uma resposta do servidor responsável pela zona solicitada.
  • O restante dos servidores DNS mencionados estavam processando solicitações não recursivamente (e provavelmente não teriam processado solicitações recursivamente, mesmo que tal requisito estivesse na solicitação).

Às vezes, é possível que o servidor solicitado envie uma consulta recursiva a um servidor DNS "upstream" e aguarde uma resposta pronta.

Importante! Com o processamento de consultas recursivas, todas as respostas passam pelo servidor DNS e ele tem a oportunidade de armazená-las em cache. Uma solicitação repetida para os mesmos nomes de domínio geralmente não vai além do cache do servidor e as chamadas para outros servidores não ocorrem.

O tempo de cache permitido para respostas vem com as respostas (campo TTL do registro de recurso).

arquivo hosts

Notamos que a primeira busca é no arquivo hosts locais. Este é o herdeiro do arquivo HOSTS.TXT, que foi inventado na época da ARPANET. Sim, ele ainda existe e ainda está em uso.

Ele está localizado ao longo do caminho:

  • /etc/hosts no Linux.
  • %SystemRoot%\system32\drivers\etc\hosts no Windows.
  • /system/etc/hosts no android.

Normalmente, o arquivo inclui uma definição de local para o nó localhost:

127.0.0.1   	localhost

A sua estrutura é muito simples: primeiro vem o endereço IP, depois o nome do domínio.

Útil

Utilizando o arquivo hosts, é possível filtrar os anúncios redirecionando os endereços de domínio dos banners para o endereço 127.0.0.0, 127.0.0.1 ou 0.0.0.0.

O uso de 127.0.0.1 geralmente não é recomendado, pois resulta em um tempo limite de resposta e atrasos associados se o servidor não existir ou estiver configurado incorretamente. E se você mapear qualquer domínio de publicidade para o endereço IP 0.0.0.0, todas as solicitações para ele cairão imediatamente).

Servidores DNS públicos

Você geralmente obtém um servidor DNS junto com seu serviço de Internet ao conectá-lo. Mas esse servidor DNS gratuito nem sempre é a melhor opção. Além disso, você pode não querer enviar uma consulta com o nome de domínio toda vez que visitar um site para o servidor DNS do seu ISP.

Portanto, muitas pessoas preferem mudar para servidores DNS gratuitos públicos. Primeiro, eles são muito rápidos e possuem um grande cache de nomes de domínio. Você obterá carregamento e tempo de atividade do site mais rápidos com uma chance mínima de problemas técnicos.

Em segundo lugar, segurança. Alguns serviços de DNS podem bloquear o acesso a sites maliciosos e de phishing e oferecer filtragem de conteúdo para proteger as crianças de conteúdo impróprio online.

Esses servidores DNS podem até combater golpistas. Por exemplo, você acessa um site de banco falso e o servidor DNS não fornece o endereço IP dos golpistas, mas seu serviço de segurança.

Lista de tais servidores

cloudflare 1.1.1.1
1.0.0.1
A Cloudflare promete que não usará os dados do visitante para veicular anúncios e nunca gravará os endereços IP de origem da solicitação em disco.
DNS público do Google 8.8.8.8
8.8.4.4
Armazena informações completas sobre o endereço IP do dispositivo solicitante por aproximadamente 24 a 48 horas para solução de problemas e diagnósticos
Comodo Secure DNS 8.26.56.26
8.20.247.20
Bloqueia sites de phishing, mas também avisa se você está tentando visitar sites com malware, spyware
Yandex.DNS 77.88.8.8
77.88.8.1
Serviço DNS gratuito de um popular mecanismo de pesquisa russo
Comentários
  • Populares
  • Novas
  • Antigas
Você precisa acessar para deixar um comentário
Esta página ainda não tem nenhum comentário