Livello applicazione: Protocollo DNS

Transcript

Livello applicazione: Protocollo DNS
Livello applicazione:
Protocollo DNS
Gaia Maselli
Queste slide sono un adattamento delle slide fornite dai libri di testo e
pertanto protette da copyright.
- Copyright © 2013 McGraw-Hill Education Italy srl
- All material copyright 1996-2007 J.F Kurose and K.W. Ross, All Rights
Reserved
2-1
Identificazione degli host
Identificazione degli host
❒  Persone: molti identificatori:
v  nome, codice fiscale,
numero della carta d’identità
❒  Host Internet hanno nomi (hostname)
v 
v 
www.google.com
w3.uniroma1.it
❒  I nomi sono facili da ricordare ma forniscono poca informazione
sulla collocazione degli host all’interno di Internet
v 
w3.uniroma1.it ci dice che l’host si trova probabilmente in Italia ma non dove
❒  Indirizzi IP per gli host:
v 
v 
indirizzo IP (32 bit) - usato per indirizzare i datagrammi
Più appropriato per le macchine
2-2
Indirizzo IP
❒  Consiste di 4 byte
v  E’ costituito da una stringa in cui ogni punto separa uno
dei byte espressi con un numero decimale compreso tra 0
e 255
❒  Presenta una struttura gerarchica
v  Leggendolo da destra a sinistra otteniamo informazioni
sempre più specifiche sulla collocazione dell’host in
Internet (rete di appartenenza)
❒  Esempio
v  121.34.230.94
D: Come associare un indirizzo IP a un nome?
2-3
DNS: Domain Name System
www.uniroma1.it
DNS
130.186.99.43
2-4
Servizio DNS
Domain Name System (RFC 1034, 1035):
r  Database
distribuito implementato in una
gerarchia di server DNS
r  Protocollo a livello applicazione che consente agli
host di interrogare il database distribuito per
risolvere i nomi (tradurre indirizzi/nomi)
r  Il DNS viene utilizzato dagli altri protocolli di
livello applicazione (HTTP, SMTP, FTP) per
tradurre hostname in indirizzi IP
r  Utilizza il trasporto UDP e indirizza la porta 53
2-5
Esempio di interazione con HTTP
Un browser (ossia client HTTP) di un host utente richiede
la URL www.someschool.edu
1. 
2. 
3. 
4. 
5. 
L’host esegue il lato client
dell’applicazione DNS
Il browser estrae il nome dell’host,
www.someschool.edu dall’URL e lo
passa al lato client dell’applicazione DNS
Il client DNS invia una query contenente
l’hostname a un server DNS
Il client DNS riceve una risposta che
include l’indirizzo IP corrispondente
all’hostname
Ottenuto l’indirizzo IP dal DNS, il
browser può dare inizio alla connessione
TCP verso il server HTTP localizzato a
quell’indirizzo IP
query
query
HTTP
DNS
response
response
2-6
DNS: è un’applicazione?
❒  E` un protocollo del livello applicazione
v  Viene eseguito dagli end system secondo il paradigma clientserver
v  Utilizza un protocollo di trasporto end-to-end per traferire
messaggi tra gli end system (UDP)
❒  Non è un’applicazione con cui gli utenti interagiscono
direttamente (eccetto amministratori di rete)
❒  Fornisce una funzionalità di base di internet per le
applicazioni utente
❒  Rispecchia la filosofia di concentrare la complessità
nelle parti periferiche della rete
2-7
Servizi DNS: aliasing
❒  Permette di associare un nome più semplice da ricordare a un
nome complesso
❒  Host aliasing: un host può avere uno o più sinonimi (alias)
v 
v 
v 
v 
v 
Esempio: relay1.west-coast.enterprise.com potrebbe avere
due sinonimi, quali enterprise.com e www.enterprise.com
relay1.west-coast.enterprise.com è un hostname canonico
enterprise.com e www.enterprise.com sono alias
Gli alias sono più facili da ricordare
Il DNS può essere invocato da un’applicazione per l’hostname
canonico di un sinonimo così come l’IP
❒  Mail server aliasing: spesso i mail server e il web server di una
società hanno lo stesso alias, ma nomi canonici diversi
❒  Il DNS può essere invocato da un’applicazione per avere il nome
canonico di un alias e il suo indirizzo IP
2-8
Servizi DNS: distribuzione del
carico
❒  DNS viene utilizzato per distribuire il carico tra server
❒ 
❒ 
❒ 
❒ 
❒ 
replicati (es. web server)
I siti con molto traffico (es. cnn.com) vengono replicati su più
server, e ciascuno di questi gira su un sistema terminale
diverso e presenta un indirizzo IP differente
Hostname canonico associato a un insieme di indirizzi IP
Il DNS contiene l’insieme di indirizzi IP
Quando un client effettua un richiesta DNS per un nome
mappato in un insieme di indirizzi, il server risponde con
l’insieme di indirizzi ma variando l’ordinamento a ogni risposta
La rotazione DNS distribuisce il traffico sui server replicati
2-9
DNS
r  Traduce nomi in indirizzi
IP
r  Ai tempi di ARPANET era
un file host.txt che veniva
caricato durante la notte
r  Adesso è un’applicazione
che gira su ogni host
r  Costituita da
v  un gran numero di server
DNS distribuiti per il mondo
v  Un protocollo a livello
applicazione che specifica la
comunicazione tra server
DNS e host richiedenti
Perché non centralizzare
DNS?
r  singolo punto di guasto
r  volume di traffico
r  database centralizzato
distante
r  manutenzione
Un database centralizzato su
un singolo server DNS non
è scalabile !
2-10
Gerarchia DNS
❒  Nessun server DNS mantiene il mapping per
tutti gli host in Internet
❒  Il mapping è distribuito su svariati server DNS
❒  Ci sono 3 classi di server DNS organizzati in
una gerarchia:
v  Root
v  Top-level
domain (TLD)
v  Authoritative
❒  Ci sono poi i server DNS locali con cui
interagiscono direttamente le applicazioni
2-11
Database distribuiti e gerarchici
Server DNS radice
Server DNS com
Server DNS org
Server DNS
Server DNS
Server DNS
di yahoo.com di amazon.com di pbs.org
Server DNS edu
Server DNS Server DNS
di poly.edu di umass.edu
Esempio: Il client vuole l’IP di www.amazon.com
r  Il client interroga il server radice (root) per trovare il server
DNS com
r  Il client interroga il server DNS com per ottenere il server DNS
amazon.com
r  Il client interroga il server DNS amazon.com per ottenere
l’indirizzo IP di www.amazon.com
2-12
DNS: server DNS radice
r  In Internet ci sono 13 server DNS radice
r  Ognuno di questi server è replicato per motivi di sicurezza e affidabilità (in
totale diventano 247 root server)
r  I root server vengono contattati dai server DNS locali
r  Server DNS radice:
v  contatta un server DNS autorizzato (TLD) se non conosce la mappatura
v  ottiene la mappatura
v  restituisce la mappatura al server DNS locale
a
c
d
g
h
Verisign, Dulles, VA
Cogent, Herndon, VA (e Los Angeles)
U Maryland College Park, MD
k RIPE Londra (anche Amsterdam e Francoforte)
US DoD Vienna, VA
ARL Aberdeen, MD
i Autonomica, Stoccolma (più altre 3 locazioni)
j Verisign, ( 11 locazioni)
e NASA Mt View, CA
f Internet Software C. Palo Alto, CA
m WIDE Tokyo
(e altre 17 locazioni)
b USC-ISI Marina del Rey, CA
l ICANN Los Angeles, CA
13 server DNS
radice nel mondo
2-13
Server TLD e server di competenza
r  Server TLD (top-level domain): si occupano dei domini com,
org, net, edu, ecc. e di tutti i domini locali di alto livello,
quali it, uk, fr, ca e jp.
v 
v 
La compagnia Verisign Global Registry Services gestisce i
server TLD per il dominio com
La compagnia Educause gestisce quelli per il dominio edu
r  Server di competenza (authoritative
server): ogni
organizzazione dotata di host Internet pubblicamente
accessibili (quali i server web e i server di posta) deve
fornire i record DNS di pubblico dominio che mappano i
nomi di tali host in indirizzi IP.
v 
v 
possono essere mantenuti dall’organizzazione (università) o
da un service provider
In genere sono due server (primario e secondario)
2-14
esempio
2-15
Etichette dei domini generici
2-16
Server DNS locale
r  Non appartiene strettamente alla gerarchia dei
server
r  Ciascun ISP (università, società, ISP residenziale)
ha un server DNS locale.
v 
detto anche “default name server”
r  Quando un host effettua una richiesta DNS, la
query viene inviata al suo server DNS locale
v 
il server DNS locale opera da proxy e inoltra
la query in una gerarchia di server DNS
2-17
Query iterativa
Server DNS radice
r  L’host cis.poly.edu
2
vuole l’indirizzo IP di
gaia.cs.umass.edu
3
4
Query iterativa: (2-7)
r  Il server contattato
risponde con il nome
del server da
contattare
r  “Io non conosco
questo nome, ma puoi
chiederlo a questo
server”.
Server DNS TLD
5
Server DNS locale
dns.poly.edu
1
7
8
6
Server DNS di competenza
Host richiedente
dns.cs.umass.edu
cis.poly.edu
N.B. Per ottenere la mappatura di un hostname
sono stai inviati 8 messaggi !!!
gaia.cs.umass.edu
2-18
Query ricorsiva
Server DNS radice
Query ricorsiva:
2
r  Affida il compito di
tradurre il nome al
server DNS
contattato
3
6
7
Server DNS TLD
Server DNS locale
dns.poly.edu
1
5
4
8
Server DNS di competenza
Host richiedente
dns.cs.umass.edu
cis.poly.edu
gaia.cs.umass.edu
2-19
DNS: caching
r  DNS sfrutta il caching per migliorare le prestazioni di ritardo e
per ridurre il numero di messaggi DNS che “rimbalzano” in
Internet
r  Una volta che un server DNS impara la mappatura, la mette nella
cache
v  le informazioni nella cache vengono invalidate (spariscono)
dopo un certo periodo di tempo (es. 2 giorni)
v  tipicamente un server DNS locale memorizza nella cache gli
indirizzi IP dei server TLD (ma anche quelli di competenza)
§  quindi i server DNS radice non vengono visitati spesso
q  Esempio: più utenti in dipartimento che si connettono sul sito
dell’università di Berkley
r  I meccanismi di aggiornamento/notifica sono progettati da IETF
v 
v 
RFC 2136
http://www.ietf.org/html.charters/dnsind-charter.html
2-20
DNS record e messaggi
❒  Il mapping è mantenuto nei database sotto
forma di resource record (RR)
❒  Ogni RR mantiene un mapping ( es. tra
hostname e indirizzo IP, alias e nome
canonico, etc.)
❒  I record vengono spediti tra server e
all’host richiedente all’interno di messaggi
DNS
❒  Un messaggio può contenere più RR
2-21
Record DNS
❒  Database distribuito che memorizza i record di
risorsa o resource record (RR).
❒  Ogni messaggio di risposta DNS trasporta uno o
più RR
Formato RR: (Name,
Value, Type, TTL)
Tempo residuo
di vita
2-22
Record DNS
Formato RR: (Name,
Value, Type, TTL)
❒  Type=A
Hostname è
v 
v 
IP address
name è il nome dell’host
value è l’indirizzo IP
Es. (relay1.bar.foo.com, 45.37.93.126, A)
2-23
Record DNS
Formato RR: (Name,
Value, Type, TTL)
❒  Type=CNAME
Alias è
v 
v 
Canonical Name
name è il nome alias di qualche nome
“canonico” (nome vero)
value è il nome canonico
Es. (foo.com, relay1.bar.foo.com, CNAME)
2-24
Record DNS
Formato RR: (Name,
❒  Type=NS
Domain name è
v 
v 
Value, Type, TTL)
Name Server
name è il dominio
(ad esempio foo.com)
value è il nome dell’host del server di
competenza di questo dominio
Es. (foo.com, dns.foo.com, NS)
2-25
Record DNS
Formato RR: (Name,
Value, Type, TTL)
❒  Type=MX
Alias è
mail server canonical name
value è il nome canonico del server di posta associato a
name
Es. (foo.com, mail.bar.foo.com, MX)
v 
2-26
Tipi di record
2-27
Esempio
❒  Server di competenza per un hostname
v  Contiene un record di tipo A per l’hostname
v  Es. (corsi.di.uniroma1.it, 131.111.45.68, A)
❒  Server non di competenza per un dato hostname
v  Contiene un record di tipo NS per il dominio che include
l’hostname
v  Contiene un record di tipo A che fornisce l’indirizzo IP del
server DNS nel campo value del record NS
❒  Es.:
v  Un server TLD it non è competente per l’host
corsi.di.uniroma1.it
v  Contiene
(uniroma1.it, dns.uniroma1.it, NS)
(dns.uniroma1.it, 128.119.40.111, A)
2-28
Messaggi DNS
Protocollo DNS: domande (query) e messaggi di risposta,
entrambi con lo stesso formato
Intestazione del messaggio
r  Identificazione: numero di 16
bit per la domanda;
la risposta alla domanda usa lo
stesso numero
r  Flag:
v  domanda o risposta
v  richiesta di ricorsione
v  ricorsione disponibile
v  risposta di competenza (il
server è competente per il
nome richiesto)
q  Numero di: numero di
occorrenze delle quattro
sezioni di tipo dati che seguono
2-29
Messaggi DNS
Campi per il nome richiesto
e il tipo di domanda (A, MX)
RR nella risposta alla domanda
Più RR nel caso di p.e. di server
replicati
Record per
i server di competenza
Informazioni extra che
possono essere usate
Nel caso di una risposta MX, il campo di risposta contiene il record MX con il nome
canonico del server di posta, mentre la sezione aggiuntiva contiene un record di tipo
A con l’indirizzo IP relativo all’hostname canonico del server di posta
2-30
Inserire record nel database DNS
r  Esempio: abbiamo appena avviato la nuova società “Network Utopia”
r  Registriamo il nome networkuptopia.it presso registrar
(www.registro.it)
v  Forniamo al registrar i nomi e gli indirizzi IP dei server DNS di
competenza (primario e secondario)
v  Registrar inserisce due RR nel server TLD it:
v 
v 
(networkutopia.it, dns1.networkutopia.it, NS)
(dns1.networkutopia.it, 212.212.212.1, A)
N.B. The Internet Assigned Numbers Authority (IANA) is responsible
for the global coordination of the DNS Root, IP addressing, and other
Internet protocol resources (see also ICANN)
IANA's Root Zone Database contains the authoritative record of the
operators of various top-level domains
r  Inseriamo nel server di competenza un record tipo A per
www.networkuptopia.it e un record tipo MX per networkutopia.it
r  In che modo gli utenti otterranno l’indirizzo IP
del nostro sito web?
2-31
esempio
Local proxy
at uniroma1
Root DNS per /
2
3
1
4
5
Record A
URL: www.example.com
Browser invia query DNS al proxy
TLD DNS per com
Authoritative DNS
Per example.com
“www.example.com. 150.160.15.12”
6
Web server
IP: 150.160.15.12
2-32
Perche’ UDP?
❒ Less overhead
❒ Messaggi corti
❒ Tempo per set-up connessione di TCP lungo
❒ Un unico messaggio deve essere scambiato tra una
coppia di server (nella risoluzione contattati diversi
server—se si usasse TCP ogni volta dovremmo
mettere su la connessione!!)
❒ Se un messaggio non ha risposta entro un timeout?
❒ Semplicemente viene ri-inviato dal resolver (problema
risolto dallo strato applicativo)
2: Application Layer
33
Un esempio: uso di DNS da
parte di un client web
CLIENT
Browser
DNS server(s)
http://cerbero.elet.polimi.it/
people/bianchi/research.html
Port
23561
151.100.37.9
Browser asks DNS to resolve
location cerbero.elet.polimi.it
Uses UDP packet
<151.100.37.9,port=23561>,
<name_server_IP_address, port 53>
2: Application Layer
34
opening transport session:
client side, step b
CLIENT
Browser
DNS server(s)
http://cerbero.elet.polimi.it/
people/bianchi/research.html
Port
23561
151.100.37.9
Network responds with IP
address 131.175.15.1
Uses UDP connection
<name_server_IP_address, port 53>,
<151.100.37.9,port=23561>
2: Application Layer
35
opening transport session:
client side, step c
CLIENT
Closes UDP socket
used for DNS
lookup
Browser
http://cerbero.elet.polimi.it/
people/bianchi/research.html
Port
Port
2345 23561
151.100.37.9
Creates TCP socket
and assigns port no.
Sends TCP conn req
to server 131.175.21.1
port 80
INTERNET
SERVER
IP: 131.175.21.1
Port: 80
TCP connection
<151.100.37.9, 2345>,
<131.175.21.1,80>
2: Application Layer
36
opening transport session:
server side
v  httpd
(http daemon) process listens for arrival of
connection requests from port 80.
v  Upon connection request arrival, server decides
whether to accept it, and send back a TCP connection
accept
v  This opens a TCP connection, uniquely identified by
client address+port and server address+port 80
(coppia di indirizzi socket)
2: Application Layer
37
Prova pratica
❒  Nslookup: command-line tool to query Internet
DNS interactively
❒  nslookup dal prompt dei comandi
Ø  nslookup
www.di.uniroma1.it!
Ø  nslookup –type=NS uniroma1.it!
Ø  nslookup uniroma1.it 151.100.4.13!
Ø  nslookup –type=NS .
2-38

Documenti analoghi

Livello applicazione: Protocollo DNS

Livello applicazione: Protocollo DNS www.someschool.edu dall’URL e lo passa al lato client dell’applicazione DNS Il client DNS invia una query contenente l’hostname a un server DNS Il client DNS riceve una risposta che include l’indir...

Dettagli

DNS (Avanzato)

DNS (Avanzato) • Risoluzione dei Nomi in Indirizzi e viceversa • Gestione gerarchica del sistema di denominazione dei computer • Database distribuito della mappatura dei nomi • Nato nei primi anni di Internet – (...

Dettagli