Entenda como funciona um servidor DNS e qual a estrutura por trás da tradução do domínio para um endereço IP.
Essa semana estive pensando sobre a importância de aprender redes de computadores e em como essa parte é um pouco negligenciada por desenvolvedores, principalmente os iniciantes.
Não que eu seja um dev experiente, longe disso, mas reconheço a importância desse assunto e no meu caso em particular, redes é um assunto que eu preciso dominar se quiser atingir alguma relevância no campo da segurança da informação.
Em vista disso, vou começar a compartilhar um pouco sobre o que estou aprendendo sobre redes e falar também sobre como funciona a internet.
As publicações talvez não sejam sequenciais, no sentido de uma complementar a outra diretamente uma logo após a outra.
No entanto, você pode acompanhar tudo que escrevi sobre o assunto no meu canal da Pingback.
Para dar início, quero falar sobre algo que é de certa forma misterioso para os olhos de quem é atencioso e não sabe muito sobre tech: o DNS.
Você já deve ter ouvido falar que cada máquina possui um endereço IP, isso de fato é apenas meia verdade.
Cada computador conectado numa rede, possui uma interface de rede, que recebe um endereço de IP.
|
|
Exemplo de uma interface de rede (componente fisico) |
É legal mencionar isso porque muita gente acredita que o computador tem um endereço de IP, mas na realidade, quem tem um endereço de IP é a interface de rede, que é um componente físico.
Uma outra coisa, o endereço de IP, em teoria deve ser único na rede a qual pertence.
Mas o que isso tem a ver com o DNS?
Calma cara, espera um pouco...
Tenha em mente que computadores se comunicam através de um número de IP e uma PORTA.
Na web, na maior parte das vezes, usaremos a porta 80 para realizar conexões (ou 443). Ela é padrão para conexões HTTP e nesse post não vamos entrar muito em detalhes sobre isso.
Eu acredito em você.. então vamos lá...
Eu disse que computadores se comunicam através de um IP e uma PORTA.
E para a surpresa de alguns, um servidor também é um computador!
E adivinhe? Ele também tem um endereço IP.
Mas quando você quer acessar o google, você não digita diretamente o endereço ip desse servidor. Nesse cenário, você digita o domínio, o nome dele.
Entre o DOMÍNIO e o IP do servidor, existe o DNS (Domain Name System) que vai fazer a tradução do nome para o número IP do servidor correspondente.
Pense em uma lista telefônica, o DNS funciona de maneira bem parecida.
Você procura o nome do cidadão e atrelado a ele, existe um número de telefone correspondente.
|
|
|
Lista telefonica |
Isso é muito útil porque é muito mais fácil lembrar de google.com do que 142.250.218.238, que é o endereço ip do servidor.
Tenha em mente o conceito de Top-Level-Domain.
É a parte mais a direita de um domínio. Exemplo: .com / .br / .org
|
|
What is a Top-Level Domain (TLD)? |
Veja a estrutura de como é feita uma consulta ao servidor DNS.
|
|
https://medium.com/basic-command-ls-linux/how-dns-works-b49c7395c91e |
Parece complicado, mas não é.
Acompanhe as setas:
Realmente é uma novela para conseguir o endereço IP de um servidor, por sorte, nós temos um cache em cada um dos servidores DNS, que armazena o endereço IP dos sites mais visitados.
Imagine só se você tivesse que passar por esse processo cada vez que entra em algum site famoso tipo o YouTube?
Existem mais detalhes sobre o DNS que merecem ser mencionados, como por exemplo os tipos de registro A, AAAA, TXT, CNAME, MX e afins.
Porém, quero criar um outro artigo separado e com mais detalhes, inclusive falando sobre enumeração de DNS.
Obrigado pelo seu tempo.