Primeiras aulas do curso DNS: Entenda a resolução de nomes na internet

DNS: Entenda a resolução de nomes na internet

Domain Name Service - Introdução

Você tem ideia de que mapa é esse daqui? Esse mapa representa a distribuição dos servidores raiz de DNS ao redor do globo. É exatamente sobre esse assunto que vamos estar estudando.

O DNS é um dos principais serviços que faz a Internet funcionar da maneira como conhecemos hoje.

Quero te dar boas-vindas a esse curso. Eu sou o Ricardo Mercês e vou estar te acompanhando durante as aulas. Vamos entender o que é o DNS, a sua real aplicação, a proposta do serviço, como interagir com essa ferramenta, o que acontece nos bastidores da resolução de nomes.

Vamos olhar também um pouquinho para o DNS dinâmico, bem como vamos instalar um servidor de cache para resolução de nomes, o que vai te dar um ganho bem interessante para tua rede.

Mas Ricardo, eu preciso de alguma coisa para acompanhar esse curso, de algum material? Sim. A ideia é que você faça as atividades dentro de um linux ou mesmo, se você é usuário de Mac, o próprio OSX já vai prover as ferramentas que nós precisamos.

Ricardo, mas eu não uso Linux, eu sou usuário de Windows. Não tem problema nenhum. Você pode colocar uma máquina virtual e instalar uma distribuição de Linux, Debian, Ubuntu, Red Hat, fica à vontade. Você pode utilizar a distribuição da sua preferência.

E uma terceira opção também bem legal é utilizar o Raspberry Pi para nós fazermos as nossas atividades. O Raspberry Pi, para quem não conhece, usa uma distribuição Linux que é baseada no Debian, então atende perfeitamente as nossas necessidades para esse curso.

Então separa teu material prepara essa máquina para nós darmos início ao nosso estudo.

Domain Name Service - Desmistificando o DNS

Já está com a tua máquina Linux separada? Então já estamos prontos para começar. Então vamos entender qual é essa mágica do DNS, esse serviço tão comentado e às vezes pouco conhecido até mesmo pelo pessoal diretamente ligado a área de TI.

Então rápido aqui, um breve histórico, só para nós podermos contextualizar. Quando a internet começou, tinha meia dúzia de máquinas, meia dúzia de dez máquinas, aonde todas elas eram acessíveis via IP. Então eu tenho o IP do servidor “a”,” b”, “c”, “d”, “e”, “f”, e acabou. Eu tenho já, querendo ou não, eu trabalho nesse ambiente, eu já tenho isso decorado. Quero acessar o servidor “a”, coloco o IP. Servidor “b”, coloco o IP, e está tudo resolvido.

Logicamente, essa rede começou a crescer e viu-se, chegou à conclusão, que era inviável a pessoa ficar guardando um monte de endereço. Então é mais fácil termos o nome do que ter um número. É mais fácil você guardar informação referente a um nome do que a uma sequência numérica.

Para isso, o nosso bom e velho arquivo Host foi criado lá no arquivinho .txt, e ele começou exatamente com essa proposta. Qual era a ideia do host, desse arquivo .txt? Eu tenho uma base, um “de” “para”, aonde eu tenho IP e nome, IP e nome.

Deixa eu te mostrar para contextualizar, um exemplo aqui. Um arquivo host. Eu tenho o IP e o nome, o IP e o nome. Isso nada mais é do que o princípio do DNS. As coisas eram armazenadas desta forma. Mas tem um problema: para todo mundo ter acesso a essa informação, eu teria que pegar esse arquivo e compartilhar entre todos os usuários ou todos os participantes da minha rede, porque senão ele não ia estar fazendo acesso à mesma informação do que eu.

E, logicamente, esse processo é inviável de ser administrado. Então tem pessoas ainda que organizam a sua rede com arquivo Host cheio de servidor, os IPs, os nomes tudo apontado. Isso não é a boa prática para você administrar uma rede. Já está na hora de você trocar essa solução pelo DNS, que é a forma como nós trabalhamos. Então vamos dar sequência.

Então isso evoluiu. E, logicamente, foi criado o DNS, que é o Domain Name System. O Domain Name System é o serviço capaz de prover, transformar, o IP no nome, um nome em um IP. E a parte da rede vai fazer o seu papel de entregar o pacote para onde ele tem que chegar.

O que eu quero destacar aqui no início é a importância de entendermos o que é o DNS e o que não é o DNS. Ao longo das minhas andanças, palestra, o que quer que seja, sempre que eu toco nesse assunto, surgem algumas dúvidas comuns, e exatamente dúvidas pensando que o DNS tem uma função que ele não tem.

