2014/2015
Professores: António Casimiro,
José Rufino, Pedro Ferreira
[docentes‐[email protected]]
Redes de Computadores
LTI
Domain Name System – DNS
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro, P. Ferreira
3
DNS
• Máquinas identificadas por endereços IP
– Ex: 194.117.22.81 (
IP v4
)
– Ex: 2001:690:21c0:f606:fac:c1e:0:c1a5 (
IP v6
)
População
=7.104.862.865 (estimativa para 03/2013)
v4
: 32 bit, 2
32=4.294.967.296
V6:128 bit, 2
128=340.282.366.920.938.463.463.374.607.431.768.211.456
• Pessoas preferem identificar por um nome
– Ex: www.di.fc.ul.pt
• O DNS é responsável por efetuar a tradução
Serviços do DNS
• Fornece um IP dado um nome (ou vice-versa)
• Associa um nome (alias) a outro nome
– Ex: webserver.di.fc.ul.pt a nau.di.fc.ul.pt
• Designa nomes de servidores de mail
– Ex: atuneiro.di.fc.ul.pt; mail.nos.pt
• Distribuição de carga
– Um nome pode corresponder a diversos
servidores com diversos IPs
• Ex: www.google.com
Livro
6th Ed: 130-133
Custom Ed: 48-51
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
5
Serviços DNS
Utilização de Nomes/Tradução para Endereços
DNS – Domain Name System
Exemplo Linux:
gethostbyname
getaddrinfo (RFC 3493)
Resolução de um nome –
iterated
query
•
Local Name server
– cada ISP tem
um servidor de nomes local
(default name server). Quando
algum host envia uma mensagem
de pedido de DNS, é enviado para
este servidor.
•
Root server
– Existem 13 em toda
a Internet. Mantêm uma lista de
Authoritative servers
para os
TLDs.
•
Top Level Domain (TLD) server
–
authoritative
em
relação
a
domínios principais.
•
Authoritative Name server
– Um
servidor
é
authoritative
em
relação a um dado nome, se tiver
sempre
um registo DNS que
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
7
• Resolução de nomes: possível
existência e intervenção de
intermediate name servers
• Iterated query
– geralmente nas consultas aos
servidores de raiz
• Recursive query
– nem sempre suportadas
Resolução de um nome –
recursive
query
Resolução de Nomes
Combinação de interrogações iteradas e recursivas
• Servidores DNS
– obrigatoriamente têm de suportar
interrogações iteradas
– suporte seletivo a interrogações
recursivas:
√ procedentes do interior do domínio
X procedentes do exterior do domínio
• Interrogações iteradas
– atualmente, as únicas suportadas pelos
servidores de raiz.
• Interrogações recursivas
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
9
DNS – Hierarquia de Nomes
TLD – Top Level Domains
Domínio
Significado
gTLD – generic TLDs
com
Organizações comerciais
int
Organizações internacionais
org
Organizações sem fins-lucrativos
net
Redes (suporte – e.g., servidores de raiz)
edu
U.S. instituições educativas
gov
U.S. instituições governamentais
mil
U.S. militares
ccTLD – country code TLD
países
Identificadores territoriais (2 caracteres)
Root servers (Março 2013)
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro, P. Ferreira
LTI - FCUL
11
Livro
6th Ed: 133-139
Custom Ed: 51-57
DNS – Registos
• Servidores contêm registos no formato seguinte:
• Nome:
nome do host ou nome do domínio
• TTL:
Time to Live
• Class:
identifica família de protocolos
– IN: Internet
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
13
DNS – Registos
Type, Rdata:
Tipo,Valor (significado varia consoante o tipo):
– A
• Name: nome canónico do host – nome nativo;
• Valor: endereço IP (IPv4)
– AAAA
• Name: nome canónico do host – nome nativo;
• Valor: endereço IP (IPv6)
DNS – Registos
Type, Rdata:
Tipo,Valor (significado varia consoante o tipo):
– CNAME
• correspondência entre nomes;
• Name: nome conhecido do host;
• Valor: nome encoberto do host.
– SOA
• Name: designação de um domínio;
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
15
DNS – Registos
Type, Rdata:
Tipo,Valor (significado varia consoante o tipo):
– NS
• Identificação de servidores (autoritários) de nomes;
• Name: designação de um domínio;
• Valor: nome de um authoritative name server.
– MX
• Semelhante a CNAME mas para email
• Name: domínio;
• Valor: prioridade e nome do servidor de e-mail.
DNS – Registos
Type, Rdata:
Tipo,Valor (significado varia consoante o tipo):
– PTR
• apontador para nome do domínio;
• utilizado em conversões inversas.
– SRV
• Identificação de serviços disponíveis
• Name: do tipo _service._proto.name.
DNS – Resolução Inversa
Type:
PTR
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
17
DNS – Resource Record Types
Resumo
Type
Value Meaning
A
1
Host Address
CNAME
5
Not a
Canonical NAME
(read: alias name for a host)
MX
15
Mailbox eXchange for the domain
SOA
6
Start Of a zone of Authority
NS
2
Authoritative Name Server for a domain
PTR
12
PoinTeR to another part of domain name space
HINFO
13
Comment field (e.g., host CPU and OS)
(not used)
TXT
16
Arbitrary string attributes
(see RFC 1464)
WKS
11
Well-Known Services
(obsolete – RFC 1123)
SRV
33
SeRVice available in a domain
(defined in RFC 2782)
ANY
255
all/some Types
– also a dig and host type option
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
19
DNS - Mensagens
DNS - Mensagens
Campo: Flags
• QR: Query/Response
• Opcode: Operation Code (see card)
• AA: Authoritative Answer
• TC: Truncation
• RD: Recursion Desired
• RA: Recursion Available
• Rcode: Response Code (see card)
TCP/IP and tcpdump reference card
Livro
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
21
DNS
Protocolo de Transporte Usado
Protocolo UDP
– Porto 53
– Normalmente utilizado
– Mensagens limitadas a 512 octetos
– Mensagens de maior dimensão usam extensões
definidas no RFC 6891 – EDNS.
Protocolo TCP
– Porto 53
– Utilitários (dig, host, nslookup) podem usar TCP
• +tcp – opção do dig para usar TCP
• -T – opção do host para usar TCP
DNS – Utilitários
– Programas que permitem gerar interrogações DNS e
representar as correspondentes respostas
– Formatam resource records e emitem mensagens DNS
– Recebem respostas e interpretam resource records
Linux – vários utilitários (e.g. dig, host, nslookup)
Windows – uso do utilitário nslookup
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
23
Consultas DNS (I)
NSLOOKUP: utilização em Windows
Identificar:
servidores de raiz – “.”
nslookup
Interativo
Linha de comando
Consultas DNS (II)
Domain Information Groper
(DIG): utilização em Linux
Obter:
endereço IP
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
25
Consultas DNS (III)
Domain Information Groper
(DIG): utilização em Linux
Identificar:
fonte primária config. DNS
DIG - Exemplo de utilização (I)
consulta ao servidor de nomes por omissão
$ dig serv‐rc.di.fc.ul.pt –t A
; <<>> DiG 9.8.1‐P1‐RedHat‐9.8.1‐3.P1.fc15 <<>> serv‐rc.di.fc.ul.pt ‐t A ;; global options: +cmd
;; Got answer:
;; ‐>>HEADER<<‐ opcode: QUERY, status: NOERROR, id: 64183
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION:
;serv‐rc.di.fc.ul.pt. IN A ;; ANSWER SECTION:
serv‐rc.di.fc.ul.pt. 86400 IN CNAME webserver.di.fc.ul.pt. webserver.di.fc.ul.pt. 86400 IN CNAME nau.di.fc.ul.pt. nau.di.fc.ul.pt. 86400 IN A 194.117.22.70 ;; AUTHORITY SECTION: di.fc.ul.pt. 86400 IN NS iate.di.fc.ul.pt. di.fc.ul.pt. 86400 IN NS falua.di.fc.ul.pt. ;; ADDITIONAL SECTION: iate.di.fc.ul.pt. 86400 IN A 10.101.85.6 falua.di.fc.ul.pt. 86400 IN A 10.101.85.138 ;; Query time: 1 msec
;; SERVER: 10.101.85.6#53(10.101.85.6) ;; WHEN: Fri Mar 9 16:41:21 2012
Comando dig
Sumário das Respostas
Headers
Interrogação
Servidores DNS
de autoridade
Servidor DNS que respondeu
à interrogação
Informação útil
adicional
RRs na Resposta
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
27
DIG - Exemplo de utilização (II)
uso de um servidor de nomes alternativo/específico
$ dig @dns.di.fc.ul.pt www.di.fc.ul.pt ‐t A
; <<>> DiG 9.8.1‐P1‐RedHat‐9.8.1‐3.P1.fc15 <<>> @dns.di.fc.ul.pt www.di.fc.ul.pt ‐t A ;; global options: +cmd
;; Got answer:
;; ‐>>HEADER<<‐ opcode: QUERY, status: NOERROR, id: 27156
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3 ;; QUESTION SECTION: ;www.di.fc.ul.pt. IN A ;; ANSWER SECTION: www.di.fc.ul.pt. 900 IN A 194.117.22.81 ;; AUTHORITY SECTION: di.fc.ul.pt. 900 IN NS a.ul.pt. di.fc.ul.pt. 900 IN NS dns.di.fc.ul.pt. di.fc.ul.pt. 900 IN NS ns01.fc.ul.pt. ;; ADDITIONAL SECTION: dns.di.fc.ul.pt. 900 IN A 194.117.22.89 ns01.fc.ul.pt. 51826 IN A 194.117.42.11 ns01.fc.ul.pt. 51826 IN AAAA 2001:690:21c0:104::11 ;; Query time: 1 msec
;; SERVER: 194.117.22.89#53(194.117.22.89) ;; WHEN: Fri Mar 16 00:20:38 2012
;; MSG SIZE rcvd: 241
Comando dig
Sumário das Respostas
Headers
Interrogação
Servidores DNS
de autoridade
Servidor DNS que
respondeu à interrogação
Informação útil
adicional
RRs na Resposta
... Questions Answers Authority AdditionalDIG - Exemplo de utilização (III)
consulta observou delegação de autoridade sobre domínio
$ dig @198.153.192.50 www.karyon‐project.eu –t A
; <<>> DiG 9.9.5‐3‐Ubuntu <<>> @198.153.192.50 www.karyon‐project.eu ‐t A ;; ‐>>HEADER<<‐ opcode: QUERY, status: NOERROR, id: 31185
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 1 ;; QUESTION SECTION:
;www.karyon‐project.eu. IN A ;; ANSWER SECTION:
www.karyon‐project.eu. 691 IN CNAME karyon‐project.eu. karyon‐project.eu. 691 IN A 194.117.20.200 ;; AUTHORITY SECTION:
karyon‐project.eu. 691 IN NS dns.di.fc.ul.pt. karyon‐project.eu. 691 IN NS ns01.fc.ul.pt. ;; Query time: 49 msec
;; SERVER: 198.153.192.50#53(198.153.192.50) ;; WHEN: Sat Mar 21 20:21:18 WET 2015 ;; MSG SIZE rcvd: 128
Comando dig
Sumário das Respostas
Headers
Interrogação
Servidores DNS
de autoridade
Servidor DNS que respondeu
à interrogação
RRs na Resposta
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
DIG - Exemplo de utilização (IV)
consulta delegação de autoridade sobre um nome
$ dig @dns.di.fc.ul.pt www.karyon‐project.eu ‐t A +trace
; <<>> DiG 9.9.5‐3‐Ubuntu <<>> @dns.di.fc.ul.pt www.karyon‐project.eu ‐t A +trace
. 131875 IN NS d.root‐servers.net.
. 131875 IN NS e.root‐servers.net.
. 131875 IN NS f.root‐servers.net.
. 131875 IN NS g.root‐servers.net.
...
;; Received 755 bytes from 194.117.22.89#53(dns.di.fc.ul.pt) in 23 ms
eu. 172800 IN NS si.dns.eu.
eu. 172800 IN NS nl.dns.eu.
eu. 172800 IN NS uk.dns.eu.
...
;; Received 577 bytes from 192.112.36.4#53(g.root‐servers.net) in 60 ms karyon‐project.eu. 86400 IN NS dns.di.fc.ul.pt. ;; Received 604 bytes from 193.2.221.60#53(si.dns.eu) in 62 ms
www.karyon‐project.eu. 900 IN CNAME karyon‐project.eu. karyon‐project.eu. 900 IN A 194.117.20.200 karyon‐project.eu. 900 IN NS ns01.fc.ul.pt. karyon‐project.eu. 900 IN NS dns.di.fc.ul.pt. ;; Received 144 bytes from 194.117.22.89#53(dns.di.fc.ul.pt) in 1 ms
Comando dig
29
DIG – Trace
DIG - Exemplo de utilização (V)
Indica o caminho de delegação desde a raiz até ao nome procurado
$ dig di.fc.ul.pt –t MX +trace
.
236189
IN
NS
c.root-servers.net.
.
236189
IN
NS
d.root-servers.net.
(....)
.
236189
IN
NS
b.root-servers.net.
;; Received 512 bytes from 10.101.85.138#53(10.101.85.138) in 0 ms
pt.
172800
IN
NS
sns-pb.isc.org.
pt.
172800
IN
NS
ns-pt.nlnetlabs.nl.
pt.
172800
IN
NS
auth210.ns.uu.net.
pt.
172800
IN
NS
ns.dns.br.
pt.
172800
IN
NS
auth200.ns.uu.net.
pt.
172800
IN
NS
ns2.nic.fr.
pt.
172800
IN
NS
ns2.dns.pt.
pt.
172800
IN
NS
ns.dns.pt.
;; Received 496 bytes from 192.33.4.12#53(c.root-servers.net) in 34 ms
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
31
DIG – Trace
DIG - Exemplo de utilização (V)
(continuação)
ul.pt.
14400
IN
NS
a.ul.pt.
ul.pt.
14400
IN
NS
b.ul.pt.
;; Received 154 bytes from 213.154.224.141#53(ns-pt.nlnetlabs.nl) in 107 ms
di.fc.ul.pt.
172800
IN
NS
ns01.fc.ul.pt.
di.fc.ul.pt.
172800
IN
NS
dns.di.fc.ul.pt.
;; Received 126 bytes from 194.117.0.150#53(a.ul.pt) in 7 ms
di.fc.ul.pt.
900
IN
MX
20 barca.di.fc.ul.pt.
di.fc.ul.pt.
900
IN
MX
10 atuneiro.di.fc.ul.pt.
di.fc.ul.pt.
900
IN
NS
b.ul.pt.
di.fc.ul.pt.
900
IN
NS
dns.di.fc.ul.pt.
di.fc.ul.pt.
900
IN
NS
ns01.fc.ul.pt.
di.fc.ul.pt.
900
IN
NS
ns02.fc.ul.pt.
di.fc.ul.pt.
900
IN
NS
a.ul.pt.
;; Received 388 bytes from 194.117.42.11#53(ns01.fc.ul.pt) in 9 ms
Estudo DNS
Questões fundamentais de auto-aferição
1. Slide 26: qual o IP do servidor DNS que respondeu à consulta?
2. Slide 26: a resposta provém de um servidor DNS com autoridade sobre
o domínio?
3. Slide 26, 27 e 28: Como saber (numa fração de segundo, ou menos)
se a resposta obtida provém de um servidor com autoridade?
4. Slide 27: quantos servidores de nomes são reportados como tendo
autoridade sobre o domínio?
5. Slide 27: a resposta obtida na consulta provém de algum desses
servidores?
6. Slide 27: em que porto foi recebida a resposta da consulta efetuada?
7. Slide 26, 27 e 28: qual o protocolo de transporte usado nas consultas?
8. Slide 28: a consulta efetuada foi iterada ou recursiva?
9. Slide 29: o caminho de delegação desde a raiz até ao nome procurado
pode ser obtido a partir de qualquer servidor DNS?
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
33
DNS – Registo SRV
Type, Rdata:
Tipo,Valor
(especificados pelo RFC 2782):
– SRV
• Name - tem o seguinte formato:
_service._protocol[.sub-domain].domain
• Valor (Rdata): tem o seguinte formato:
priority weight port target
DNS – Uso do Registo SRV
exemplo de alguns serviços
Especificação do Campo Nome
(RR SRV Query)
Observações
Serviço
Protocolo
Sub-domínio
_sip
_tcp
_udp
SIP: Session Initiation Protocol
Uso:
VoIP, estabelecimento de
chamadas voz
_autodiscover
_tcp
Exchange Autodiscover service
Uso:
Windows Outlook
_kerberos
_tcp
_udp
Kerberos
Uso:
Autenticação Linux
_kpasswd
_tcp
_udp
Kerberos Password Change
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
35
DNS – Uso do Registo SRV
exemplo de alguns serviços
Especificação do Campo Nome
(RR SRV Query)
Observações
Serviço
Protocolo
Sub-domínio
_ldap
_tcp
x._msdcs
LDAP: Lightweight Directory
Access Protocol
Uso:
Autenticação Windows
Observações adicionais:
_msdcs
Microsoft Domain Controller
Services
Valores possíveis para x:
pdc
Primary Domain Controller
dc
Domain Controller
gc
Global Catalogue
DIG - Exemplo de utilização (VI)
localização de serviços (Kerberos) – RR SRV
$ dig @10.101.252.12 _kerberos._tcp.fc.ul.pt –t SRV
; <<>> DiG 9.9.5‐3‐Ubuntu <<>> @10.101.252.12 _kerberos._tcp.fc.ul.pt ‐t SRV ;; ‐>>HEADER<<‐ opcode: QUERY, status: NOERROR, id: 2835
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 7 ;; QUESTION SECTION: ;_kerberos._tcp.fc.ul.pt. IN SRV ;; ANSWER SECTION: _kerberos._tcp.fc.ul.pt. 600 IN SRV 0 100 88 fc‐dc02.fc.ul.pt. _kerberos._tcp.fc.ul.pt. 600 IN SRV 0 100 88 fc‐dc01.fc.ul.pt. _kerberos._tcp.fc.ul.pt. 600 IN SRV 0 100 88 fc‐dc03.fc.ul.pt. ;; ADDITIONAL SECTION: fc‐dc02.fc.ul.pt. 900 IN A 10.101.252.12 fc‐dc02.fc.ul.pt. 900 IN AAAA 2001:690:21c0:f252::dc02 fc‐dc01.fc.ul.pt. 900 IN A 10.101.252.11 fc‐dc01.fc.ul.pt. 900 IN AAAA 2001:690:21c0:f252::dc01 fc‐dc03.fc.ul.pt. 900 IN A 10.101.252.13 fc‐dc03.fc.ul.pt. 900 IN AAAA 2001:690:21c0:f252::dc03 ;; Query time: 3 msec
;; SERVER: 10.101.252.12#53(10.101.252.12) ;; WHEN: Fri Mar 20 15:39:11 WET 2015
Comando dig
Sumário das Respostas
Headers
Interrogação
Servidor DNS que respondeu
à interrogação
Informação útil
adicional
RRs na Resposta
LTI - FCUL
©2004-15, R. Almeida, M. Correia, J. Rufino, A. Casimiro
37
DIG - Exemplo de utilização (VII)
localização de serviços (Active Directory) – RR SRV
$ dig @10.101.252.12 _ldap._tcp.dc._msdcs.fc.ul.pt –t SRV
; <<>> DiG 9.9.5‐3‐Ubuntu <<>> @10.101.252.12 _ldap._tcp.dc._msdcs.fc.ul.pt ‐t SRV ;; ‐>>HEADER<<‐ opcode: QUERY, status: NOERROR, id: 13768
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 7 ;; QUESTION SECTION: ;_ldap._tcp.dc._msdcs.fc.ul.pt. IN SRV ;; ANSWER SECTION: _ldap._tcp.dc._msdcs.fc.ul.pt. 600 IN SRV 0 100 389 fc‐dc01.fc.ul.pt. _ldap._tcp.dc._msdcs.fc.ul.pt. 600 IN SRV 0 100 389 fc‐dc02.fc.ul.pt. _ldap._tcp.dc._msdcs.fc.ul.pt. 600 IN SRV 0 100 389 fc‐dc03.fc.ul.pt. ;; ADDITIONAL SECTION: fc‐dc01.fc.ul.pt. 900 IN A 10.101.252.11 fc‐dc01.fc.ul.pt. 900 IN AAAA 2001:690:21c0:f252::dc01 fc‐dc02.fc.ul.pt. 900 IN A 10.101.252.12 fc‐dc02.fc.ul.pt. 900 IN AAAA 2001:690:21c0:f252::dc02 fc‐dc03.fc.ul.pt. 900 IN A 10.101.252.13 fc‐dc03.fc.ul.pt. 900 IN AAAA 2001:690:21c0:f252::dc03 ;; Query time: 5 msec
;; SERVER: 10.101.252.12#53(10.101.252.12) ;; WHEN: Fri Mar 20 16:23:54 WET 2015 ;; MSG SIZE rcvd: 298