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 |
GO TO FULL VERSION