Mas Ricardo, qual é a função do DNS? A função do DNS é exatamente, e só essa, aqui: que é através do nome, eu tenho o IP. E também tem um processo contrário, você vai aprender mais na frente, a parte do reverso que é pegar o IP e chegar até o nome.

Mas basicamente o que queremos é o nome ser transformado em IP. Por quê? Porque é muito mais fácil eu guardar www.google.com.br, na verdade, hoje em dia, nem www precisa mais, a maior parte nem usamos mais isso, já botamos google.com.br, quando coloca, quando já não faz a busca direto pela tua barra de procura. Mas enfim, quando você faz a busca, você chega nesse endereço. É muito mais fácil guardarmos essa informação do que essa.

E tem um outro detalhe importante: isso estamos falando de IPV4, que esse mundo já está em processo de desaparecer. Cada vez mais e mais, as redes vão sendo migradas para IPV6.

Olha só, que coisa interessante. O Host, e vamos aprender a usar essa ferramenta. Host é uma forma como temos de resolver nome, www.google.com.br.

Pergunta que eu faço para você: google.com.br, eu consigo guardar, 172.217.29.67, minha cabeça já não tem mais espaço para isso. Eu prefiro guardar coisas relevantes.

Agora quando você pensar em IPV6, tem condição de você memorizar isso daqui? É maior do que o CPF esse número. Tem condições de alguém guardar esse número? A rede está toda migrando para IPV6, então o DNS cada vez mais, se mostra não só importante, mas relevante. Ele é um pilar para a Internet funcionar.

Então vamos dar sequência aqui. E eu quero falar um pouquinho sobre o que não é o DNS. Olha esse típico caso aqui do teu usuário insatisfeito. E você pode estar perguntando assim: Ricardo, eu sou da área de desenvolvimento, eu não trabalho com nada de infraestrutura, eu não configuro serviço nenhum. Para que que eu preciso entender essa questão de DNS?

Você é uma das pessoas responsáveis para que o teu cliente não sofra isso daqui. E o que que está acontecendo aqui nessa ilustração? O DNS, como eu mostrei no slide anterior, transforma IP nome, nome IP. É isso.

O DNS não faz, em nenhum momento, uma checagem para ver se a tua aplicação está funcionando. O que que você quer dizer com isso, Ricardo? Vamos para um exemplo prático. O cliente de digitou xpto.com e o sistema operacional, os bastidores todos, levaram ele para esse endereço. Processo de resolução de nome trouxe essa informação.

A máquina dele vai originar o pacote pela internet, o pacote vai transitar pela internet e tem como alvo o servidor. Só que, nesse momento, o servidor ou a aplicação estava fora do ar. O DNS sabe disso? Não. É responsabilidade do DNS saber se a aplicação, servidor, o que quer que seja, está no ar? Não é.

A responsabilidade do DNS é só fazer esta conversão. “Ah, Ricardo, eu preciso checar se meu servidor está no ar antes de entregar isso para o meu cliente?” Sim, você precisa, mas eu posso te dizer que não é com o DNS que você vai estar resolvendo esse problema. Então é importante ter ciência de como isso funciona e daquilo que não cabe ao DNS fazer.

Você construiu a tua aplicação. Você está trabalhando com um microsserviço. A tua aplicação fala com 7 hosts, 7 serviços diferentes. E na tua aplicação, você foi e construiu: o serviço “a” está no IP não sei o quê.1, o serviço “b” no IP 2, o “c” no 3, e por aí vai.

Só que, numa infraestrutura, a mudança de IP pode acontecer, e isso não é nada de anormal. Você pode estar alocando uma outra faixa, enfim, pode estar remanejando o serviço. E como é que acontece? Se você, na tua aplicação, estiver fazendo referência a número, na hora que isso alterar, a tua aplicação logicamente vai deixar de funcionar.

Então você que é desenvolvedor, já vê aqui a importância de entender um pouquinho de DNS. Por quê? Na construção da tua aplicação, você tem que utilizar o nome. Porque utilizando o nome, qualquer mudança que eu faço é totalmente transparente, não só para o meu usuário, como também para a minha aplicação.

O que mudar de endereço, o que mudar, vamos dizer assim, de infraestrutura, não vai afetar a minha aplicação. Por quê? Quando meu cliente perguntar quem é xpto.com, eu vou entregar para ele o endereço que o DNS responder. E o DNS vai estar atualizado, vai entregar o endereço certinho da tua aplicação, sem que você tenha preocupação com relação a isso.

Então esse primeiro vídeo, essa ilustração e essa breve história do DNS, o mais importante é você saber: o que é e o que não é o DNS para você não cair nesse problema daqui.

