Curso de extensão em Administração de serviços GNU/Linux Italo Valcy - [email protected] Gestores da Rede Acadêmica de Computação Departamento de Ciência da Computação Universidade Federal da Bahia Administração de sistemas GNU/Linux, 2011.1 Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Licença de uso e distribuição Todo o material aqui disponível pode, posteriormente, ser utilizado sobre os termos da: Creative Commons License: Atribuição - Uso não comercial - Permanência da Licença http://creativecommons.org/licenses/by-nc-sa/3.0/ Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Assuntos abordados Funcionamento básico do DNS DNS no GNU/Linux Ferramentas clientes para GNU/Linux Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Assuntos abordados Funcionamento básico do DNS DNS no GNU/Linux Ferramentas clientes para GNU/Linux Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Resolvedor de nomes DNS significa Domain Name System (sistema de nomes de domínio). O DNS converte os nomes de máquinas para endereços IPs que todas as máquinas da Internet possuem. Ele faz o mapeamento do nome para o endereço e do endereço para o nome e algumas outras coisas. Exemplo de mapeamento DNS: www.dcc.ufba.br => 200.17.147.8 Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Resolvedor de nomes O DNS foi criado com o objetivo de tornar as coisas mais fáceis para o usuário, permitindo assim, a identificação de computadores na Internet ou redes locais através de nomes (é como se tivéssemos apenas que decorar o nome da pessoa ao invés de um número de telefone). A parte responsável por traduzir os nomes como www.nome.com.br em um endereço IP é chamada de resolvedor de nomes. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Resolvedor de nomes O resolvedor de nomes pode ser um banco de dados local (controlado por um arquivo ou programa) que converte automaticamente os nomes em endereços IP ou através de servidores DNS que fazem a busca em um banco de dados na Internet e retornam o endereço IP do computador desejado. Um servidor DNS mais difundido na Internet é o bind. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS O que é um nome? Um domínio é uma família ou grupo de nomes. Um domínio pode ser colocado em um subdomínio. Um domínio principal é um domínio que não é um sub-domínio. Os domínios principais são especificados na RFC-920. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS O que é um nome? Alguns exemplos de domínios principais comuns são: COM - Organizações Comerciais EDU - Organizações Educacionais GOV - Organizações Governamentais MIL - Organizações Militares ORG - Outras Organizações NET - Organizações relacionadas com a Internet Identificador do País (br, cn, fr) - São duas letras que representam um país em particular. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS O que é um nome? Cada um dos domínios principais tem sub-domínios. Os domínios principais baseados no nome do país são frequentemente divididos em sub-domínios baseado nos domínios .com, .edu, .gov, .mil e .org. Por exemplo: com.au e gov.au (comércio e governo na Austrália) Isto não é uma regra geral, as organizações de domínio atuais dependem da autoridade na escolha de nomes de cada domínio. Quando o endereço não especifica o domínio principal, como o endereço www.ufba.br, isto quer dizer que é uma organização acadêmica. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS O que é um nome? O próximo nível da divisão representa o nome da organização. Subdomínios futuros variam em natureza. Freqüentemente o próximo nível do subdomínio é baseado na estrutura departamental da organização mas ela pode ser baseada em qualquer critério considerado razoável e significantes pelos administradores de rede para a organização. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS O que é um nome? Porção mais à esquerda: hostname Porção mais à direta: domínio Nome completo: Nome do Domínio Completamente Qualificado (FQDN – Fully Qualified Domain Name) hostname domain name homes dcc.ufba.br homes.dcc.ufba.br Fully Qualified Domain Name Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Hierarquia do DNS Estrutura hierárica Maior banco de dados distribuído do mundo root-level top-level second-level ... Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Hierarquia do DNS Exemplo: usando o www.debian.org.br, temos: computador br - País onde o computador se encontra org - Domínio principal debian - Nome de Domínio www - Nome do computador Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Hierarquia do DNS A localização do computador www.debian.org.br através de servidores DNS na Internet obedece exatamente a seqüência de procura mostrada. Os administradores do domínio debian.org.br podem cadastrar quantos sub-domínios e computadores quiserem (como www.nonus.debian.org.br ou cvs.debian.org.br) são exemplos válidos. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Funcionamento básico O usuário tenta acessar o site www.dcc.ufba.br O resolver detecta a necessidade de tradução do nome acima para o IP. O resolver inicia a pesquisa DNS. A mensagem enviada pelo resolver contém: O nome a ser resolvido (www.dcc.ufba.br) O tipo de pesquisa a ser realizado (MX,A,etc.) Uma classe associada com o nome DNS (IN) Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Tipos de registros DNS Tipos de registros DNS A e AAAA CNAME MX NS PTR SOA TXT SOA Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Tipos de registros DNS: A Descrição: Endereço de Host (Host address (A) resource record) – IPv4. Exemplo: host1.example.com. IN A 127.0.0.1 srv01.abc.com.br. IN A 100.100.200.150 srv02.abc.com.br. IN A 100.100.200.151 Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Tipos de registros DNS: AAAA Descrição: Endereço de Host (Host address (A) resource record) – IPv6. Exemplo: ipv6_host1.example.com. IN AAAA 4321:0:1:2:3:4:567:89ab server2.pop­ba.rnp.br. IN AAAA 2001:12f0:840:4091::22 security.debian.org IN AAAA 2001:4f8:8:36::6 Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Tipos de registros DNS: CNAME Descrição: Canonical Name (CNAME) – mapeia uma alias (apelido) ou um nome DNS alternativo Exemplo: www.abc.com.br. CNAME srv01.abc.com.br. www.pop­ba.rnp.br CNAME server2.pop­ba.rnp.br. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Tipos de registros DNS: MX Descrição: Mail Exchanger (MX) – fornece informações utilizadas pelos servidores de email para o roteamento da mensagem. Exemplo: example.com. MX 10 mailserver1.example.com. pop­ba.rnp.br. MX 0 smtp1.pop­ba.rnp.br. MX 10 smtp2.pop­ba.rnp.br. O valor desse registro deve ser um nome com tipo A ou AAAA Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Tipos de registros DNS: PTR Descrição: Pointer (PTR): É utilizado em zonas reversas, para fazer o mapeamento reverso, ou seja, o mapeamento de um número IP para um nome. Exemplo: 10.20.20.10.in­addr.arpa. PTR host.example.com. 5.147.17.200.in­addr.arpa. PTR mail.dcc.ufba.br. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Tipos de registros DNS: TXT Descrição: Inicialmente usado para textos legíveis por humanos em registros DNS. Atualmente usado para textos legíveis por máquina (ex. SPF) Exemplo: pop­ba.rnp.br. IN TXT "v=spf1 a ip4:200.128.0.0/27 mx ~all ip6:2001:12f0:840:4091::/64" Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Tipos de registros DNS: SRV Descrição: usado para descrever a localização (porta e hostname) de um servidor para determinado serviço. Sintaxe: _service._proto.name TTL class SRV priority weight port target Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Tipos de registros DNS: SRV Sintaxe: _service._proto.name TTL class SRV priority weight port target priority: prioridade do host algo. Valores menores implicam em maior prioridade. weight: peso para registros com mesma prioridade port: número da porta na qual o serviço está executando target: máquina que provê o serviço Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Tipos de registros DNS: SRV Exemplo: _sip._tcp.a.com. 86400 IN SRV 10 60 5060 bigbox.a.com. _sip._tcp.a.com. 86400 IN SRV 10 20 5060 smallbox1.a.com. _sip._tcp.a.com. 86400 IN SRV 10 10 5060 smallbox2.a.com. _sip._tcp.a.com. 86400 IN SRV 10 10 5066 smallbox2.a.com. _sip._tcp.a.com. 86400 IN SRV 20 0 5060 backupbox.a.com. Assim como o registro MX, o target deve apontar para um endereço (A ou AAAA) Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Como funciona uma requisição Primeira etapa: o DNS tenta resolver o nome, usando o resolver local. O resolver local pode usar os seguintes recursos: O cache DNS local O arquivo /etc/hosts (C:\Windows\system32\etc\hosts) Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Como funciona uma requisição Segunda etapa: pesquisa no servidor DNS. O servidor DNS, então: Consulta as zonas para as quais ele é autoridade Cache do servidor Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Como funciona uma requisição Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Como funciona uma requisição Terceira etapa: consulta recursiva em outros servidores DNS. Inicia no root-level Em cada level, questiona o servidor pelo responsável pelo próximo nível do domínio (direita pra esquerda) Armazena o cache da requisição Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Como funciona uma requisição Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Assuntos abordados Funcionamento básico do DNS DNS no GNU/Linux Ferramentas clientes para GNU/Linux Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS DNS no GNU/Linux: configurações Principais arquivos de configuração: /etc/resolv.conf /etc/host.conf /etc/nsswitch.conf /etc/networks Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS DNS no GNU/Linux: /etc/resolv.conf O /etc/resolv.conf é o arquivo de configuração principal do código do resolvedor de nomes. Seu formato é um arquivo texto simples com um parâmetro por linha e o endereço de servidores DNS externos são especificados nele. domain dcc.ufba.br search dcc.ufba.br im.ufba.br nameserver 192.168.0.20 nameserver 192.168.2.5 nameserver 192.188.11.33 Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS DNS no GNU/Linux: /etc/resolv.conf Domain Especifica o nome do domínio local. Search Especifica uma lista de nomes de domínio alternativos ao procurar por um computador, separados por espaços. A linha search pode conter no máximo 6 domínios ou 256 caracteres. Nameserver Especifica o endereço IP de um servidor de nomes de domínio para resolução de nomes. Pode ser usado várias vezes. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS DNS no GNU/Linux: /etc/resolv.conf domain dcc.ufba.br search dcc.ufba.br im.ufba.br nameserver 192.168.0.20 nameserver 192.168.2.5 nameserver 192.188.11.33 Este exemplo especifica que o nome de domínio a adicionar ao nome não qualificado (i.e. hostnames sem o domínio) é ufba.br. E ainda, se o computador não for encontrado naquele domínio então a procura segue para o domínio dcc.ufba.br, e depois para im.ufba.br diretamente. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS DNS no GNU/Linux: /etc/hosts O arquivo /etc/hosts faz o relacionamento entre um nome de computador e endereço IP local. Recomendado para IPs constantemente acessados e para colocação de endereços de virtual hosts (quando deseja referir pelo nome ao invés de IP). A inclusão de um computador neste arquivo dispensa a consulta de um servidor de nomes para obter um endereço IP, sendo muito útil para máquinas que são acessadas frequentemente. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS DNS no GNU/Linux: /etc/hosts A desvantagem de fazer isto é que você mesmo precisará manter este arquivo atualizado e se o endereço IP de algum computador for modificado, esta alteração deverá ser feita em cada um dos arquivos hosts das máquinas da rede. Em um sistema bem gerenciado, os únicos endereços de computadores que aparecerão neste arquivo serão da interface loopback e os nomes de computadores. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS DNS no GNU/Linux: /etc/hosts É possível especificar mais que um nome de computador por linha como demonstrada pela primeira linha, a que identifica a interface loopback. É comum erros de configuração neste arquivo causarem lentidão na máquina, portanto muita atenção! # /etc/hosts 127.0.0.1 localhost loopback 192.168.0.1 maquina.dominio.com.br Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS DNS no GNU/Linux: /etc/nsswitch.conf Usado geralmente para indicar onde a libc6 (no caso do GNU/Linux) deverá consultar nomes Seu padrão segue: Banco_de_dados: configuração Exemplo (default): hosts: files dns Indica a ordem de procura que as aplicações que utlizam a libc6 devem percorrer ao buscar nomes: files (/etc/hosts) e depois dns (servidor DNS). Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS DNS no GNU/Linux: /etc/networks O arquivo /etc/networks tem uma função similar ao arquivo /etc/hosts. Ele contém um banco de dados simples de nomes de redes versus endereços de redes. Quando usar comandos como route, se um destino é uma rede e esta rede se encontra nesse arquivo, então o comando route mostrará o nome da rede ao invés de seu endereço. Abaixo um exemplo de como se parece este arquivo: loopnet 127.0.0.0 localnet 192.168.1.0 amprnet 44.0.0.0 Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Assuntos abordados Funcionamento básico do DNS DNS no GNU/Linux Ferramentas clientes para GNU/Linux Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Ferramentas: host Verifica o registro DNS do domínio ou IP passado na linha de comando. Por padrão verifica registros A e AAAA. Exemplo: $ host www.pop­ba.rnp.br www.pop­ba.rnp.br is an alias for server2.pop­ba.rnp.br. server2.pop­ba.rnp.br has address 200.18.234.22 server2.pop­ba.rnp.br has IPv6 address 2001:12f0:840:4091::22 $ host ­t MX dcc.ufba.br dcc.ufba.br mail is handled by 10 mail.dcc.ufba.br. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Ferramentas: dig Obtém informações do servidor DNS. Existe uma grande lista de opções e argumentos para utilizar o dig. Mais informações: man dig dig @servidor nome tipo servidor é o nome ou endereço IP do servidor DNS nome é o domínio que estamos consultando tipo é o tipo de registro que estamos pesquisando (MX, A, ANY, etc. Padrão: A) Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Ferramentas: dig $ dig @200.18.234.21 pop­ba.rnp.br MX ;; << DIG HEADER >> ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 4 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;pop­ba.rnp.br. IN MX ;; ANSWER SECTION: pop­ba.rnp.br. 38400 IN MX 0 smtp.pop­ba.rnp.br. ;; AUTHORITY SECTION: pop­ba.rnp.br. 38400 IN NS dns.ufba.br. pop­ba.rnp.br. 38400 IN NS dns.pop­ba.rnp.br. ;; ADDITIONAL SECTION: smtp.pop­ba.rnp.br. 38400 IN A 192.188.11.66 smtp.pop­ba.rnp.br. 38400 IN A 192.188.11.65 dns.pop­ba.rnp.br. 38400 IN A 200.18.234.21 dns.pop­ba.rnp.br. 38400 IN AAAA 2001:12f0:840:4091::21 ;; Query time: 26 msec ;; SERVER: 200.18.234.21#53(200.18.234.21) ;; WHEN: Tue Nov 17 06:47:24 2009 ;; MSG SIZE rcvd: 169 Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Ferramentas: nslookup Verifica o registro DNS do domínio ou IP mas de maneira interativa com o usuário. Exemplo: $ nslookup > server 200.17.147.4 Default server: 200.17.147.4 Address: 200.17.147.4#53 > set type=PTR > 200.17.147.5 Server: 200.17.147.4 Address: 200.17.147.4#53 5.147.17.200.in­addr.arpa > exit Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Dúvidas? Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Prática Consulte o instrutor sobre a pratica-dnscliente.pdf. Italo Valcy Administração de sistemas GNU/Linux, 2011.1 Domain Name System - DNS Referências http://focalinux.cipsga.org.br/guia/avancado/ http://nit.microlink.com.br/~buick/dragons/op1/howt os/br-dns.html http://oreilly.com/catalog/dns3/chapter/ch02.html http://www.rnp.br/newsgen/0105/bind9.html Italo Valcy Administração de sistemas GNU/Linux, 2011.1