Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anterior Revisão anterior | |||
| espec:servico_dns [2011/08/26 18:32] – maziero | espec:servico_dns [2020/08/18 22:10] (atual) – edição externa 127.0.0.1 | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| + | ====== O Serviço DNS ====== | ||
| + | |||
| + | O serviço DNS (//Domain Name System//) é o principal responsável pela resolução de nomes na Internet. Esse serviço é construído por um conjunto de servidores operando de forma descentralizada. Cada servidor DNS é responsável por um domínio ou sub-domínio de nomes na Internet. Neste módulo são apresentadas as principais características do serviço DNS e seu modo de funcionamento. | ||
| + | |||
| + | ===== Funções do servidor DNS ===== | ||
| + | |||
| + | Um servidor DNS normalmente executa as seguintes atividades: | ||
| + | |||
| + | * responde a consultas de clientes ou servidores externos (vindas da Internet) sobre nomes registrados em seu domínio local; | ||
| + | * realiza resoluções de nomes de domínio na Internet para seus clientes locais (máquinas dentro de seu domínio); | ||
| + | * guarda em cache local as resoluções de nomes solicitadas por seus clientes, para agilizar consultas futuras. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Quanto à sua funcionalidade, | ||
| + | |||
| + | * **Primário**: | ||
| + | * **Secundário**: | ||
| + | * **Caching-only**: | ||
| + | |||
| + | ===== Consultas DNS ===== | ||
| + | |||
| + | Em relação aos seus clientes locais, um servidor DNS pode operar com dois tipos de consultas: **iterativas** e **recursivas**. O modo de operação default, suportado por todos os servidores, é o de consultas iterativas, na qual o cliente DNS pode receber do servidor local uma resposta parcial. Assim, ele terá de contactar sucessivamente outros servidores DNS para conseguir resolver o nome desejado. Veja um exemplo de consulta iterativa na figura a seguir: | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | No modo de consulta recursiva, o servidor local se encarrega de encaminhar a consulta do cliente a todos os servidores DNS necessários até que ela seja resolvida, devolvendo ao cliente apenas a resposta final. Esse modo de operação é opcional e não precisa ser implementado por todos os servidores. Um exemplo de consulta recursiva: | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | No caso de consultas iterativas, a resposta de um servidor DNS ao cliente pode ser: | ||
| + | |||
| + | * // | ||
| + | * // | ||
| + | |||
| + | A cada domínio local sob a responsabilidade de um servidor DNS corresponde um **arquivo de zona** (arquivo-texto que contém as definições dos nomes pertencentes a um determinado domínio e seus respectivos endereços IP). Para cada domínio também deve estar presente um **arquivo de zona reversa**, que relaciona os endereços IP aos nomes existentes no domínio. | ||
| + | |||
| + | ===== Arquivos de zona ===== | ||
| + | |||
| + | Cada servidor DNS armazena localmente as informações sobre os domínios de sua responsabilidade em arquivos de texto denominados " | ||
| + | |||
| + | < | ||
| + | pucpr.br. IN SOA ns1.pucpr.br. postmaster.pucpr.br. ( | ||
| + | 1 ; Serial number (increase it after edit) | ||
| + | 10800 | ||
| + | 3600 | ||
| + | 604800 | ||
| + | 86400 ) ; Minimum TTL of 1 day (24 x 2600 sec) | ||
| + | |||
| + | ; Name server for this domain | ||
| + | pucpr.br. IN NS ns1.pucpr.br. | ||
| + | |||
| + | ; Mail server for this domain | ||
| + | pucpr.br. IN MX 10 mailer1.pucpr.br. | ||
| + | |||
| + | ; Addresses for local names | ||
| + | localhost.pucpr.br. IN A 127.0.0.1 | ||
| + | |||
| + | ns1.pucpr.br. IN A 200.192.112.2 | ||
| + | TXT " | ||
| + | HINFO " | ||
| + | |||
| + | alfa.pucpr.br. IN A 200.192.112.168 | ||
| + | TXT " | ||
| + | HINFO " | ||
| + | |||
| + | ; Aliases | ||
| + | mailer1.pucpr.br. IN CNAME alfa.pucpr.br. | ||
| + | </ | ||
| + | |||
| + | Eis o arquivo hipotético correspondente de zona reversa para o mesmo domínio '' | ||
| + | |||
| + | < | ||
| + | 112.192.200.in-addr.arpa. IN SOA ns1.pucpr.br. postmaster.pucpr.br.( | ||
| + | 1 ; Serial number (increase it after edit) | ||
| + | 10800 | ||
| + | 3600 | ||
| + | 604800 | ||
| + | 86400 ) ; Minimum TTL of 1 day (24 x 3600 sec) | ||
| + | |||
| + | ; Name servers | ||
| + | 112.192.200.in-addr.arpa. IN NS ns1.pucpr.br. | ||
| + | |||
| + | ; Addresses point to canonical name | ||
| + | 2.112.192.200.in-addr.arpa. IN PTR ns1.pucpr.br. | ||
| + | 182.112.192.200.in-addr.arpa. IN PTR alfa.pucpr.br. | ||
| + | </ | ||
| + | |||
| + | Um arquivo de zona direta ou reversa contém normalmente os seguintes campos: | ||
| + | |||
| + | ^ Campo ^ Função ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | ===== O Servidor DNS Bind ===== | ||
| + | |||
| + | A construção de um servidor DNS implica na instalação e configuração do software apropriado. O servidor DNS mais usado no mundo UNIX é o BIND, que vem por default nas distribuições Linux. Os principais arquivos do servidor BIND em uma distribuição Linux no padrão RedHat são os seguintes: | ||
| + | |||
| + | * ''/ | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * ''/ | ||
| + | * ''/ | ||
| + | |||
| + | Nas próximas seções são apresentados os arquivos de exemplo para a configuração de um servidor de nomes no domínio '' | ||
| + | |||
| + | === Arquivo / | ||
| + | |||
| + | Este é o arquivo central de configuração do Bind, que informa quais as zonas sob sua responsabilidade e seus respectivos arquivos. | ||
| + | |||
| + | < | ||
| + | # BIND configuration file for pucpr.br | ||
| + | |||
| + | options { | ||
| + | directory "/ | ||
| + | }; | ||
| + | |||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | |||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | |||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | |||
| + | zone " | ||
| + | type hint; # local cache start contents | ||
| + | file " | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | === Arquivo / | ||
| + | |||
| + | Este arquivo contém as informações de zona direta do domínio pucpr.br. | ||
| + | |||
| + | < | ||
| + | pucpr.br. IN SOA ns1.pucpr.br. postmaster.pucpr.br. ( | ||
| + | 1 ; Serial number (increase it after edit) | ||
| + | 10800 | ||
| + | 3600 | ||
| + | 604800 | ||
| + | 86400 ) ; Minimum TTL of 1 day (24 x 2600 sec) | ||
| + | |||
| + | ; Name server for this domain and sub-domains | ||
| + | pucpr.br. IN NS ns1.pucpr.br. | ||
| + | |||
| + | ; Mail server for this domain | ||
| + | pucpr.br. IN MX 10 mailer1.pucpr.br. | ||
| + | |||
| + | ; Addresses for local names | ||
| + | localhost.pucpr.br. IN A 127.0.0.1 | ||
| + | |||
| + | ns1.pucpr.br. IN A 200.192.112.2 | ||
| + | TXT " | ||
| + | HINFO " | ||
| + | |||
| + | ppgia.pucpr.br. IN A 200.192.112.141 | ||
| + | TXT " | ||
| + | HINFO " | ||
| + | |||
| + | alfa.pucpr.br. IN A 200.192.112.168 | ||
| + | TXT " | ||
| + | HINFO " | ||
| + | |||
| + | ; Aliases | ||
| + | mailer1.pucpr.br. IN CNAME alfa.pucpr.br. | ||
| + | </ | ||
| + | |||
| + | === Arquivo / | ||
| + | |||
| + | Este arquivo contém as informações de zona reversa do domínio pucpr.br. | ||
| + | |||
| + | < | ||
| + | 112.192.200.in-addr.arpa. IN SOA ns1.pucpr.br. postmaster.pucpr.br.( | ||
| + | 1 ; Serial number (increase it after edit) | ||
| + | 10800 | ||
| + | 3600 | ||
| + | 604800 | ||
| + | 86400 ) ; Minimum TTL of 1 day (24 x 3600 sec) | ||
| + | |||
| + | ; Name servers | ||
| + | 112.192.200.in-addr.arpa. IN NS ns1.pucpr.br. | ||
| + | |||
| + | ; Addresses point to canonical name | ||
| + | 2.112.192.200.in-addr.arpa. IN PTR ns1.pucpr.br. | ||
| + | 141.112.192.200.in-addr.arpa. IN PTR ppgia.pucpr.br. | ||
| + | 182.112.192.200.in-addr.arpa. IN PTR alfa.pucpr.br. | ||
| + | </ | ||
| + | |||
| + | === Arquivo / | ||
| + | |||
| + | Este arquivo contém as informações de zona reversa da interface loopback.(127.0.0.1). | ||
| + | |||
| + | < | ||
| + | 0.0.127.in-addr.arpa. IN SOA ns1.pucpr.br. postmaster.pucpr.br. ( | ||
| + | 1 ; Serial | ||
| + | 10800 | ||
| + | 3600 | ||
| + | 604800 | ||
| + | 86400 ) ; Minimum TTL of 1 day | ||
| + | |||
| + | 0.0.127.in-addr.arpa. IN NS ns1.pucpr.br. | ||
| + | |||
| + | 1.0.0.127.in-addr.arpa. IN PTR localhost. | ||
| + | </ | ||
| + | |||
| + | === Arquivo / | ||
| + | |||
| + | Este arquivo define o conteúdo inicial do cache do servidor DNS, que consiste basicamente dos endereços dos servidores raiz (rootservers). Este arquivo deve ser atualizado periodicamente a partir [[ftp:// | ||
| + | |||
| + | < | ||
| + | ; This file holds the information on root name servers needed to initialize | ||
| + | ; cache of Internet domain name servers ... | ||
| + | ; | ||
| + | . 3600000 | ||
| + | A.ROOT-SERVERS.NET. 3600000 | ||
| + | ; | ||
| + | ; formerly NS1.ISI.EDU | ||
| + | ; | ||
| + | . 3600000 | ||
| + | B.ROOT-SERVERS.NET. 3600000 | ||
| + | ; | ||
| + | ; formerly C.PSI.NET | ||
| + | ; | ||
| + | . 3600000 | ||
| + | C.ROOT-SERVERS.NET. 3600000 | ||
| + | ; | ||
| + | ; formerly TERP.UMD.EDU | ||
| + | ; | ||
| + | . 3600000 | ||
| + | ... | ||
| + | ; End of File | ||
| + | </ | ||
| + | |||
| + | Caso o servidor DNS não tenha acesso direto ao exterior (aos DNS // | ||
| + | |||
| + | < | ||
| + | options { | ||
| + | |||
| + | ... | ||
| + | |||
| + | forward only ; | ||
| + | forwarders { | ||
| + | nnn.nnn.nnn.nnn ; | ||
| + | ... | ||
| + | }; | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | Com isso, todas as consultas de DNS endereçadas a seu servidor serão encaminhadas ao(s) servidor(es) indicados, naquela ordem, até obter uma resposta. Caso a linha '' | ||
| + | |||
| + | ===== Dig e nslookup ===== | ||
| + | |||
| + | Os utilitários '' | ||
| + | |||
| + | A sintaxe básica de uso do comando '' | ||
| + | |||
| + | < | ||
| + | dig [@server] name [type] | ||
| + | </ | ||
| + | |||
| + | onde: | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Alguns exemplos de uso do dig: | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Segue abaixo um exemplo de consulta simples usando o comando '' | ||
| + | |||
| + | < | ||
| + | $ dig www.unifor.br | ||
| + | |||
| + | ; <<>> | ||
| + | ;; global options: printcmd | ||
| + | ;; Got answer: | ||
| + | ;; ->> | ||
| + | ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 | ||
| + | |||
| + | ;; QUESTION SECTION: | ||
| + | ; | ||
| + | |||
| + | ;; ANSWER SECTION: | ||
| + | www.unifor.br. 86400 IN A 200.253.187.1 | ||
| + | |||
| + | ;; AUTHORITY SECTION: | ||
| + | unifor.br. 86400 IN NS www.unifor.br. | ||
| + | |||
| + | ;; Query time: 65 msec | ||
| + | ;; SERVER: 200.192.112.2# | ||
| + | ;; WHEN: Tue May 25 00:28:41 2004 | ||
| + | ;; MSG SIZE rcvd: 61 | ||
| + | </ | ||