Como funciona o DNS - Estrutura do DNS

Agora que você já entendeu para que serve e para que não serve, ou seja, o que não é papel do DNS, vamos entender como essa estrutura está montada, como é que conseguimos interagir com ela.

Então para que possamos interagir, é interessante conhecer todos os componentes do DNS. Primeiro ponto: DNS é uma estrutura hierárquica, eu tenho uma hierarquia, conforme mostra essa figura. Ainda que você não entenda ela de primeira mão, fica bem claro que eu tenho uma estrutura, uma hierarquia, e que tudo converge para esse pontinho daqui.

E olha só que fato curioso sobre o ponto: você sabia que no final de cada domínio, ele termina com um ponto? Google.com. Stanford.edu. Não está aparecendo aqui, mas se eu tivesse um br, alura.com.br. E por aí vai. No final, ou seja, no topo, eu sempre tenho lá o ponto.

E por que esse ponto? Esse ponto serve para representar essa nossa estrutura raiz. Que ela é composta por 13 servidores. Então se você for lá no Google e digitar root server, está lá, IANA Root Server, por exemplo. Você vai chegar até aqui e vai comprovar o que eu te falei. Qual é a referência aqui? São os servidores raiz do DNS.

Quantos eles são, Ricardo? Eles são no total de 13. Aí você vai perguntar: ora, 13 servidores para atender o mundo inteiro é muito pouco. Sim, seriam se não tivesse espelhos de cada um deles.

O que eu quero dizer com isso é que eu tenho 13 apontamentos que vão do “a” até o “m” e, logicamente, várias redundâncias do “a”, do “b”, do “c”, do “d” distribuídos conforme o interesse de tráfego e conforme a região.

Se você descer aqui, Root Server Website, só de curiosidade, aponta para aquele mapa que eu te mostrei na introdução do curso. Então como você pode observar, eu tenho aqui algumas letras, sempre vai ser de “a” a “m”, “k”, “l”, “i” espalhados, e se viermos aqui no Brasil e dermos um zoom, você vai ver aqui, no Rio de Janeiro, “l”, “e”, “j”, “f”. Eu tenho esses quatro servidores aqui, espelhos ou não, não importa. O que importa é que eu tenho quatro servidores.

Indo lá mais para São Paulo, galera de São Paulo, “f”, “e”, “l”, “j”. E você vai ver também, observar que, conforme a localidade, essas letras são um pouquinho diferentes. Porque isso, Ricardo? Vamos estudar mais um aqui. 7. Aqui já começou aparecer o “d”, se eu for para a Europa, aparece outra letra, então os servidores são distribuídos também conforme o interesse de tráfego. Isso é só uma curiosidade.

O que importa saber até aqui é que a estrutura é redundante, composta por 13 servidores e seus respectivos espelhos e redundância. Sabendo disso, podemos chegar à seguinte conclusão: estrutura topo, você acabou de ver, 13 servidores.

E eu tenho uma segunda camada aqui, chamada de TLD. Ricardo, o que é que são TLDS? TLD é a sigla de Top Level Domain. Olhando aqui, fica fácil identificar: eu tenho aqui os country codes, “us”, “fr”, “cn”, “br”, “pt”, “de”, e por aí vai, e tenho outras aqui, que logicamente a figura não ia comportar, “edu”, “com”, “org”, “info”, “net” e todos esses outros domínios sem estar associado aqui a um country code.

Então essas duas referências aqui estão na mesma camada e elas são categorizados assim: o que tem referência de país é o CCTLD, Country Code Top Level Domain. E o que não tem essa referência, o que termina com “com”, “org”, “info”, “net”, são o GTLD, Global Top Level Domain.

Seja GTLD ou CCTLD, o importante é que elas estão na mesma camada, que representa a segunda camada da nossa hierarquia do DNS. Então você já sabe: para eu chegar aqui no ponto, eu passei aqui “.com”, vem até o “.”. Para eu chegar lá no “alguma coisa.fr”, eu vou percorrer esse caminho: eu venho no “fr” e depois vou lá para o “.”.

No próximo vídeo, vamos começar a navegar por essa infraestrutura aqui para entender o processo de resolução e como a coisa acontece na prática.

Sobre o curso DNS: Entenda a resolução de nomes na internet

O curso DNS: Entenda a resolução de nomes na internet possui 123 minutos de vídeos, em um total de 38 atividades. Gostou? Conheça nossos outros cursos de Redes em DevOps, ou leia nossos artigos de DevOps.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Redes acessando integralmente esse e outros cursos, comece hoje!

Plus

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$85
à vista R$1.020
Matricule-se

Pro

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas