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