FTP, SMTP/POP3, DNS, reti P2P - SisInfLab

Transcript

FTP, SMTP/POP3, DNS, reti P2P - SisInfLab
Telematica II
A.A. 20062006-07
•
•
•
•
Sommario
Protocollo FTP
Posta Elettronica (SMTP, POP3, IMAP)
Protocollo DNS
Reti peer-to-peer, BitTorrent
1 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
File Transfer Protocol (FTP)
• Consente il trasferimento di file tra due host
• Utilizza 2 connessioni TCP:
– Connessione di controllo: utilizzata per
trasferire informazioni di controllo tra client e
server
– Connessione dati: utilizzata per il
trasferimento dei file
2 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
FTP Client
FTP (2)
FTP Server
TCP control connection
(port 21)
TCP data connection (port 20)
File System
locale
File System
remoto
•La connessione di controllo è persistente ed identifica una sessione
(necessaria autenticazione mediante login/logout)
•La connessione dati non è persistente, nell’ambito di una sessione, per ogni
file trasferito è creata una nuova connessione dati (il server è in ascolto sulla porta
20 in attesa di nuove connessioni)
3 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
FTP (3)
A.A. 20062006-07
User Interface
User protocol
interpreter
User data
transfer function
Control
connection
Data
connection
Client
4 di 100
Protocolli di livello applicativo
Server protocol
interpreter
Server data
transfer function
Server
M. Ruta
Telematica II
A.A. 20062006-07
FTP: autenticazione
• FTP richiede l’autenticazione dell’utente remoto il quale deve
possedere un account sul server
•A discrezione del server esiste anche la possibilità di
autenticare un utente anonimo (anonymous FTP)
•User name: anonymous
•Password:qualsiasi (generalmente mail address)
•Numero limitato di risorse
•Diritti limitati (generalmente è negato il permesso w)
• FTP non è stateless, infatti le connessioni TCP devono essere
associate all’account dell’utente loggato (vincolo sul massimo
numero di utenti loggati)
5 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Rappresentazione dei dati (1)
• File Type:
– È possibile impostarlo in fase di configurazione della connessione
•
•
•
ASCII (default)
EBCDIC (mainframe IBM)
Binary
attualmente è difficile che si adoperi
FTP per trasferire file testuali
– Local file type: il numero di bit per byte è specificato dal sender
A way of transferring binary files between hosts with different byte
sizes. The number of bits per byte is specified by the sender. For
systems using 8-bit bytes, a local file type with a byte size of 8 is
equivalent to the image file type
6 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Rappresentazione dei dati (2)
• Structure:
– File Structure (default): il file è un flusso di byte contigui
– Record Structure: utilizzata solo con file di testo (ASCII o
EBCDIC)
– Page Structure: ogni pagina è trasmessa in modo numerato
7 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Rappresentazione dei dati (3)
• Transmission mode:
– Stream mode (default): il file è trasferito come un
flusso di byte contigui
– Block mode: il file è trasferito come flusso di
blocchi, ognuno dei quali è preceduto da un header
– Compressed mode: basato su Run-Length Encoding
(RLE) di sequenze del medesimo byte
RLE is a simple compression algorithm. It consists of the process of
searching for repeated runs of a single symbol in an input stream, and
replacing them by a single instance of the symbol and a run count
8 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Rappresentazione dei dati (4)
• Le implementazioni più comuni di client e server FTP su
piattaforme UNIX adottano le seguenti convenzioni:
–
–
–
9 di 100
File Type: ASCII o binary
Structure: file
Transmission mode: stream mode
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Comandi FTP (NVT ASCII)
Comando
Descrizione
AUTH protocol
Imposta l’algoritmo di cifratura prima dell’autenticazione
ABOR
Annulla il precedente comando ed ogni trasferimento dati
CD directory
Cambia indirizzario di riferimento
LIST filelist
Lista files o directory
PASS password
Specifica la password
PORT n1,n2,…n6
Indirizzo IP del Client (n1.n2.n3.n4) e porta (256*n5+n6)
QUIT
Disconnessione dal server
RETR filename
Richiede un file
STOR filename
Fa l’upload di un file
SYST
Restituisce il tipo di S.O. del server
TYPE type
Specifica il modo di trasferimento: A=(ASCII) I=(binario)
USER username
Specifica lo username
10 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
Repliche FTP
A.A. 20062006-07
Reply
Descrizione
1yz
Positive preliminary reply (l’azione sta partendo ma è necessaria un’altra replica
prima di un nuovo comando)
2yz
Positive completion reply (un nuovo comando può essere inviato)
3yz
Positive intermediate reply (il comando è stato accettato ma deve essere inviato
un altro comando per continuare) [es. login]
4yz
Transient negative completion reply (la richiesta non è stata accettata, l’errore è
temporaneo, si può ritentare in seguito)
5yz
Permanent negative completion reply
x0z
Syntax error
x1z
Information
x2z
Connections
x3z
Autentication and accounting
x4z
Unspecified
x5z
Filesystem status
11 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
•
•
•
•
•
•
•
•
•
Repliche FTP: esempi
125 Data connection already open; transfer starting
200 Command OK
214 Help message
331 Username OK, password required
425 Can’t open data connection [problemi derivanti dalla connessione di rete]
452 Error writing file [problemi derivanti dalla mancanza di permessi adeguati]
500 Syntax error (unrecognized command)
501 Syntax error (invalid arguments)
502 Unimplemented MODE type
12 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Gestione delle connessioni (1)
• La connessione dati è utilizzata per
–
–
–
Inviare un file da server a client
Inviare un file da client a server
Inviare un elenco di file o directory dal server al client (list)
• Una nuova connessione dati è creata per ogni file da
trasferire
13 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Gestione delle connessioni (2)
• La creazione della connessione dati è sotto il controllo
del client
• Esistono 2 modalità di gestione della connessione:
– Attiva
– Passiva
• Modalità attiva:
– Il client sceglie un numero di porta > 1024 su cui
mettersi in ascolto
– Il client invia al server, tramite il comando PORT, il
connessione di
numero di porta scelto
controllo
– Il server avvia una connessione dati sulla porta ricevuta
connessione
(dal lato server il numero di porta è 20)
dati
14 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Gestione delle connessioni (3)
• Modalità passiva:
– È il server a mettersi in ascolto per una connessione
– Si usa il comando PASV per effettuare la commutazione.
– E’ utile nel caso in cui il client si trovi dietro un firewall o un NAT e
quindi non può accettare connessioni in ingresso
– In questa modalità il server si mette in ascolto su una data porta ed
aspetta una connessione dal client
– La risposta a questo comando comprende il numero di porta su cui è in
ascolto il server
15 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Esempio di sessione FTP
220 (vsFTPd 2.0.1)
AUTH KERBEROS_V4
530 Please login with USER and PASS.
USER michi
331 Please specify the password.
PASS ciao
230 Login successful.
[avvio sessione]
SYST
215 UNIX Type: L8
[L8 = Linux]
PASV
227 Entering Passive Mode (127,0,0,1,157,77)
LIST
150 Here comes the directory listing.
…
…
226 Directory send OK.
TYPE I
200 Switching to Binary mode.
RETR prova.txt
150 Opening BINARY mode data connection for prova.txt (0 bytes.
…
226 File send OK.
QUIT
221 Goodbye.
16 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
No.
Time
1 0.000000
Source
193.204.59.21
Esempio di sessione FTP (2)
Destination
193.204.59.227
Protocol Info
TCP
32786 > ftp(21) [SYN] Seq=0 Ack=0
2 0.000083
193.204.59.227 193.204.59.21
TCP
ftp(21) > 32786 [SYN, ACK] Seq=0 Ack=1
3 0.000135
193.204.59.21
TCP
32786 > ftp [ACK] Seq=1 Ack=1
4 0.016440
193.204.59.227 193.204.59.21
FTP
ftp > 32786 Response: 220 (vsFTPd 2.0.1)
193.204.59.21
FTP
32786 > ftp Request: PASV
193.204.59.227
…
…
21 9.862311
193.204.59.227
22 9.862756 193.204.59.227 193.204.59.21
FTP
ftp > 32786 Response: 227 Entering Passive
Mode (127,0,0,1,157,77) Passive port: 40269 (157*256+77)
…
24 9.876359
193.204.59.21
25 9.876406
26 9.876430
17 di 100
193.204.59.227
TCP
32787 > 40269 [SYN]
193.204.59.227 193.204.59.21
TCP
40269 > 32787 [SYN, ACK]
193.204.59.21
TCP
32787 > 40269 [ACK]
193.204.59.227
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
No.
Time
27 9.876767
Source
193.204.59.21
Esempio di sessione FTP (3)
Destination
Protocol Info
193.204.59.227 FTP
32786 > ftp(21) Request: LIST
28 9.884313
193.204.59.227 193.204.59.21
directory listing.
FTP
ftp > 32786 Response: 150 Here comes the
29 9.889893
193.204.59.227 193.204.59.21 FTP-DATA 40269 > 32787 FTP Data:
drwx-----3 500
500
4096 Apr 14 15:47 Desktop\r\n-rwxr--r-500
958906 Apr 13 11:03 apt-0.5.15cnc6-1.1.fc3.fr.i386.rpm\r\ndrwxr-xr-x
500
4096 Apr 14 16:06 bin\r\n-rw-r
1 500
2 500
…
31 9.890257
OK.
193.204.59.227 193.204.59.21
FTP
ftp > 32786 Response: 226 Directory send
…
…
67 88.612774
193.204.59.21
68 88.613092
193.204.59.227 193.204.59.21
18 di 100
193.204.59.227 FTP
FTP
32786 > ftp Request: QUIT
ftp > 32786 Response: 221 Goodbye.
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Client FTP
• Su tutti i sistemi Windows ed Unix, esiste un client ftp testuale,
richiamabile digitando:
ftp <nome_host>
• Digitando il comando help si può ottenere la lista dei comandi
• Esistono molti altri client grafici quali: WS_FTP, FileZilla, GFTP, …
• Anche molti browser web possono essere usati come client FTP
19 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Server FTP
• Un esempio di server FTP open-source disponibile per
Linux è vsFTPd (Very Secure FTP daemon)
• Dopo l’installazione del server, verrà creato un utente
ftp, con una propria home directory
• A questo punto il server è già in grado di funzionare. Se
si prova un login anonimo, verrà mostrato il contenuto
della home directory dell’utente ftp
20 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Configurazione di vsFTPd
• Si agisce sul file testuale vsftpd.conf, contenuto nella directory /etc
• Principali direttive:
–
–
–
–
–
21 di 100
max_clients: massimo numero di client che si possono connettere
max_per_ip: massimo numero di connessioni da uno stesso indirizzo IP
anonymous_enable: abilita l’accesso agli utenti anonimi
local_enable: abilita l’accesso agli utenti locali
anon_upload_enable: consente agli utenti anonimi di fare l’upload di
file
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Posta Elettronica
• E’ basata su due componenti:
– User agent: applicativi client utilizzati dall’utente per comporre, inviare
e leggere messaggi
– Mail server: contengono i messaggi in ingresso/uscita degli utenti e
gestiscono le mailbox
• I principali protocolli utilizzati sono:
– SMTP (Simple Mail Transfer Protocol): protocollo utilizzato dai mail
server per il trasferimento dei messaggi
– invio dei messaggi da client a server
– interazione tra differenti mail server
– POP3/IMAP: protocolli per l’accesso alle mailbox
– POP3=Post Office Protocol ver. 3
– IMAP=Internet Message Access Protocol (si differenzia da POP3 perché consente
una migliore interattività con un mail server)
22 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
Posta Elettronica (2)
A.A. 20062006-07
User
SMTP
Mail Server 1
Message queue
Agent 1
User
Agent 2
POP3/IMAP
session
User 1
User 2
Mail Server 2
Flusso del
messaggio
Mail Box
Message queue
•La disciplina della coda di messaggi sui mail server dipende dalla configurazione degli stessi
•Una mail box è fisicamente rappresentata da un file contenente i messaggi utente sul server
23 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Message
Sender
(SMTP Client)
SMTP
Message
Receiver
(SMTP Server)
SMTP session
Mail Client
Mail Server
Message queue
TCP connection
Port 25
• Struttura client/server del protocollo e modello di interazione request/response
• In linea generale è richiesta una procedura di autenticazione tra client e server
(allo scopo di evitare fenomeni di spamming)
Mail Box
•Basata su IP del client (pool di indirizzi autorizzati)
•Basata su accounting utente con meccanismi crittografici (SSL)
• Protocollo di tipo testuale command-based con comandi aventi sinossi del tipo
nomecomando [parametri]
24 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
•
•
•
•
•
•
•
•
Comandi SMTP
HELO <sender host name>
– identifica il client presso il mail server locale (esso mantiene un pool di IP
validi o garantisce autenticazione mediante username e password)
MAIL From: <sender of the message>
– identifica il mittente del messaggio mediante il suo indirizzo e-mail
RCPT To: <recipient of the message>
– specifica il destinatario del messaggio mediante il suo indirizzo e-mail
DATA <Body of the mail>
– specifica il contenuto del messaggio (chiuso da “.” in corrispondenza
dell’ultima linea di testo)
– contiene anche gli header (subject, cc, ccn)
QUIT
– chiude la sessione
RSET
– annulla il trasferimento corrente
VRFY <recipient to be verified>
– consente di verificare l’esistenza dell’indirizzo del destinatario
NOOP
– non esegue nessuna operazione, ma forza il server a rispondere con OK
– è adoperato per verificare che il server sia ancora in attività
25 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Risposte SMTP
220 <domain> servizio pronto
comando completato
250 comando completato con successo
con successo
251 utente non locale; la mail verrà inoltrata
354 iniziare l’inserimento del corpo della mail; terminare con richiesta di
interazione
<CRLF>.<CRLF>
421 <domain> servizio non disponibile
comando completato con
450 mailbox non disponibile
errori reversibili
451 errore locale nel processing
500 errore di sintassi: comando sconosciuto
501 errore di sintassi negli argomenti
comando completato con
502 comando non implementato
554 transazione fallita
26 di 100
Protocolli di livello applicativo
errori irreversibili
M. Ruta
Telematica II
A.A. 20062006-07
Formato di un messaggio
Aprendo un messaggio SMTP con un editor di testo è possibile visualizzarne la struttura:
Envelope
MAIL From: <mittente>
RCPT To: <destinatario>
Headers
Received: by sun.tuc.noao.edu.
Date: Mon, 19 Jul 1993 12:47:31
Subject: testing
Body
Testo della mail
.
27 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Esempio di sessione SMTP
220 vsmtp1alice.tin.it ESMTP Service (7.0.027) ready
HELO [193.204.59.21]
250-vsmtp1alice.tin.it
MAIL FROM:<[email protected]> SIZE=329
250 MAIL FROM:<[email protected]> OK
RCPT TO:<[email protected]>
250 RCPT TO:<[email protected]> OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
Message-ID: <[email protected]>
Date: Mon, 25 Jun 2007 11:48:06 +0200
From: Michele Ruta <[email protected]>
28 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Esempio di sessione SMTP
User-Agent: Mozilla Thunderbird 1.0.2-1.3.2
(X11/20070624)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: [email protected]
Subject: prova
Content-Type: text/plain; charset=ISO-8859-1;
format=flowed
Content-Transfer-Encoding: 7bit
.
250 <425E31F5001C5BCE> Mail accepted
QUIT
29 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
No.
…
Time
Esempio di sessione SMTP (2)
Source
Destination
24 4.457803
193.204.59.21 62.211.72.21
25 4.490016
ACK]
62.211.72.21
26 4.490115
193.204.59.21 62.211.72.21
Protocol Info
TCP
32791 > smtp(25) [SYN]
193.204.59.21 TCP
smtp(25) > 32791 [SYN,
TCP
32791 > smtp(25) [ACK]
27 4.520047 62.211.72.21 193.204.59.21 SMTP
smtp(25) > 32791
Response: 220 vsmtp1alice.tin.it ESMTP Service (7.0.027) ready
28 4.520125 193.204.59.21 62.211.72.21
Seq=1 Ack=55
TCP
32791 > smtp [ACK]
29 4.542552 193.204.59.21 62.211.72.21
HELO [193.204.59.21]
SMTP
32791 > smtp Command:
30 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Esempio di sessione SMTP (3)
…
…
219 32.733377 193.204.59.21 62.211.72.21
SMTP
32791 > smtp QUIT
220 32.749257 62.211.72.21 193.204.59.21 SMTP
221 vsmtp1alice.tin.it QUIT
smtp > 32791 Response:
221 32.749322 62.211.72.21
ACK]
smtp > 32791 [FIN,
193.204.59.21 TCP
222 32.788971 193.204.59.21 62.211.72.21
TCP
32791 > smtp [ACK]
225 32.893038 193.204.59.21 62.211.72.21
ACK]
TCP
32791 > smtp [FIN,
193.204.59.21 TCP
smtp > 32791 [ACK]
226 32.904869 62.211.72.21
31 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Multipurpose Internet Mail Extensions
(MIME)
• Estensioni utili per trasferire contenuti differenti dal testo
ASCII (immagini, audio, video, etc …)
• Sono basate su header aggiuntivi che caratterizzano i
contenuti del messaggio
32 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Header MIME
• Mime-Version: versione dello standard
• Content-Type: tipo di contenuto
–
–
–
–
text/plain : testo puro
text/html : testo html (formattazione avanzata)
image/jpeg : immagine jpeg
video/mpeg : video mpeg
• Content-Transfer-Encoding: tipo di codifica idonea al
contenuto del messaggio
33 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
POP3
A.A. 20062006-07
•Struttura client/server del protocollo e
modello di interazione request/response
•È richiesta una procedura di
autenticazione tra client e server
•allo scopo di identificare
univocamente una mailbox
•basata su accounting utente mediante
inserimento di username e password
User
Agent
POP3/IMAP
session
User
Mail Server
Message queue
•Protocollo di tipo testuale commandbased con comandi aventi sinossi del tipo
nomecomando [parametri]
•Risposta di tipo testuale priva di codici
numerici di riferimento
34 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
POP3: comandi principali
• USER <username>
– identifica l’utente
• PASS <password>
– fornisce la password
• STAT
– mostra il mailbox status (numero di messaggi). Avvia una transazione
• LIST
– lista dei messaggi (ordinale di ciascun messaggio e spazio occupato)
• RETR n
– recupera il messaggio “n” dal server
• DELE n
– marca il messaggio “n” da cancellare (verrà cancellato nella fase di
update)
• TOP nmsg nlinee
– mostra solo “nlinee” linee del messaggio “nmsg”
• QUIT
– cancella i messaggi marcati da cancellare e chiude la connessione
35 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Esempio di sessione POP3
+OK dovecot ready.
USER michi
+OK
PASS ciao
+OK Logged in.
STAT
+OK 6 25642
LIST
+OK 6 messages:
1 4935
2 1218
3 1218
36 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Return-Path: <[email protected]>
Return-Path: <[email protected]>
X-Original-To: [email protected]
X-Original-To: [email protected]
Delivered-To: [email protected]
Delivered-To: [email protected]
Received: from localhost (aspoliba.poliba.it [192.168.1.2])
Received: from localhost (aspoliba.poliba.it [192.168.1.2])
by mail.poliba.it (Postfix) with ESMTP id 37D82EA46B
by mail.poliba.it (Postfix) with ESMTP id 37D82EA46B
for <[email protected]>; Fri, 22 Jun 2007 17:55:30 +0200 (CEST)
for <[email protected]>; Fri, 22 Jun 2007 17:55:30 +0200 (CEST)
Received: from mail.poliba.it ([192.168.1.3])
Received: from mail.poliba.it ([192.168.1.3])
by localhost (aspoliba.poliba.it [192.168.1.2]) (amavisd-new, port 10024)
by localhost (aspoliba.poliba.it [192.168.1.2]) (amavisd-new, port 10024)
with ESMTP id 18629-06-5 for <[email protected]>;
with ESMTP id 18629-06-5 for <[email protected]>;
Fri, 22 Jun 2007 18:11:21 +0200 (CEST)
Fri, 22 Jun 2007 18:11:21 +0200 (CEST)
Received: from mail.cs.umn.edu (mail.cs.umn.edu [128.101.35.202])
Received: from mail.cs.umn.edu (mail.cs.umn.edu [128.101.35.202])
by mail.poliba.it (Postfix) with ESMTP id 1DB2EEB3F4
by mail.poliba.it (Postfix) with ESMTP id 1DB2EEB3F4
for <[email protected]>; Fri, 22 Jun 2007 17:55:03 +0200 (CEST)
for <[email protected]>; Fri, 22 Jun 2007 17:55:03 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
Received: from localhost (localhost [127.0.0.1])
by augustus.cs.umn.edu (Postfix) with ESMTP id 8936C5C4E7
by augustus.cs.umn.edu (Postfix) with ESMTP id 8936C5C4E7
for <[email protected]>; Fri, 22 Jun 2007 10:49:58 -0500 (CDT)
for <[email protected]>; Fri, 22 Jun 2007 10:49:58 -0500 (CDT)
X-Virus-Scanned: amavisd-new at cs.umn.edu
X-Virus-Scanned: amavisd-new at cs.umn.edu
Received: from mail.cs.umn.edu ([127.0.0.1])
Received: from mail.cs.umn.edu ([127.0.0.1])
by localhost (mail.cs.umn.edu [127.0.0.1]) (amavisd-new, port 10024)
by localhost (mail.cs.umn.edu [127.0.0.1]) (amavisd-new, port 10024)
with LMTP id Gn8SN8sNSg1Z; Fri, 22 Jun 2007 10:49:52 -0500 (CDT)
with LMTP id Gn8SN8sNSg1Z; Fri, 22 Jun 2007 10:49:52 -0500 (CDT)
Received: from sabinus.cs.umn.edu (sabinus.cs.umn.edu [128.101.35.203])
Received: from sabinus.cs.umn.edu (sabinus.cs.umn.edu [128.101.35.203])
by mail.cs.umn.edu (Postfix) with ESMTP id B27805C4E8;
by mail.cs.umn.edu (Postfix) with ESMTP id B27805C4E8;
Fri, 22 Jun 2007 10:49:45 -0500 (CDT)
Fri, 22 Jun 2007 10:49:45 -0500 (CDT)
Received: (from www-r@localhost)
Received: (from www-r@localhost)
by sabinus.cs.umn.edu (8.9.3/8.9.0) id KAA14168;
by sabinus.cs.umn.edu (8.9.3/8.9.0) id KAA14168;
Fri, 22 Jun 2007 10:49:44 -0500 (CDT)
Fri, 22 Jun 2007 10:49:44 -0500 (CDT)
Date: Fri, 22 Jun 2007 10:49:44 -0500 (CDT)
Date: Fri, 22 Jun 2007 10:49:44 -0500 (CDT)
Message-Id: <[email protected]>
Message-Id: <[email protected]>
To: [email protected]
To: [email protected]
Subject: early registration for ICEC'07 64
Subject: early registration for ICEC'07 64
From: [email protected]
From: [email protected]
Cc: [email protected]
Cc: [email protected]
Reply-to: [email protected]
Reply-to: [email protected]
X-Virus-Scanned: amavisd-new at poliba.it
X-Virus-Scanned: amavisd-new at poliba.it
X-UIDL:
\,Q"!~#F"!ooF"!;2B"!
Protocolli
di livello applicativo
M. Ruta
X-UIDL: \,Q"!~#F"!ooF"!;2B"!
Esempio di sessione POP3 (2)
4 3080
5 4512
6 10679
.
RETR 1
+OK 4935 octets
Return-Path: <[email protected]>
Received: from mail.cs.umn.edu (mail.cs.umn.edu
[128.101.35.202]) by mail.poliba.it (Postfix) with
ESMTP id 1DB2EEB3F4 for <[email protected]>; Fri,
22 Jun 2007 17:55:03 +0200 (CEST)
.
QUIT
+OK Logging out.
37 di 100
Telematica II
A.A. 20062006-07
Esempio di sessione POP3 (3)
No.
Time
Source
Destination
4458 6.968872 193.204.59.21 193.204.49.50
pop3(110) [SYN] Seq=0 Ack=0
Prot
TCP
Info
32796 >
4464 6.974523 193.204.49.50 193.204.59.21 TCP
32796 [SYN, ACK] Seq=0 Ack=1
pop3 >
4465 6.974601 193.204.59.21 193.204.49.50 TCP
pop3 [ACK] Seq=1 Ack=1
32796 >
4469 6.976746 193.204.49.50 193.204.59.21 POP
32796 Response: +OK dovecot ready.
pop3 >
4470 6.976813 193.204.59.21 193.204.49.50 TCP
pop3 [ACK] Seq=1 Ack=21
32796 >
38 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Esempio di sessione POP3 (4)
4479 6.990839 193.204.59.21 193.204.49.50 POP
pop3 Request: USER mruta
…
32796 >
4482 6.994185 193.204.49.50 193.204.59.21 POP
32796 Response: +OK
…
pop3 >
4515 7.038836 193.204.59.21 193.204.49.50 POP
pop3 Request: RETR 1
…
32796 >
4517 7.043860 193.204.49.50 193.204.59.21 POP pop3 >
32796 Response: +OK 4935 octets
Return-Path: [email protected] Received: from
mail.cs.umn.edu (mail.cs.umn.edu [128.101.35.202]) by
mail.poliba.it (Postfix) with ESMTP id 1DB2EEB3F4 for
<[email protected]>; Fri, 22 Jun 2007 17:55:03 +0200
(CEST)
.
39 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
No.
Time
4664 7.262057
Request: QUIT
Esempio di sessione POP3 (5)
Source
193.204.59.21
Destination
Prot Info
193.204.49.50 POP 32796 > pop3
4665 7.264080 193.204.49.50
Response: +OK Logging out.
193.204.59.21
POP
pop3 > 32796
4666 7.265700
[FIN, ACK]
193.204.49.50
193.204.59.21
TCP
pop3 > 32796
4667 7.265720
[ACK]
193.204.59.21
193.204.49.50
TCP
32796 > pop3
4674 7.274250
[FIN, ACK]
193.204.59.21
193.204.49.50
TCP
32796 > pop3
4675 7.275973
[ACK]
193.204.49.50
193.204.59.21
TCP
pop3 > 32796
…
40 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Internet Message Access Protocol (IMAP)
• E’ un protocollo per accedere a messaggi di mail su un server
remoto
• A differenza di POP3, è pensato per la manipolazione delle
mailboxes online, senza bisogno di scaricare in locale i messaggi
• Consente l’accesso ad una stessa mailbox da più PC
contemporaneamente
• Consente di:
–
–
–
–
41 di 100
Creare, eliminare e rinominare mailbox
Controllare l’arrivo di nuovi messaggi
Rimuovere messaggi
Effettuare ricerche all’interno dei messaggi
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
DNS: Domain Name Service
• Realizza una corrispondenza fra gli indirizzi IP numerici ed i nomi logici
–
–
•
sisinflab.poliba.it Æ 193.204.49.75
www.google.it Æ 66.233.183.104
Alias di posta: fornisce l’indirizzo IP o l’hostname del Mail Server di un dominio
– [email protected] (query MX)
• Esso consiste di:
– uno schema gerarchico di nominazione, basato sul concetto di dominio
(domain)
– un database distribuito che implementa lo schema gerarchico di
nominazione
– un protocollo per il mantenimento e la distribuzione delle informazioni
sulle corrispondenze
– Interrogazione tra DNS
– Interrogazione client/DNS
42 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
top level
domains
second level
domains
conversione
IP-hostname
arpa
Organizzazione dello spazio dei nomi
com
edu
gov
in-addr
noao
140
tuc
252
sun
13
int
mil
net
org
ae
…
Ciascuna
Ciascunalabel
label
può
essere
può esserelunga
lunga
63
63caratteri
caratteri
us
…
zw
va
reston
cnri
sun.tuc.noao.edu.
Fully Qualified Domain Name
(FQDN)
cnri.reston.va.us.
33
33.13.252.140.in-addr.arpa.
generic domains
43 di 100
Protocolli di livello applicativo
country domains
M. Ruta
Telematica II
A.A. 20062006-07
Organizzazione dello spazio dei nomi (2)
•
I top level domains vengono gestiti direttamente dal NIC (Network
Information Center) che ha sede in ogni nazione e si incarica
dell'assegnazione e del mantenimento dei nomi a dominio nel country code
Top Level Domain “it” (ISO 3166)
•
Per le altre zone (nodi dell’albero DNS) , il NIC delega la gestione alle
singole organizzazioni
•
Per ciascuna zona ci deve essere un server primario (autoritativo per
quella zona) ed uno o più secondari per scopi di ridondanza
• Un server autoritativo gestisce direttamente le corrispondenze di un dominio
(garanzia di una conversione corretta)
• I server secondari mantengono copia delle corrispondenze aggiornata
dinamicamente mediante query periodiche al DNS primario (allineamento
automatico dei dati)
•
Per servire il nodo radice esistono i cosiddetti root name server
44 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Root name server
• Vi sono 13 root name server al mondo
• Essi corrispondono al dominio di livello piu alto: . (punto, o root)
• Ogni root name server mantiene le corrispondenze con gli indirizzi
dei top level domains
45 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Principio di funzionamento
• L’ host host1.poliba.it desidera
conoscere l’indirizzo IP di
Root name server
host2.mydomain.eu
ƒ Contatta il server DNS locale,
dns.poliba.it
ƒ dns.poliba.it contatta un name
server di livello superiore o il root
name server se necessario
dns.poliba.it
ƒ Il root name server contatta il top
dns.mydomain.eu
level domain .eu il quale conoscce
l’indirizzo del name server di
riferimento, dns.mydomain.eu
ƒ Ogni host è registrato in almeno
due name server assoluti
host1.poliba.it
host2.mydomain.eu
ƒ Questo meccanismo di risoluzione è
ricorsivo
46 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Local
name
server
Risoluzione iterativa
Root
name
server
• Occupazione di banda da parte del
client moltiplicata
• Maggiore carico computazionale sul
client
• Dal punto di vista del client è
preferibile la soluzione ricorsiva, ma
la soluzione iterativa potrebbe essere
a minore delay
Query
Authoritative
name server
47 di 100
Protocolli di livello applicativo
Iterative
Reply
Authoritative
Reply
M. Ruta
Telematica II
A.A. 20062006-07
Risposta non autoritativa
Root
name
server
• Le cache dei local name server
contengono precedenti risoluzioni
• Riduzione dei delay
• Possibile non completa correttezza
Local
name
server
dei risultati a causa di meccanismi
fraudolenti di alterazione delle cache
DNS
• È indispensabile distinguere risposte
autoritative da risposte non
autoritative
I DNS
implementano
meccanismi di
caching
48 di 100
Protocolli di livello applicativo
Query
Non Authoritative
Reply
M. Ruta
Telematica II
Formato di un messaggio DNS
A.A. 20062006-07
15 16
0
Identificazione
identifcativo univoco intero
a 16 bit del messaggio
(transaction ID)
31
Flags
Numero di
domande
Numero di
Risposte RR
Numero di
RR assoluti
Numero di
RR aggiuntivi
Domande
(numero di domande variabile)
Un
UnResource
ResourceRecord
Record(RR)
(RR)
èèuna
struttura
dati
atta
una struttura dati attaaa
contenere
contenereuna
unareply
replyDNS
DNS
risposte autoritative
Resource Record (RR)
49 di 100
Risposte
(numero variabile di RR)
Assoluti
(numero variabile di RR)
proprietà generali del
pacchetto
(richiesta/risposta)
la variabilità del contenuto
impone la presenza di una
intestazione
risposte convenzionali
Resource Record (RR)
Informazioni aggiuntive
(numero variabile di RR)
Protocolli di livello applicativo
M. Ruta
Telematica II
Flags
A.A. 20062006-07
QR opcode AA TC RD RA
1
4
1 1
1 1
3
rcode
4
QR 0: query, 1: risposta
opcode 0: standard query (name→IP), 1: query inversa (IP→name), 2: server status,
3: …
AA 1: name server autoritativo per il dominio nella query
TC 1: le dimensioni della risposta superano 512 byte (massima dimensione PDU
UDP)
RD 1: query ricorsiva, 0: query iterativa
RA 1: il server supporta la risoluzione ricorsiva
rcode return code. 0: nessun errore, 3: errore nel nome (3 bit non adoperati)
50 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
Formato del Resource Record (RR)
A.A. 20062006-07
0
15 16
31
nome dominio
tipo
classe
time-to-live
lunghezza dati
dati
tipo: 1 indica che è richiesto un indirizzo IP per quel nome di dominio (query di tipo A, name2IP), 12
indica che si richiede l’hostname corrispondente ad un indirizzo IP (PTR query, IP2name)
classe: normalmente è 1 per gli indirizzi Internet
time-to-live: tempo (in secondi) per cui il RR sarà nella cache del resolver (client)
lunghezza dati: numero di byte del campo dati
51 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
Pacchetto di query tipo A
A.A. 20062006-07
No.
1405
Time
Source
3.853009 193.204.59.21
Destination
193.204.49.36
Protocol Info
DNS
Standard query A
www.google.it
DNS primario dominio poliba.it
Flags: 0x0100
0... ....
.000 0...
.... ..0.
.... ...1
.... ....
.... ....
(Standard
.... ....
.... ....
.... ....
.... ....
.0.. ....
...0 ....
query)
Messaggio non eccedente 512 B
= Response: Message is a query
= Opcode: Standard query (0)
= Truncated: Message is not truncated
= Recursion desired: Do query recursively
= Z: reserved (0)
= Non-authenticated data OK:
Queries/Answers/Authority/Additional
Q/A/AA/AD: 1/0/0/0
Queries
Name: www.google.it: type A, class IN
Risposte non autoritative ammesse
Query in classe 1 (INternet)
52 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Pacchetto di risposta
No.
Time
Source
Destination
Protocol Info
1406 3.857705 193.204.49.36 193.204.59.21
DNS
Standard query response
CNAME www.google.com CNAME www.l.google.com A 66.249.85.104 A 66.249.85.99
Flags: 0x8180 (Standard query response, No error)
1... .... .... .... = Response: Message is a response
.000 0... .... .... = Opcode: Standard query (0)
.... .0.. .... .... = Authoritative: Server is not an authority for domain
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query recursively
.... .... 1... .... = Recursion available: Server can do recursive queries
.... .... .0.. .... = Z: reserved (0)
.... .... ..0. .... = Answer authenticated: Answer/authority portion was not
authenticated by the server
.... .... .... 0000 = Reply code: No error (0)
Questions: 1
Answer RRs: 4
Authority RRs: 4
Additional RRs: 4
53 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Pacchetto di risposta (2)
Canonical Name record (alias)
Answers
www.google.it: type CNAME, class IN, TTL
3d1h1m19s, cname www.google.com
www.google.com: type CNAME, class IN, TTL 8m18s,
cname www.l.google.com
www.l.google.com: type A, class IN, TTL 23s, addr
66.249.85.104
www.l.google.com: type A, class IN, TTL 23s, addr
66.249.85.99
Address record, corrispondenza diretta con un IP
54 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Pacchetto di risposta (3)
Corrispondenza con gli IP negli additional record
Authoritative nameservers
l.google.com: type NS, class IN, ns b.l.google.com
l.google.com: type NS, class IN, ns c.l.google.com
l.google.com: type NS, class IN, ns d.l.google.com
l.google.com: type NS, class IN, ns a.l.google.com
Additional records
b.l.google.com: type A, class IN, addr 64.233.179.9
c.l.google.com: type A, class IN, addr 64.233.161.9
d.l.google.com: type A, class IN, addr 64.233.183.9
a.l.google.com: type A, class IN, addr 216.239.53.9
55 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Pointer Query
•
Dato l’indirizzo IP di una macchina, si vuole conoscere l’hostname
•
A questo scopo si utilizza la parte del namespace in-addr.arpa
•
Il nome DNS corrispondente, ad esempio, all’indirizzo IP 140.252.13.33 è
33.13.252.140.in-addr.arpa
•
Sulle macchine Unix è possibile usare il seguente comando per fare questa
query:
host 140.252.13.34
Name: svr4.tuc.nao.edu
56 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
No.
1457
Time
2.292224
Source
193.204.59.21
Esempio di PTR Query
Destination
193.204.49.36
Prot. Info
DNS
Standard query PTR
227.59.204.193.in-addr.arpa
User Datagram Protocol, Src Port: 4943 (4943), Dst Port: domain (53)
Domain Name System (query)
Transaction ID: 0x0004
Flags: 0x0100 (Standard query)
0... .... .... .... = Response: Message is a query
.000 0... .... .... = Opcode: Standard query (0)
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query recursively
.... .... .0.. .... = Z: reserved (0)
.... .... ...0 .... = Non-authenticated data OK: Non-authenticated data is
unacceptable
Questions: 1, Answer RRs: 0, Authority RRs: 0, Additional RRs: 0
Queries
227.59.204.193.in-addr.arpa: type PTR, class IN
57 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
No. Time
1461 2.299882
Esempio di PTR Query: risposta
Source
193.204.49.36
Destination
193.204.59.21
Protocol Info
DNS
Standard query response PTR
dee227.poliba.it
User Datagram Protocol, Src Port: domain (53), Dst Port: 4943 (4943)
Domain Name System (response)
Transaction ID: 0x0004
Flags: 0x8580 (Standard query response, No error)
1... .... .... .... = Response: Message is a response
.000 0... .... .... = Opcode: Standard query (0)
.... .1.. .... .... = Authoritative: Server is an authority for domain
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query recursively
.... .... 1... .... = Recursion available: Server can do recursive queries
.... .... .0.. .... = Z: reserved (0)
.... .... ..0. .... = Answer authenticated: Answer/authority portion was not
authenticated by the server
.... .... .... 0000 = Reply code: No error (0)
Questions: 1
Answer RRs: 1
Authority RRs: 4
Additional RRs: 4
58 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Esempio di PTR Query: risposta (2)
Answers
227.59.204.193.in-addr.arpa: type PTR, class IN, dee227.poliba.it
Name: 227.59.204.193.in-addr.arpa
Type: PTR (Domain name pointer)
Class: IN (0x0001)
Time to live: 12 hours
Data length: 18
Domain name: dee227.poliba.it
59 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Esempio di PTR Query: risposta (3)
Authoritative nameservers
59.204.193.in-addr.arpa: type NS, class IN, ns cstar.poliba.it
59.204.193.in-addr.arpa: type NS, class IN, ns server2.garr.net
59.204.193.in-addr.arpa: type NS, class IN, ns anthares.poliba.it
59.204.193.in-addr.arpa: type NS, class IN, ns dns2.nic.it
Additional records
cstar.poliba.it: type A, class IN, addr 193.204.49.36
server2.garr.net: type A, class IN, addr 131.154.1.11
anthares.poliba.it: type A, class IN, addr 193.204.49.37
dns2.nic.it: type A, class IN, addr 193.205.245.8
60 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Query MX (Mail eXchange)
• Quando un messaggio e-mail viene inviato via Internet, il Mail
Transfer Agent (MTA) del mittente effettua una query DNS di tipo
MX per il nome di dominio del destinatario, che è la porzione
dell’indirizzo e-mail che segue la "@“
• Questa query restituisce una lista di host name dei mail exchange
servers che sono in grado di accettare la posta in ingresso per quel
dominio, insieme ad un preference number. L’MTA iniza ad inviare la
posta al server con preference number più basso
• Il meccanismo di query MX fornisce la possibilità di avere mail
servers multipli per un singolo dominio
61 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
Comando nslookup
A.A. 20062006-07
• Comando nslookup
– Effettua una query al DNS per ottenere l’indirizzo IP a partire da un
dato hostname:
$ nslookup sisinflab.poliba.it
Server:
Address:
193.204.49.36
193.204.49.36#53
sisinflab.poliba.it
canonical name = www-cirp.poliba.it.
Name:
www-cirp.poliba.it
Address: 193.204.59.75
62 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Comando host
• Comando host
– Conversione hostname → indirizzo IP:
$ host sisinflab.poliba.it
sisinflab.poliba.it is an alias for www-cirp.poliba.it
www-cirp.poliba.it has address 193.204.59.75
– Conversione indirizzo IP → hostname:
$ host 193.204.59.227
227.59.204.193.in-addr.arpa domain name pointer
dee227.poliba.it
63 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Comando host (2)
Il comando host può essere anche utilizzato per query di
tipo MX:
$ host -t MX poliba.it
poliba.it mail is handled by 10 mail.poliba.it
poliba.it mail is handled by 20 anthares.poliba.it
64 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Comando dig
• Il comando dig (domain information groper) è un
flessibile strumento per interrogare i name server
• Sintassi:
dig name type
dove name è il nome della risorsa
type è il tipo di query (A, PTR, CNAME, MX, …)
65 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
$
Esempio di query di tipo A con dig
dig sisinflab.poliba.it A
; <<>> DiG 9.3.1 <<>> sisinflab.poliba.it A
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15837
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4,
ADDITIONAL: 4
;; QUESTION SECTION:
;sisinflab.poliba.it.
;; ANSWER SECTION:
sisinflab.poliba.it.
cirp.poliba.it.
www-cirp.poliba.it.
193.204.59.75
66 di 100
IN
A
43200
IN
CNAME
43200
IN
A
Protocolli di livello applicativo
www-
M. Ruta
Telematica II
A.A. 20062006-07
Esempio di query di tipo A con dig (2)
;; AUTHORITY SECTION:
poliba.it.
poliba.it.
poliba.it.
poliba.it.
604800
604800
604800
604800
IN
IN
IN
IN
NS
NS
NS
NS
cstar.poliba.it.
server2.garr.net.
anthares.poliba.it.
dns2.nic.it.
;; ADDITIONAL SECTION:
cstar.poliba.it.
server2.garr.net.
anthares.poliba.it.
dns2.nic.it.
43200
74326
172800
74049
IN
IN
IN
IN
A
A
A
A
193.204.49.36
193.206.141.38
193.204.49.37
193.205.245.8
;;
;;
;;
;;
Query time: 5 msec
SERVER: 193.204.49.36#53(193.204.49.36)
WHEN: Mon May 29 15:51:49 2006
MSG SIZE rcvd: 236
67 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Esempio di PTR query con dig
dig 75.59.204.193.in-addr.arpa PTR
; <<>> DiG 9.3.1 <<>> 75.59.204.193.in-addr.arpa PTR
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id:
28478
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY:
4, ADDITIONAL: 4
;; QUESTION SECTION:
;75.59.204.193.in-addr.arpa.
IN
;; ANSWER SECTION:
75.59.204.193.in-addr.arpa. 43200 IN
cirp.poliba.it
68 di 100
Protocolli di livello applicativo
PTR
PTR
www-
M. Ruta
Telematica II
A.A. 20062006-07
Esempio di PTR query con dig (2)
;; AUTHORITY SECTION:
59.204.193.in-addr.arpa.
59.204.193.in-addr.arpa.
59.204.193.in-addr.arpa.
59.204.193.in-addr.arpa.
;; ADDITIONAL SECTION:
cstar.poliba.it.
server2.garr.net.
anthares.poliba.it.
dns2.nic.it.
;;
;;
;;
;;
604800
604800
604800
604800
43200
73768
172800
73491
IN
IN
IN
IN
NS
NS
NS
NS
cstar.poliba.it.
server2.garr.net.
anthares.poliba.it.
dns2.nic.it.
IN
IN
IN
IN
A
A
A
A
193.204.49.36
193.206.141.38
193.204.49.37
193.205.245.8
Query time: 7 msec
SERVER: 193.204.49.36#53(193.204.49.36)
WHEN: Mon May 29 16:01:08 2006
MSG SIZE rcvd: 236
69 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Esempio di query MX con dig
dig poliba.it MX
; <<>> DiG 9.3.1 <<>> poliba.it MX
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14562
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL:
5
;; QUESTION SECTION:
;poliba.it.
;; ANSWER SECTION:
poliba.it.
poliba.it.
70 di 100
172800
172800
IN
MX
IN
IN
MX
MX
Protocolli di livello applicativo
10 mail.poliba.it.
20 anthares.poliba.it.
M. Ruta
Telematica II
A.A. 20062006-07
Esempio di query MX con dig (2)
;; AUTHORITY SECTION:
poliba.it.
poliba.it.
poliba.it.
poliba.it.
604800
604800
604800
604800
IN
IN
IN
IN
NS
NS
NS
NS
cstar.poliba.it.
server2.garr.net.
anthares.poliba.it.
dns2.nic.it.
;; ADDITIONAL SECTION:
mail.poliba.it.
anthares.poliba.it.
cstar.poliba.it.
server2.garr.net.
dns2.nic.it.
43200
172800
43200
73632
73355
IN
IN
IN
IN
IN
A
A
A
A
A
193.204.49.50
193.204.49.37
193.204.49.36
193.206.141.38
193.205.245.8
;;
;;
;;
;;
Query time: 7 msec
SERVER: 193.204.49.36#53(193.204.49.36)
WHEN: Mon May 29 16:03:24 2006
MSG SIZE rcvd: 240
71 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Il comando whois
Per ottenere informazioni sulla registrazione di un certo dominio, si utilizza il comando whois
(interrogazione al livello del NIC):
$ whois poliba.it
domain:
org:
descr:
admin-c:
tech-c:
postmaster:
zone-c:
zone-c:
nserver:
nserver:
nserver:
dom-net:
dom-net:
dom-net:
dom-net:
remarks:
72 di 100
poliba.it
Politecnico di Bari
Technical University
CP1399-ITNIC
VG371-ITNIC
LG804-ITNIC
VG371-ITNIC
LG804-ITNIC
193.204.49.36 deecom04.poliba.it
dns2.nic.it
area.area.ba.cnr.it
193.204.48.0 193.204.49.0 193.204.50.0
193.204.52.0 193.204.53.0 193.204.54.0
193.204.56.0 193.204.57.0 193.204.58.0
193.204.60.0 193.204.61.0 193.204.62.0
Fully-managed
Protocolli di livello applicativo
193.204.51.0
193.204.55.0
193.204.59.0
193.204.63.0
M. Ruta
Telematica II
A.A. 20062006-07
Il comando whois
mnt-by:
created:
expire:
source:
GARR-MNT
before 960129
20170129
IT-NIC
person:
address:
address:
address:
nic-hdl:
source:
Carmine Pappalettere
DPPI - Politecnico di Bari
viale Japigia, 182
I-70126 Bari
CP1399-ITNIC
IT-NIC
person:
address:
address:
address:
nic-hdl:
source:
Valentino Gratton
CECAP - Politecnico di Bari
via Orabona, 4
I-70125 Bari
VG371-ITNIC
IT-NIC
person:
address:
address:
address:
nic-hdl:
source:
Luigi Gatto
CECAP - Politecnico di Bari
via Orabona, 4
I-70125 Bari
LG804-ITNIC
IT-NIC
73 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Server DNS BIND
• Il più diffuso server DNS è BIND (Berkeley Internet Name Domain
server). Il daemon del server viene chiamato named
• Ci sono 2 configurazioni tipiche:
– Authoritative-only nameserver
• Risolve solo gli indirizzi del dominio per cui è autoritativo
– DNS caching server
• Risolve tutti gli indirizzi, memorizzandoli in una cache. Non è autoritativo
• Può essere installato su una macchina personale per velocizzare le richieste
DNS grazie al caching
74 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Configurazione di un caching name server
Il file di configurazione principale è /etc/named.conf:
// directory dove vengono cercati i file di configurazione
options {
directory "/var/named";
};
// nel file root.hints ci sono gli indirizzi IP dei root name servers
zone "." {
type hint;
file "root.hints";
};
// Questo comando significa che stiamo definendo la zona
// 0.0.127.in-addr.arpa, che il nostro è il server primario e che le
// informazioni per questa zona sono memorizzate in un file chiamato
// pz/127.0.0.
zone "0.0.127.in-addr.arpa" {
type master;
file "pz/127.0.0";
};
75 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Configurazione di una zona
Il file di configurazione di una zona ha il seguente formato (file pz/127.0.0). In esso sono definiti 3
Resource Records: SOA (Start of Authority), NS (Name server) e PTR
$TTL 3D
// descrive la zona, il suo name server, il responsabile, la versione del file(1),
// impostazioni per il caching, il name server secondario ed il TTL
@
IN
SOA
ns.linux.bogus. hostmaster.linux.bogus. (
1
; Serial
8H
; Refresh
2H
; Retry
4W
; Expire
1D)
; Minimum TTL
// dice che il name server autoritativo per questo dominio è ns.linux.bogus.
NS
ns.linux.bogus.
// dice che l’host 127.0.0.1 ha come hostname localhost
1
PTR
localhost.
76 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Reti peer-to-peer
• Una rete di computer peer-to-peer (P2P) sfrutta
principalmente la potenza di calcolo e la bandwidth di
tutti i partecipanti alla rete piuttosto che concentrarla su
un relativamente piccolo numero di server
• Tali reti sono utili per diversi scopi:
– File sharing
– Trasmissione di dati in realtime, come ad esempio traffico
telefonico o di videoconferenza
77 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Reti peer-to-peer (2)
• Una rete peer-to-peer “pura” non prevede il concetto di
client o server, ma solo nodi peer paritetici che a
seconda dei casi agiscono sia da "client" che da "server"
per gli altri nodi della rete
• Questo modello di organizzazione della rete differisce da
quello client-server dove solitamente la comunicazione è
verso o da un server centrale
78 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Classificazione
• Reti peer-to-peer pure:
– I peer agiscono come client e server
– Non esiste un server centrale che gestisce la rete
– Non esiste un router centrale
• Reti peer-to-peer ibride:
– Hanno un server centrale che mantiene le informazioni sui peers
– I peer si occupano della memorizzazione delle risorse, rendono
note al server centrale le risorse condivise e consentono il
download delle risorse ai peer che le richiedano
79 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Vantaggi delle reti P2P
•
Una caratteristica importante delle reti peer-to-peer è che tutti i client
forniscono risorse quali bandwidth, storage, e capacità di calcolo
•
Al crescere del numero di peer, la capacità totale del sistema aumenta di
conseguenza. Ciò non è vero per una architettura client-server con un
numero fisso di server, in cui aggiungere nuovi client potrebbe significare
trasferimento dati più lento per tutti gli utenti
•
La natura distribuita delle reti peer-to-peer aumenta la robustezza in caso di
guasti replicando i dati su peer multipli, e – nelle reti P2P pure –
consentendo ai peer di trovare i dati senza utilizzare un index server
centralizzato
•
Configurazione dinamica della rete, mancata necessità di apparati costosi
80 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Attacchi alle reti P2P
• poisoning attacks (fornire file i cui contenuti sono diversi da quelli
descritti, possibilità di effettuare un’anteprima)
• polluting attacks (inserire chunk/pacchetti “cattivi” in un file valido)
• defection attacks (utenti o software che fanno uso della rete senza
contribuire ad essa condividendo risorse, penalizzazione di utenti
non partecipativi)
• inserimento di virus nei dati trasportati (i file scaricati potrebbero
essere infetti da virus o malware)
• malware nel software di rete stesso (il software distribuito contiene
spyware: clamoroso il caso kazaa che contiene spyware)
81 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Attacchi alle reti P2P (2)
• denial of service attacks (attacchi che rendono la rete molto lenta
saturandola di richieste tanto da farla apparire come fuori servizio)
• filtering (gli operatori di rete potrebbero impedire il transito dei
pacchetti delle rete p2p imponendo restrizioni su alcune delle porte
più tipicamente adoperate)
• identity attacks (identificare gli utenti della rete e perseguirli
legalmente approfittando del passaggio in chiaro degli IP)
• spamming (inviare informazioni non richieste agli utenti attraverso
la rete)
82 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Esempio di rete P2P: BitTorrent
• BitTorrent è un protocollo per reti P2P ibride progettato per
distribuire grandi quantità di dati senza far uso di costosi server e
senza necessitare di grande larghezza di banda
• E’ stato ideato nel 2001 da Bram Cohen
• Si basa sul principio che durante il trasferimento di un file, chi
scarica lascia inutilizzata la propria banda in uscita:
• BT risolve lo spreco facendo sì che un client faccia scaricare lo
stesso file ad altri client, usando la propria banda in upload
83 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Schema di funzionamento di BT
Seeder
Tracker
Leechers
Connessione al Tracker
Download dal Seeder
84 di 100
Protocolli di livello applicativo
Scambio file tra Leechers
M. Ruta
Telematica II
A.A. 20062006-07
Funzionamento di BT
•
Si scarica, da un web server, un file .torrent contenente informazioni sul
file che si vuole scaricare
•
Si usa il client BT per aprire il file .torrent e collegarsi al Tracker, un
server che contiene la lista dei Seeder (client che dispongono di tutto il file)
e dei Leecher (client che dispongono solo di una parte del file)
•
Il download vero e proprio avviene sia dai Seeder che dagli altri Leecher
•
Quindi la macchina di un utente fa sia da client che da server in riferimento
a sessioni diverse
•
E’ necessario un server centrale (Tracker) per coordinare lo scambio dei file
•
Il vantaggio è quello di “spalmare” il consumo di banda visto che il tracker è
solo un lookup service rispetto a FTP (alcune distribuzioni Linux vengono
diffuse via BitTorrent)
85 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Limiti del protocollo
• BitTorrent non offre ai suoi utenti l’anonimato. Poichè i tracker
mantengono una lista dei nodi che condividono file, è possibile
ottenere l’indirizzo IP sia degli utenti correnti ed anche di quelli che
hanno condiviso file in precedenza (utilizzo di file di log)
• In mancanza di seeder un download non può essere portato a
conclusione
• Un tracker è un single point of failure
– Ridondanza dei tracker per migliorare l’affidabilità
• Gli utenti che condividono i file hanno poco incentivo a diventare
seeder dopo che hanno completato il loro download. Ciò si traduce
in una minore possibilità di ottenere i torrent più vecchi
86 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Paragone con altri sistemi P2P
• Il metodo usato da BitTorrent per distribuire i file è simile a quello
della rete eDonkey2000, ma i nodi di quest’ultima rete solitamente
condividono e scaricano un maggiore numero di file
• La bandwidth disponibile in upload per ciascun trasferimento è
ridotta di conseguenza (ciò è critico specie per connessioni digitali
DSL asimmetriche)
• I trasferimenti su BitTorrent sono solitamente molto veloci, poiché
ogni istanza del client si concentra nel trasferimento di un singolo
file
• Molti nuovi sistemi P2P hanno dei meccanismi per incentivare
l’upload dei file. Ad esempio eMule ha un sistema di crediti in cui un
nodo “ringrazia” gli altri nodi che gli forniscono file incrementando la
loro priorità nella sua coda
87 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Paragone con altri sistemi P2P (2)
• BitTorrent non fornisce un metodo per indicizzare i file condivisi. La
conseguenza di ciò è che pochi web server sono disposti ad ospitare
i file .torrent
• Sono disponibili un minor numero di file rispetto alla rete eDonkey
che ingloba un servizio di indicizzazione
• Recentemente, Bram Cohen ha rilasciato un proprio BitTorrent
search engine, che cerca i torrent nei più diffusi tracker BitTorrent,
anche se esso non ospita i file torrent stessi
• Uno degli obiettivi per la prossima versione 4.1.2 di BitTorrent è
l’uso di tracker distribuiti, che eliminerebbe il single point of failure
del sistema
88 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Codifica bencoding
• Tutti i dati presenti nel file torrent usano la codifica
bencoding
• Le stringhe sono codificate nel seguente modo:
<lunghezza stringa (decimale)>:<string data>
Esempio: 4:spam rappresenta la stringa "spam“
• Gli interi sono codificati nel seguente modo:
i<intero decimale in ASCII>e
Esempio: i3e rappresenta l’intero "3“
89 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Codifica bencoding (2)
• Le liste sono codificate nel seguente modo:
l<valori bencoded>e
Esempio: l4:spam4:eggse rappresenta la lista: ["spam", "eggs"]
• I dizionari sono codificati come coppie chiave/valore:
d<bencoded string><bencoded element>e
Esempio: d3:cow3:moo4:spam4:eggse rappresenta il dizionario:
{ "cow" ⇒ "moo", "spam" ⇒ "eggs" }
90 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Struttura del file .torrent
• Il contenuto del file .torrent è un dizionario bencoded, contenente le
seguenti chiavi:
– info(*) : un dizionario che descrive il file da scaricare
– announce(*): announce URL del tracker
– creation date: data di creazione del file (intero in formato UNIX epoch
[in sec a partire da 1/1/1970])
– comment: stringa con i commenti dell’autore
– created by: nome e versione del programma usato per generare il file
*: voce obbligatoriamente presente
91 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Struttura del file .torrent (2)
• Il dizionario info contiene le seguenti voci:
–
–
–
–
length(*): lunghezza del file in byte (intero)
md5sum: stringa di 32 caratteri hex con la md5 sum del file
name(*): nome del file (stringa)
piece length(*): lunghezza in byte di ciascun “pezzo” in cui è
suddiviso il file (intero)
– pieces (*): valore di hash a 20 byte calcolato con SHA1 per
ciascun chunk (meccanismo di error control a fingerprint)
• Info può contenere anche informazioni su file multipli
associati allo stesso file .torrent
92 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Protocollo usato dal tracker
• Il tracker è un servizio che risponde alle richieste HTTP GET
• GET consente di passare dei parametri (separati da “&”) con la
richiesta HTTP purché la loro dimensione non ecceda 1024 byte
(massima dimensione di una richiesta di un URI). I parametri
risultano essere visibili
• Le richieste includono delle metriche fornite dai client che aiutano il
tracker a mantenere delle statistiche globali
• Le risposte contengono una lista di peer che contengono il file da
scaricare
• I parametri vengono codificati nella URL (contenuta nel file .torrent)
93 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Parametri della richiesta
• info_hash: 20-byte SHA1 hash del valore del campo info nel
.torrent
• peer_id: stringa di 20-byte usata come ID per il client, generata
allo startup del client
• port: numero della porta su cui il client è in ascolto (tipicamente
6881-6889)
• uploaded: numero totale di byte trasferiti in upload
• downloaded: numero di byte scaricati
• left: numero di byte da scaricare
• event: uno tra i valori started, completed, stopped che indicano lo
stato del trasferimento
• ip: indirizzo IP del client (opzionale). Il tracker può comunque
dedurlo dalla connessione TCP
94 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Formato della risposta
• Il tracker risponde con un documento nel tipo MIME
text/plain contenente un dizionario bencoded con le
seguenti chiavi:
– failure reason: motivo del problema (se presente le altre chiavi
potrebbero non essere presenti)
– interval: intervallo, in secondi, che il client deve attendere
prima di mandare una nuova richiesta al tracker
•• Meccanismo
Meccanismodidicontrollo
controllodella
dellabanda
banda
– tracker id:• identificativo
univoco
del
tracker
• IIclient
clientpossono
possonomandare
mandareuna
unarichiesta
richiestaalaltracker
trackerprima
prima
– complete: numero
dei
peer
con
il
file
completo
(
seeders
)
del
termine
specificato,
solo
se
viene
invocato
un
evento
del termine specificato, solo se viene invocato un evento
(ad
stopped
completed)
se
– incomplete: numero
dei peer
conooparti
di file o(oleechers
) ha
(adesempio
esempio
stopped
completed)
seililclient
client
ha
bisogno
didiconoscere
un
maggior
di peer
bisogno
conoscere
unseguenti
maggiornumero
numero
– peers: è una lista
di dizionari
con le
chiavi: di peer
• peer id, ip, port
95 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Peer wire protocol
• Il peer protocol facilita lo scambio dei chunk come
descritto nel file .torrent
• Un client deve mantenere informazioni di stato per
ciascuna connessione attiva on un altro peer remoto:
– choked: indica se il peer remoto ha messo in stato di “choked”
questo client. Quando accade ciò il peer remoto non accetta
richieste da questo client
– interested: indica se il peer remoto è interessato a qualcosa
che il nodo corrente ha da offrire. E’ una notifica che il peer
remoto inizierà a richiedere blocchi quando il client lo pone in
stato “unchoked”
96 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Peer wire protocol (2)
• Un blocco viene scaricato dal client quando questo è
interessato in un peer, e quel peer non ha messo il client
in choking
• Viene fatto l’upload di un blocco da un client ad un peer
quando il client non ha messo in stato di choking il peer,
e quel peer è interessato al client
• E’ importante per il client tenere i suoi peer informati se
è interessato a blocchi da essi posseduti
97 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Message flow
• Il peer wire protocol consiste di un handshake iniziale
• Dopo questo, i peer comunicano attraverso uno scambio
di messaggi a lunghezza prefissata
98 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Handshake
• L’handshake è un messaggio obbligatorio e deve essere
il primo messaggio trasmesso dal client
• La sintassi è:
<pstrlen><pstr><reserved><info_hash><peer_id>
–
–
–
–
pstrlen: lunghezza di <pstr>, come singolo raw byte
pstr: stringa che identifica il protocollo
reserved: 8 byte riservati. (attualmente posti a 0)
info_hash: 20-byte SHA1 hash del valore del campo info nel file
torrent
– peer_id: 20-byte string usata come ID per il client
99 di 100
Protocolli di livello applicativo
M. Ruta
Telematica II
A.A. 20062006-07
Formato dei messaggi
• Tutti i restanti messaggi del protocollo hanno la
seguente struttura:
<length prefix><message ID><payload>
length prefix è un valore a 4 byte big-endian
message ID è un singolo carattere
• Ad esempio il messaggio di choke:
choke: <len=0001><id=0>
unchoke: <len=0001><id=1>
interested: <len=0001><id=2>
100 di 100
Protocolli di livello applicativo
M. Ruta