Parte II - Reti di Calcolatori Applicazioni di Rete Domain Name System (DNS) IL LIVELLO APPLICAZIONI DNS, SNMP e SMTP Simple Network Manag. Protocol (SNMP) Posta elettronica Multipurpose Internet Mail Extensions (MIME) Simple Mail Manag. Protocol(SMTP) Post Office Protocol (POP3) Interactive Mail Access Protocol (IMAP) 6-1 6-2 Livello Applicativo Porte TCP Indirizzo IP 138.190.12.34 www telnet Indirizzi Ethernet 00-21-52-21-C6-84 Applicazioni di Rete Nel Livello Applicazioni abbiamo programmi applicativi e servizi usati dagli utenti della rete. Esempi significativi: Domain Name System (DNS) Risoluzione dei nomi delle risorse sulla rete. SNMP () Gestione di risorse di rete. POP3 (Post Office Protocol) e IMAP (Interactive Mail Access Protocol) Accesso remoto alle caselle di posta elettronica. Simple Mail Transfer Protocol (SMTP) Gestione della posta elettronica. FTP (File Transfer Protocol) Trasferimento file remoti. HTTP (HyperText Transfer Protocol) Server WWW e browsers Web. Telnet, Usenetnews, ssh,... 6-4 Domain Name System (DNS) Gli indirizzi delle macchine in rete sono definiti in formato numerico, ma sono più facili da usare se sono indicati come delle stringhe. Sono più facili da ricordare e da capire. Corrisponde a www.deis.unical.it 160.97.27.7 Gli utenti usano nomi simbolici ma per comunicare sulla rete servono gli indirizzi IP numerici. Quando gli host sono pochi la tabella di conversione può essere memorizzata localmente ad ogni host (es, /etc/hosts in Unix). Il DNS è distribuito: ogni sito mantiene il suo database relativo agli host locali eseguendo su una macchina il server DNS che può essere interrogato da altri siti su Internet. Il DNS è un database distribuito che permette di convertire i nomi simbolici degli host negli indirizzi IP numerici. 6-5 Lo Spazio dei Nomi in Internet I nomi in Internet sono organizzati in modo gerarchico. I nodi rappresentano domini e le foglie domini senza sottodomini. it 6-6
I domini di Internet I nomi dei componenti sono stringhe (case-insensitive) fino a 63 caratteri mentre il nome completo di un cammino non può superare 255 caratteri. Un nome di dominio assoluto termina con un punto (es. www.unical.it.). I nomi che non terminano con un punto sono relativi ad un contesto particolare. Ciascun dominio controlla l allocazione dei suoi sottodomini. Un dominio è organizzato in base ad esigenze organizzative e non ad aspetti fisici della rete. I DominiGenerici com edu gov int mil net org organizzazioni commerciali università USA organizzazioni governative USA organizzazioni internazionali rete militare USA fornitori di servizi di rete organizzazioni no profit In genere non sono riferiti ad una posizione geografica. Sono in fase di attivazione nuovi domini generici (es. info) Alcuni paesi inseriscono sottodomini equivalenti a quelli generici (es,.ac.au e.com.au - istituzioni accademiche e commerciali dell Australia) Il NIC gestisce il primo livello; i sottolivelli sono gestiti localmente (gestione DNS servers, assegnazione nomi, ecc.). 6-7 6-8 Descrittori di Risorsa Ciascun dominio può essere associato ad un insieme di descrittori di risorse (resource records). Quando un DNS riceve un nome di dominio per la sua risoluzione invia in risposta i descrittori di risorsa associati a quel nome. Un DNS mappa nomi di domini in descrittori di risorsa. Un descrittore di risorsa è una quintupla: NomeDominio TempoDiVita Tipo Classe Valore Tipi didescrittore A Indirizzo IP NS Name server. Permettono di specificare i name server dei domini radice. PTR alias onome associato a un indirizzo IP (risoluzione inversa). CNAME Contiene il nome reale (canonico) per nomi che sono alias di host es. wwwinfo.deis.unical.it CNAME si.deis.unical.it. HINFO Informazioni sull host (CPU, Sistema Operativo,...) MX Scambio posta (Mail Exchange). Permette di definire nomi virtuali o un host alternativo per la consegna della posta elettronica, es. deis.unical.it MX mail.deis.unical.it 6-9 6-10 Name Server e Zone Una zona è un sottoalbero del DNS amministrato separatamente. Per evitare problemi lo spazio dei nomi DNS è suddiviso in zone non sovrapposte. Ogni zona contiene un name server primario e uno o più name server secondari. Name Server Un Name Server ha autorità per una o più zone. I Name Server secondari ottengono le informazioni dal Name Server primario interrogandolo periodicamente, mentre i Name Server primari leggono le loro informazioni da un file. Quando si aggiunge un nuovo host nella zona si aggiunge una riga alla tabella presente sul Name Server primario. I messaggi per il servizio DNS sono inseriti in pacchetti UDP o TCP. 6-11 6-12
Il Resolver Quando un applicazione deve convertire un nome di host nell indirizzo IP o viceversa, chiama una procedura resolver che contatta il DNS server del suo dominio. Quando un resolver chiede di risolvere il nome al name server locale: Il nome dell host è locale, viene restituito il record di autorità. Il nome è relativo ad un host di un altra zona viene effettuata una interrogazione ricorsiva su più server per ottenere l indirizzo (a meno che non sia nella cache). In Java la procedura è incapsulata nella classe InetAddress. nslookup è un programma client che permette di esplorare la tabella del Name Server. Interrogazione Ricorsiva Si propaga la richiesta al name server di livello superiore: si.deis.unical.it www.unito.it? deis.unical.it unical.it it unito.it La richiesta non si propaga ai livelli superiori se un name server ha la risposta nella cache. Le risposte presenti nella cache non sono con autorità in quanto potrebbe esserci incoerenza con il vero valore. I record sono inseriti nella cache con un time-to-live per indicare il valore temporale della loro validità. OK 6-13 6-14 SNMP definisce un protocollo e un insieme di meccanismi per la gestione e il controllo di una rete di calcolatori. Il modello SNMP (v2) consiste di: Nodi di rete gestiti. Nodi di rete gestiti: host, router, bridge, dischi, stampanti,... Stazioni di gestione: host con compiti di gestione. Informazioni di gestione: insiemi di oggetti che compongono la MIB (Management Information Base). Un protocollo di gestione. Stazioni di gestione. Informazioni di gestione. Un protocollo di gestione. 6-15 6-16 Le Stazioni di gestione eseguono dei processi di gestione che comunicano con processi sui nodi gestiti detti agenti SNMP. Un agente notifica alle stazioni di gestioni gli eventi anomali tramite una trap SNMP, mentre le stazioni eseguono il polling SNMP per rilevare eventuali malfunzionamenti. Un processo di gestione su una stazione invia una richiesta di informazioni ad un agente. L agente dovrà replicare con le informazioni richieste. I dati spediti utilizzano la sintassi di trasferimento Abstract Syntax Notation (ANS.1) che specifica gli oggetti e le regole di codifica. Il protocollo SNMP definisce sette messaggi da inviare: Get-request Get-next-request Get-bulk-request Set-request Inform-request SnmpV2-trap Reply richiede il valore di una o più variabili. richiede il valore della variabile successiva. richiede una tabella aggiorna una o più variabili descrizione della MIB locale segnalazione di una trap da agente a gestore messaggio di risposta. 6-17 6-18
La Posta Elettronica o Email Questa applicazione permette di scambiare dati tra due o più utenti identificati univocamente sulla rete. Gli standard RFC 821 e RFC 822 proposte da ARPANET sono stati accettati a scapito di altre proposte come X.400 proposto dal CCITT. Due sottosistemi: Useragent : agenti utenti che permettono di inviare e ricevere messaggi di posta. Transferagent : agenti di trasferimento che si occupano di far arrivare i messaggi dal mittente al destinatario. Questi implementano cinque funzioni base: composizione notifica eliminazione trasferimento visualizzazione Formatodei Messaggi (a) Posta normale (b) Posta elettronica 6-19 6-20 La PostaElettronica Agenti utente Programmi per leggere, comporre e gestire la posta e le mailboxes (es. Eudora, Netscape Messenger, Outlook, Pine, Mailtool) Possono utilizzare protocolli per la gestione di mailbox remote (POP3, IMAP). Agenti di trasferimento Gestiscono il trasferimento dei messaggi dalla sorgente alla destinazione e la ricezione dei messaggi sui server di posta. Sono programmi di sistema che sono eseguiti in background e usano il protocollo SMTP per trasferire i messaggi sulla rete (es. sendmail, postfix). Trasferimento di Email mittente destinatario Nodo Client agente utente agente utente Nodo Server coda della posta da spedire agente di trasferimento connessione TCP tramite la porta 25 mailboxes degli utenti SMTP agente di trasferimento 6-21 6-22 Indirizzi di Posta Elettronica Hanno il formato utente@host.dominio Gli indirizzi sono risolti dal DNS che individua il server a cui inviare il messaggio (eventualmente usa una richiesta MX) Il server di posta riceve i messaggi e li accoda nella mailbox dell utente. La mailbox è un file di testo in una directory specifica nel server (es. in Unix può essere /spool/mail/utente ) L utente può accedere alla posta localmente leggendo il file mailbox. Il client per la lettura della posta provvede a individuare i singoli messaggi nella mailbox. Campi Intestazione To: Indirizzo DNS del destinatario (o destinatari). Cc: Copia in carta carbone (indirizzi per conoscenza ) Bcc: Copia in carta carbone con indirizzi invisibili ai riceventi. From: indirizzo di ha scritto il messaggio (necessario). Sender: indirizzo di chi ha inviato il messaggio (opzionale). 6-23 6-24
Campi Intestazione (cont.) Received: Indica l agente che ha ricevuto il messaggio insieme a un timestamp. Viene inserito da ogni agente durante il trasferimento. Si puo cosi ricostruire il percorso della email. Date: Data e ora in cui il messaggio è stato inviato Reply -to: Indirizzo al quale inviare le risposte (reply) se diverso da From. Message-Id: Numero unico che individua il messaggio Subject: Argomento del messaggio Un Esempio di Intestazione Received: from haldo.deis.unical.it (haldo.deis.unical.it [160.97.27.7]) by si.deis.unical.it (8.11.4/8.11.4) with ESMTP id f6vn4vl04035 for <talia@si.deis.unical.it>; Tue, 31 Jul 2001 22:04:31-0100 (GMT) Received: from mail.cs.umn.edu (mail.cs.umn.edu [128.101.33.100]) by haldo.deis.unical.it (8.9.1b+Sun/8.9.1) with ESMTP id WAA01060 for <talia@deis.unical.it>; Tue, 31 Jul 2001 22:00:22 +0100 (WET DST) Received: from cs.umn.edu (nt20.cs.umn.edu [160.94.178.220]) by mail.cs.umn.edu (8.11.3/8.11.3) with ESMTP id f6vk2vi02949; Tue, 31 Jul 2001 15:03:07-0500 (CDT) Message-ID: <3B670EF1.C569EF08@cs.umn.edu> Date: Tue, 31 Jul 2001 15:02:57-0500 From: Michael Stewart <mstewart@cs.umn.edu> X-Mailer: Mozilla 4.7 [en] (WinNT; I) X-Accept-Language: en To: Domenico Talia <talia@deis.unical.it> CC: kumar@cs.umn.edu Subject: Talia - Kluwer Book Contribution (Complimentary Copy of Book Address) 6-25 6-26 Testo delle Email La posta è inviata come testo ASCII usando un codice a 7-bit trasmesso su 8 bit con il bit più significativo a 0. Non permette di trasmettere caratteri non ASCII con messaggi di email senza una opportuna codifica. La soluzione è stata quella di usare il formato MIME per permettere alle email di contenere e trasportare caratteri non ASCII. MIME definisce una struttura al corpo del messaggio e definisce come codificare i messaggi non ASCII. MIME Multipurpose Internet Mail Extensions (RFC 1521) Aggiunge dei campi di intestazione per definire la struttura del corpo del messaggio (è gestita dall agente utente) Mime-Version: Content-Type: Content-Transfer-Encoding: Content-ID: Content-Description: versione MIME tipo del messaggio modo di trasferimento identificatore unico contenuto del messaggio I tipi di contenuto sono organizzati in categorie predefinite. Ad es., text/plain, text/html, image/gif, multipart/mixed, application/octet-stream. 6-27 6-28 Esempi di Intestazioni MIME MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Length: 1240 Status: RO MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Content-Length: 354 MIME-Version: 1.0 Content-Type: text/html; charset="iso-8859-1" X-Priority: 3 X-MSMail-Priority: Normal Content-Length: 3705 Il Protocollo SMTP Il protocollo SMTP definisce la sequenza di comandi (inviati in ASCII) necessaria per il trasferimento dei messaggi usando una connessione TCP sulla porta 25 della macchina destinataria. Insieme minimale di comandi usati dal client: HELO <host> Saluta il server. MAIL From: <indirizzo> indica il mittente del messaggio. RCPT To: <indirizzo> Indica il destinatario. busta DATA Invio corpo del messaggio terminato da un punto (.) su una linea QUIT Chiude la connessione. 6-29 6-30
Gateway di Posta Elettronica Quando le macchine che si scambiano messaggi di posta elettronica non supportano tutte connessioni TCP occorre far uso di un gateway al livello delle applicazioni. Caselle Postali Remote Se non si usa una macchina che implementa il protocollo SMTP si può fare uso della posta elettronica tramite l accesso a caselle di posta remote. I protocolli di trasmissione che si usano in questo caso per spedire e ricevere messaggi di posta tramite caselle remote sono: Post Office Protocol(POP3) protocollo semplice per recuperare i messaggi e memorizzarli sulla macchina dell utente. Interactive Mail Access Protocol (IMAP) più complesso per permettere di leggere i messaggi conservandoli sul server di posta. Distributed Mail System Protocol (DMSP) permette di gestire la posta su più server e in maniera asincrona. 6-31 6-32 Funzionamento di un Cliente POP POP vs IMAP 6-33 6-34