View
8
Download
1
Category
Preview:
Citation preview
DNS
jml 2012
DNS – Domain Name System
Histórico V1.0, Paula Viana, 1999
V2.0, Paula Viana, 2004 v2.1, Paula Viana, 2005 v2.2, Paula Viana, 2006 v3.0, Miguel Leitão, 2007 v3.2, Miguel Leitão, 2010 V3.3, Miguel Leitão 2018
Endereços de máquinas
Tal como os telefones, as estações de uma rede podem ser
identificadas por um número.
DNS
jml 2012
Resolução de Nomes
Máquinas identificadas por um nome e não pelo endereço IP • mais simples de memorizar
Necessário fazer a conversão de nomes em endereços IP • Tabelas locais (hosts file)
• DNS
Hosts file • Ficheiros locais com equivalências (IP, nome, alias):
;host file do ave:/etc/hosts
; IP nome alias
;
127.0.0.1 localhost.localdomain localhost
193.136.63.3 damao.dee.isep.ipp.pt damao
193.136.63.5 ave.dee.isep.ipp.pt ave
Difícil Manutenção:
Novas máquinas: alteração de todos os ficheiros
Ficheiros de grandes dimensões
Procura nos ficheiros pode ser lenta
Domain Name System
Especificação RFC 1034: Conceitos
RFC 1035: Especificação e Implementação
Sistema distribuído Não existe 1 servidor único com toda a informação
Servidores de DNS colaboram entre si
Funcionalidades Tradução Nome IP
Tradução IP Nome
Informação para encaminhamento de emails (servidores de email)
Consulta ao DNS gethostbyname()
gethostbyaddress()
Organização hierárquica em domínios e sub-domínios Evita conflitos de nomes
Diminui tamanho das tabelas
Aumenta fiabilidade (se falhar 1, restantes domínios continuam a funcionar)
Aumenta eficiência (consultas mais próximas)
edu pt org uk
ipp inesc
... isep
acm ieee
dee dei
DNS
jml 2012
DNS – Hierarquia de Domínios
TLD
Top Level Domain
DNS – Entidades gestoras
Exemplo de organização hierárquica:
ave.dee.isep.ipp.pt
• ave = nome da máquina
• dee.isep.ipp.pt = domínio
• pt = identifica país
Entidades responsáveis pela gestão de domínios
Global
• ICANN: Internet Corporation for Assigned Names and Numbers
• .com - comercial
• .edu - educação
• .gov - organizações governamentais dos EUA
• .mil – organizações militares dos EUA
• .net – rede
• .org – organizações
• .int – organizações internacionais
Em portugal (.pt)
• FCCN : Fundação para o Cálculo Científico Nacional
DNS
jml 2012
DNS – Gestão de domínios de países
Gestão do domínio .pt
Hierarquias
• .pt – pessoas colectivas, profissionais liberais, entidades detentores de marca
• .net.pt – prestadores de serviços de telecomunicações
• .gov.pt – entidades que integram o governo
• .org.pt – organizações sem fins lucrativos
• .edu.pt – estabelecimentos de ensino
• .int.pt – organizações internacionais e representações diplomáticas
• .publ.pt – titulares de publicações periódicas
• .com.pt – qualquer pessoa ou entidade
• .nome.pt – qualquer pessoa com BI emitido
Códigos de países (TLD) • .es - espanha
• .ch – suiça
• .dk – dinamarca
• .fr – frança
• .jp – japão
• .nz – nova zelância
• .uk – reino unido • .ac.uk – ensino
• .co.uk - comercial
DNS - Domain Name System
Entidades
Name Server
• Servidor que contém as bases de dados com as traduções de endereços
Resolvers
• Software que contacta os name servers
Servidores de Nomes (Name Servers)
impossível construir uma tabelas com todos os nomes!
espaço dividido em zonas
• cada zona tem 1 servidor de nomes responsável por todos os nomes nessa zona
Ex:
isep.ipp.pt responsável por dmat.isep.ipp.pt
dem.isep.ipp.pt
mas não por dee,isep.ipp.pt
dei.isep.ipp.pt
• cada servidor possui uma lista de servidores hierarquicamente superiores
Tipos de respostas
authoritative - sempre correcto
non-authoritative - obtido de uma cache (pode ser incorrecto)
• clientes podem recusar resposta proveniente de cache
• cada entrada na tabela contém um parâmetro do tipo TTL
DNS
jml 2012
DNS - Domain Name System
Tipos de Servidores de DNS
• Primário
• Contém a base de dados principal de tradução de nomes e endereços IP
• Secundário
• Contém uma cópia da base de dados principal
• Em intervalos regulares, o servidor secundário faz 1 backup da base de
dados principal
• Em caso de falha do Servidor Principal, o Servidor Secundário responde
aos pedidos
• Cache
• Não contém, na inicialização, uma base de dados com a tradução de
endereços
• Conhece os Servidores Primário e Secundário
• Resolve a tradução de nomes perguntando a estes servidores
• Utilizado para diminuir a carga nos servidores Primário e Secundário
• Cache completa pode ser criada no início ou construída por acesso
DNS – Sequência de Pesquisa
Máquina 1 quer comunicar com Máquina 2
1. Um programa chama o procedimento “resolver” passando o nome como parâmetro.
2. É verificada a cache local para verificar se não existe uma cópia do mapeamento
3. O “resolver” envia um pacote UDP (porto 53) para o servidor local de DNS.
4. O servidor local de DNS converte o nome num endereço IP. Ele pode fazê-lo
recorrendo a informação:
1. Guardada localmente, quer numa tabela ou em cache
2. Obtida de outros servidores
5. O servidor local de DNS devolve o endereço IP ao “resolver”.
6. O “resolver” devolve-o à aplicação que o chamou.
Máquina1 Pacote UDP
DNS server Pacote UDP
nome
Tabela
nr
Máquina1
Máquina2
Pacote TCP/UDP
3
4
5
DNS
jml 2012
DNS – Métodos de Resolução
Métodos para resolução de nomes
método recursivo
não recursivo
ns.cs.vu.nl x.root-server.net ns.edu-server.net ns.yale.edu ns.cs.yale.edu 2 3 4 5
9 8 7 6
flits.cs.vu.nl
linda.cs.yale.edu?
ns.cs.vu.nl
x.root-server.net
1
3
2 (x.root-server.net)
flits.cs.vu.nl
linda.cs.yale.edu? 1
10
ns.edu-server.net
5
Root Nameservers
Letter IPv4 address IPv6 address Old name Operator Location Software
A 198.41.0.4 2001:503:ba3e::2:30 ns.internic.net VeriSign distributed by anycast BIND
B 192.228.79.201 2001:478:65::53 ns1.isi.edu USC-ISI Marina Del Rey, California BIND
C 192.33.4.12 c.psi.net Cogent distributed by anycast BIND
D 128.8.10.90 terp.umd.edu University of Maryland College Park, Maryland BIND
E 192.203.230.10 ns.nasa.gov NASA Mountain View, California BIND
F 192.5.5.241 2001:500:2f::f ns.isc.org ISC distributed by anycast BIND 9
G 192.112.36.4 ns.nic.ddn.mil Defense Information
Systems Agency distributed by anycast BIND
H 128.63.2.53 2001:500:1::803f:235 aos.arl.army.mil U.S. Army Research Aberdeen PG, Maryland NSD
I 192.36.148.17 2001:7fe::53 nic.nordu.net Autonomica distributed by anycast BIND
J 192.58.128.30 2001:503:c27::2:30 VeriSign distributed by anycast BIND
K 193.0.14.129 2001:7fd::1 RIPE NCC distributed by anycast NSD
L 199.7.83.42 2001:500:3::42 ICANN distributed by anycast NSD
M 202.12.27.33 2001:dc3::35 WIDE Project distributed by anycast BIND
DNS
jml 2012
Root NameServers
DNS - Serviços Tradução de nomes em endereços IP
Nomes alternativos (Host aliasing)
Uma máquina pode ter mais que um nome
• (relay1.west-coast.enterprise.com ou www.enterprise.com)
O DNS pode ser usado para obter o nome canónico de uma máquina, dado o
nome alternativo
Aliases de mail
Endereço de mail deve ser uma menmónica simples:
• cr7@rm.es = cr7@dep_futebol.real_madrid.es)
Aplicação de mail usa DNS para obter o nome canónico da máquina que deve
receber e o seu IP
Distribuição de carga
• Réplicas de servidores Web:
• Servidor contém endereços das várias réplicas e responde de forma rotativa
DNS
jml 2012
DNS – Load Balancing
www IN A 10.0.0.1
www IN A 10.0.0.2
www IN A 10.0.0.3
Load Balancing
$ host www.google.com www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.19.104
www.l.google.com has address 74.125.19.103
www.l.google.com has address 74.125.19.147
www.l.google.com has address 74.125.19.99
$ host www.google.com www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.19.99
www.l.google.com has address 74.125.19.104
www.l.google.com has address 74.125.19.103
www.l.google.com has address 74.125.19.147
DNS
jml 2012
rDNS
Reverse DNS
Permite determinar um nome DNS associado a um endereço IP
Utiliza base de dados localizada sob o domínio de topo ARPA
Address and Routing Parameter Area
IPv4: in-addr.arpa.
IPv6: ipv6.arpa.
IPv4 in-addr.arpa tree
whois 202 203 210 211..
28.12.202.in-addr.arpa
Root DNS (.)
edu com arpa ph net
apnic in-addr
12
28
DNS
jml 2012
DNS Messages
DNS Messages
Query Response
DNS Messages
Header
Question section
Answer section
Authoritative section
Additional section
Header
Question section
Query Response
DNS
jml 2012
Figure 18-15
Header Format
Identification Flags & Codes
Number of question records Number of answer records
Number of authoritative records Number of additional records
32 bits
Header Flags and Codes
QR (0 – query, 1 - response)
Opcode
AA (authoritative answer)
TC (truncated)
RD (recursion desired)
RA (recursion available)
AD
CD
Rcode (return code) (error, name error)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RCode CD AD RA RD TC AA Opcode QR
DNS
jml 2012
Question Section
QNAME
QTYPE
QCLASS
16 bits
Resource Record
16 bits
NAME
TYPE
CLASS
TTL
RDLENGTH
RDATA
DNS
jml 2012
Resource Record Types
A Address. IPv4 address mapping.
Ex: ns IN A 192.168.0.1
AAAA Address. IPv6 address mapping.
Ex: ns IN AAAA (ipv6 address)
CNAME Canonical Name. Maps alias or nickname.
Ex: ftp IN CNAME www.sam.net.
MX Mail Exchange. Domain mail destination.
Ex: speedy MX 10 mail
MX 20 mail.sam.net.
NS NameServer. Name of DNS server.
Ex: peach NS ns.max.net.
PTR Pointer. Used for reverse name resolution.
Ex: 3 IN PTR grape
TXT Text. Character string associated with the domain name.
Ex: peach TXT "Refers to the peach subdomain"
2
4
DNS Flags
AA – Authoritative Answer
RA – Recursion Available
RD – Recursion Desired
QR – Query Recursive
DNS
jml 2012
DNS - Registos (Resource Records)
Um RR é composto por 5 campos : (Name, TTL, Type, Class, Value)
TTL - determina quando é que um RR deve ser removido da cache
Class - sempre IN (Internet)
Tipo:
• A - Name é um nome e Value é o endereço IP correspondente
• NS - Name é um domínio e Value é o nome de um servidor DNS desse domínio
• CNAME - Value é o nome canónico para o alias no campo Name
• MX - Value é o nome do servidor de mail para o domínio no campo Name
• SOA - “Start of Authority” - marca o início de uma zona e define parâmetros gerais
para esse domínio
• HINFO - Informação genérica sobre uma máquina (hw,sw,...)
• PTR - Conversão de um número IP num nome
electrobrain.com 86400 IN MX 1 mailserver.cs.ucla.edu
cs.vu.nl 86400 IN SOA (952771,7200,7200,2419200,86400)
flits.cs.vu.nl 86400 IN HINFO Sun Unix
flits.cs.vu.nl 86400 IN A 130.37.16.112
www.cs.vu.nl 86400 IN CNAME star.cs.vu.nl
DNS - Registos - Exemplo
$ORIGIN isep.ipp.pt.
dee IN SOA postes.dee.isep.ipp.pt. root.postes.dee.isep.ipp.pt. (
65 ; Serial
300 ; Refresh - 5 minutes
60 ; Retry - 1 minute
1209600 ; Expire - 2 weeks
43200 ) ; ttl - 12 hours
dee.isep.ipp.pt. IN A 193.136.60.32
IN MX 2 robot.dee.isep.ipp.pt.
IN MX 4 damao.dee.isep.ipp.pt.
IN MX 10 postes.dee.isep.ipp.pt.
IN MX 50 riu.core.ipp.pt.
IN NS postes.dee.isep.ipp.pt.
IN NS galby.ipp.pt.
IN NS dns.fccn.pt.
hplaser5M IN A 193.136.63.4
telehub IN A 193.136.63.5
telepc01 IN A 193.136.63.11
Incrementado de cada vez que há alterações
Define de quanto em quanto tempo os servidores
secundários verificam o “serial nr” do primário.
Se o primário está incontactável no momento de
“refresh” define quando é que deve ser tentado de novo.
Se não conseguir contactar o primário, o secundário
deve apagar os dados ao fim de “expire”
DNS
jml 2012
DNS - Registos - Exemplo
;Domain_name Time_to_live Class Type Value
cs.vu.nl. 86400 IN SOA star.star.cs.vu.nl. root.star.cs.vu.nl.(
952771, ;serial (version)
7200, ;refresh period
7200, ;retry refresh
2419200, ;expiration period
86400) ;minimum TTL
cs.vu.nl. 86400 IN TXT “Faculteit Wiskunde en Informatica.”
cs.vu.nl. 86400 IN TXT “Vrije Universiteit Amsterdam”
cs.vu.nl. 86400 IN MX 1 zephry.cs.vu.nl.
cs.vu.nl. 86400 IN MX 2 top.cs.vu.nl.
labs.cs.vu.nl. 86400 IN NS star
flits.cs.vu.nl. 86400 IN HINFO Sun Unix
flits.cs.vu.nl. 86400 IN A 130.37.16.112
flits.cs.vu.nl. 86400 IN A 192.31.231.165
flits.cs.vu.nl. 86400 IN MX 1 flits.cs.vu.nl.
flits.cs.vu.nl. 86400 IN MX 2 zephry.cs.vu.nl.
flits.cs.vu.nl. 86400 IN MX 3 top.cs.vu.nl.
www.cs.vu.nl. 86400 IN CNAME star.cs.vu.nl.
ftp.cs.vu.nl. 86400 IN CNAME zephry.cs.vu.nl.
rowboat IN A 130.37.56.201
IN MX 1 rowboat
IN HINFO Sun Unix
laserjet IN A 192.31.231.216
IN HINFO Mac MacOS
resolv.conf
/etc/resolv.conf
search dee.isep.ipp.pt
nameserver 193.136.63.3
nameserver 193.136.60.10
nameserver 193.136.60.2
DNS
jml 2012
named.conf
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.cache";
};
zone "dee.isep.ipp.pt"{
type master;
file "dee.isep.ipp.pt";
};
zone "0.0.127.IN-ADDR.ARPA"{
type master;
file "named.local";
};
zone "60.136.193.IN-ADDR.ARPA"{
type master;
file "60.rev";
};
zone "61.136.193.IN-ADDR.ARPA"{
type master;
file "61.rev";
};
zone "63.136.193.IN-ADDR.ARPA"{
type master;
file "63.rev";
};
zone "17.0.10.IN-ADDR.ARPA"{
type master;
file "17.rev";
};
63.rev $TTL 43200
@ IN SOA damao.dee.isep.ipp.pt. cari.dee.isep.ipp.pt. (
20070417111236 ; serial
300 ; refresh
60 ; retry
1209600 ; expire
43200 ; default_ttl
)
@ IN NS damao.dee.isep.ipp.pt.
@ IN NS galby.ipp.pt.
; Hosts for Class EqRede63
; Switch 3COM principal - Ed. F
1.63.136.193.in-addr.arpa. IN PTR bfswitch1.dee.isep.ipp.pt.
; Diu original
2.63.136.193.in-addr.arpa. IN PTR diuold.dee.isep.ipp.pt.
; Servidor principal da DEE.Net
3.63.136.193.in-addr.arpa. IN PTR damao.dee.isep.ipp.pt.
; HP LaserJet 5M
4.63.136.193.in-addr.arpa. IN PTR hplaser5M.dee.isep.ipp.pt.
; Servidor dos alunos do DEE
5.63.136.193.in-addr.arpa. IN PTR ave.dee.isep.ipp.pt.
; Canon IR2020i
6.63.136.193.in-addr.arpa. IN PTR Canon.dee.isep.ipp.pt.
; Servidor Goa
7.63.136.193.in-addr.arpa. IN PTR goa.dee.isep.ipp.pt.
; HP Laser Jet 5000 a
8.63.136.193.in-addr.arpa. IN PTR hp5000a.dee.isep.ipp.pt.
160.63.136.193.in-addr.arpa. IN PTR eBox06.dee.isep.ipp.pt.
162.63.136.193.in-addr.arpa. IN PTR eBox07.dee.isep.ipp.pt.
168.63.136.193.in-addr.arpa. IN PTR eBox08.dee.isep.ipp.pt.
DNS
jml 2012
nsswitch.conf
passwd: files nisplus nis
shadow: files nisplus nis
group: files nisplus nis
hosts: files dns nisplus nis
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files nisplus nis
rpc: files
services: files nisplus nis
netgroup: files nisplus nis
publickey: nisplus
automount: files nisplus nis
aliases: files nisplus
dig -t TXT ipp.pt ; <<>> DiG 8.3 <<>> -t ipp.pt
;; res options: init recurs defnam dnsrch
;; got answer: ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUERY SECTION: ipp.pt, type = TXT, class = IN
;; ANSWER SECTION:
ipp.pt. 1D IN TXT "v=spf1 a mx ~all"
;; AUTHORITY SECTION:
ipp.pt. 1D IN NS dns1.ipp.pt.
ipp.pt. 1D IN NS dns2.ipp.pt.
;; ADDITIONAL SECTION:
dns1.ipp.pt. 1D IN A 193.136.56.10
dns2.ipp.pt. 1D IN A 193.136.56.9
;; Total query time: 31 msec
;; FROM: damao.dee.isep.ipp.pt to SERVER: default -- 193.136.63.3
;; WHEN: Tue Apr 17 21:25:19 2007
;; MSG SIZE sent: 24 rcvd: 123
DNS
jml 2012
DNS spoofing
Client
Recursive NS
Coffee shops
Conferences
Airports
First Response wins
Recursive NS
Certain ISPs
Hotels
NXDOMAIN catcher
Client
DNS
jml 2012
mDNS: multicast DNS
Resolução:
hostname Endereço_IP
Não necessita de servidor de nomes.
Mensagens baseadas no formato DNS unicast
UDP, porto 5353
Endereços: IPv4: 224.0.0.251, IPv6: ff02::fb
Endereço MAC: 01:00:5E:00:00:FB (IPv4), 33:33:00:00:00:FB (IPv6)
Printer 169.254.1.219
169.254.4.51
169.254.10.29
169.254.4.51
mDNS
PC_Bill
PC_Larry
lj21569478
Network
Mac_Steve
DNS
jml 2012
DNSSEC
provides message authentication and integrity verification through
cryptographic signatures
You know who provided the signature
No modifications between signing and validation
It does not provide authorization
It does not provide confidentiality
It does not provide protection against DDOS
Metaphor
OK
Envelope sealed when data is published in the DNS system.
Does not provide confidentially.
The seal protects the delivery process.
No assertion about the message.
DNS
jml 2012
Holy Trinity
Private Key: kept private and stored locally
Public Keys: Published in the DNS as a DNSKEY Resource Record
Signatures: Published in the DNS as a RRSIG Resource Record
RRs and RRSets
Resource Record: – name TTL class type rdata
• www.nlnetlabs.nl. 7200 IN A 192.168.10.3
RRset: RRs with same name, class and type: • www.nlnetlabs.nl. 7200 IN A 192.168.10.3
• A 10.0.0.3
• A 172.25.215.2
RRsets are the atomic data units in DNSSEC
RRsets are signed, not the individual RRs
DNS
jml 2012
DNSKEY RDATA
16 bits: FLAGS
8 bits: protocol
8 bits: algorithm
N*32 bits: public key
mydomain.net. 3600 IN DNSKEY 256 3 5 (
AQOvhvXXU61Pr8sCwELcqqq1g4JJ
CALG4C9EtraBKVd+vGIF/unwigfLOA
O3nHp/cgGrG6gJYe8OWKYNgq3kDChN )
RRSIG RDATA
16 bits - type covered
8 bits - algorithm
8 bits - nr. labels covered
32 bits - original TTL
32 bit - signature expiration
32 bit - signature inception
16 bit - key tag
signer’s name
key
Mydomain.net. 3600 IN RRSIG A 5 2 3600 ( 20050611144523 20050511144523 3112 nlnetlabs.nl.
VJ+8ijXvbrTLeoAiEk/qMrdudRnYZM1VlqhN
vhYuAcYKe2X/jqYfMfjfSUrmhPo+0/GOZjW
66DJubZPmNSYXw== )
DNS
jml 2012
Validate Public Keys
Make sure you get them from the appropriate entity and
configure them as trust-anchors.
If you validate against the wrong public key there is a
problem again.
For DNSSEC: key distribution through the DNS
Ideally only one key needed: that of the root of the
DNS hierarchy.
Bibliografia Recomendada
Andrew S. Tanembaum, Computer Networks, 3rd Edition, Prentice Hall,
Chapter 7.2
Recommended