Domain Name System () - finalità è un servizio per ottenere un altro servizio (HTTP, FTP, SMTP, ecc) Telematica II 14. Domain Name Service è un servizio che 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 hostname: per individuare un nome di un host in forma piu semplice da ricordare (p.e. host1.reply.light.com (canonical name) light.com (alias name)) alias di posta: fornisce l indirizzo IP o l hostname del Mail Server di un dominio a.cassanoa@poliba.it (query MX) Corso di Laurea in Ingegneria Informatica A.A. 2009-2010 2 Semestre il permette il load distribution consente la replica di Web mediante un insieme di indirizzi IP per un hostname canonico (p.e. google.com ha diversi web replicati) Prof. Giovanni Pascoschi 2 Domain Name System () Organizzazione gerarchica dello spazio dei nomi #1 root name. il (RFC 1034 e 1035) consiste di: uno schema gerarchico di nominazione (namespace), basato sul concetto di dominio (domain) un database distribuito che implementa lo schema gerarchico di nominazione top level domains second level domains arpa in-addr 140 com edu noao tuc gov int mil net org it Ciascuna label può essere lunga 63 caratteri us va reston fr un protocollo per il mantenimento informazioni sulle corrispondenze e la distribuzione delle Interrogazione tra Interrogazione client / Usato per la conversione indirizzo IPhostname 252 13 33 sun sun.tuc.noao.edu. (FQDN) 33.13.252.140.in-addr.arpa. cnri.reston.va.us. cnri generic domains country domains 3 4
Organizzazione gerarchica dello spazio dei nomi #2 Root name i top level domains (TLD) vengono gestiti direttamente dal NIC (Network Information Center) che ha sede in ogni nazione (p.e. www.nic.it) 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 ), il NIC delega la gestione alle singole organizzazioni vi sono 13 root name nel mondo essi corrispondono al dominio di livello piu alto :. (punto o root) ogni root name mantiene le corrispondenze con gli indirizzi dei top level domains per ciascuna zona ci deve essere un primario (autoritativo per quella zona) ed uno o più secondari per scopi di ridondanza un autoritativo gestisce direttamente le corrispondenze di un dominio (garanzia di una conversione corretta) ha l autorità per farlo i secondari mantengono copia delle corrispondenze aggiornata dinamicamente mediante query periodiche al primario (allineamento automatico dei dati) per servire il nodo radice esistono i cosiddetti root name unico nodo logico 13 nodi fisici nel mondo a Verisign, Dulles, VA c Cogent, Herndon, VA (also LA) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 21 locations) e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 36 other locations) b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA k RIPE London (also 16 other locations) i Autonomica, Stockholm (plus 28 other locations) m WIDE Tokyo (also Seoul, Paris, SF) 5 6 service distribuito TLD e Autoritativi il servizio è distribuito e non centralizzato, per evitare/limitare i seguenti effetti: single point of failure se vi è un guasto singolo, si corre il rischio di perdere l intero servizio volume di traffico se fosse centralizzato si creerebbe un enorme flusso di traffico dal relativo performance ridotte il database centralizzato sarebbe molto lontano dal punto di vista geografico maggiori latenze piu semplice manutenzione Top-level domain (TLD) responsabili per i domini com, org, net, edu,..., e tutti i domini al top-level di nazione it, uk, fr, ca, jp,... l azienda Network Solutions gestisce i s per il dominio top-level com un ente no-profit Educause gestisce il top-level edu s Autoritativi di sono quei a livello di organizzazioni, che forniscono i nomi degli host mappandoli con i loro IP per tutti i della stessa organizzazione (p.e. servizio Web, mail della IBM) possono essere gestiti da organizzazioni o ISP (p.e. libero) 7 8
Server Local Name Livelli di gerarchia does not strictly belong to hierarchy each ISP (residential ISP, company, university) has one. questi sono anche chiamati default name when host makes query, query is sent to its local fungono da proxy di cache inoltrando le richieste nella gerarchia a livello superiore TLD name com root name (13)... TLD name it Autoritativi...... local name 9 10 Principi di funzionamento Risoluzione iterativa di un nome root Cosa succede quando un name non contiene le informazioni richieste? sono possibili 3 modalità risoluzione iterativa risoluzione ricorsiva risposta non autoritativa L host host1.poliba.it desidera conoscere l indirizzo di host2.mydomain.eu query iterativa il contattato risponde con il nome del da contattare non conosco questo nome, bisogna chiedere a questo occupazione di banda e carico computazionale maggiore per il local local dns.poliba.it 1 2 8 host richiedente host1.poliba.it 3 4 5 7 6 TLD (eu) autoritativo dns.mydomain.eu host2.mydomain.eu 11 12
Risoluzione ricorsiva di un nome Risposta non autoritativa root L host host1.poliba.it desidera conoscere l indirizzo di host2.mydomain.eu query ricorsiva trasferisce il carico di ricercare il nome di risoluzione al name contattato aumenta il carico di elaborazione per i vari name, mentre diminuisce per il local name anche la banda puo essere a maggior delay local dns.poliba.it 1 2 8 host richiedente host1.poliba.it 7 6 5 3 4 TLD (eu) autoritativo dns.mydomain.eu host2.mydomain.eu Local name 2 1 Root name I implementano meccanismi di caching la cache del local contengono precedenti risoluzioni riduzione del delay possibile non completa correttezza dei risultati a causa di meccanismi fraudolenti di alterazione della cache è necessario distinguere risposte autoritative da quelle non autoritative Query Non Authoritative Reply 13 14 Meccanismi di caching e aggiornamento records Tipologia dei record ogni name (a qualsiasi livello) memorizza il mapping nella sua cache i vari record nella cache scompaiono dopo un po di tempo (timeout) le informazioni dei TLD sono normalmente conservate nelle cache dei local name s, per limitare gli accessi ai root name s i meccanismi di aggiornamento/notifica sono governate dall IETF RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html (gruppo di lavoro IETF) i record (Resource Record RR), che individuano il mapping tra nomi simbolici e indirizzi IP e che sono memorizzati nel database, adottano il seguente formato (ttl time to live) type=a name è l hostname value è l indirizzo IP type=ns name èildominio(p.e. poliba.it) value è l hostname del name autoritativo per questo dominio (p.e. dns.poliba.it) RR format: (name, value, type, ttl) type=cname name è il nome alias per alcuni nomi canonici (il nome reale) (p.e. www.google.com èin realtà www.l.google.com) value èilnomecanonico type=mx value è il nome del mail associato al nome name 15 16
Formato di un messaggio (query e response) Flags 17 identificativo univoco intero a 16 bit del messaggio (transaction ID) numero di query (p.e. in SMTP con piu destinatari) numero di risposte autoritative numero di risposte aggiuntive risposte autoritative 0 15 16 31 Identificazione Numero di domande Numero di RR assoluti Flags Numero di Risposte RR Numero di RR aggiuntivi Domande (numero di domande variabile) Risposte (numero variabile di RR) Assoluti (numero variabile di RR) Informazioni aggiuntive (numero variabile di RR) proprietà generali del pacchetto header numero di risposte convenzionali (generiche) header per ogni domanda risposte convenzionali QR opcode AA TC RD RA Z rcode 1 4 1 1 1 1 3 4 QR : 0 significa che il messaggio è una query, 1 una risposta opcode: 0 standard query (name IP), 1 query inversa (IP name), 2 status, 3 non assegnato, 4 notifica, 5 update, 6-15 non assegnati AA: 1 significa che il name interrogato è autoritativo per il dominio nella query (authorative answer solo per le risposte) TC: 1 significa che le dimensioni della risposta superano i 512 bytes (dim max UDP)- truncated RD: 1 significa che si vuole una query ricorsiva, 0 iterativa (solo per query) RA: 1 significa che il supporta la risoluzione ricorsiva (solo per risposte) Z: 1 bit riservato per uso futuro (sempre a 0) + 2 bit AD (Authenticated Data) per le answer (1 authenticated data/0 no) + 3 bit CD (checking disabled) per richiesta risposta non authenticated (0 ammesso/1 non ammesso) rcode: codice di ritorno: 0 nessun errore, 1 errore formato, 2 failure, 3 errore nel nome, 4 non implementato, 5 query rifiutata, ecc 18 Formato del Resource Record (RR) Pacchetto di query di tipo A (name IP diretta) 0 15 16 31 tipo Lunghezza dati nome dominio time-to-live dati classe dati No. Time Source Destination Protocol Info 1405 3.853009 193.204.59.21 193.204.49.36 Standard query A www.google.it Flags: 0x0100 (Standard query) 0............ = Response: Message is a query.000 0......... = Opcode: Standard query (0) primario poliba.it.....0....... = Truncated: Message is not truncated......1...... = Recursion desired: Do query recurs........0..... = Z: reserved (0).........0... = Non-authenticated data OK: tipo: 1 indica che è richiesto un indirizzo IP per quel nome di dominio (query di tipo A o diretta),12 indica che si richiede l hostname corrispondente ad un indirizzo IP (PTR query pointer query o query inversa) 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 bytes del campo dati Q/A/AA/AD: 1/0/0/0 Queries Name: www.google.it: type A, class IN Queries / Answers / Authoritative / Additional risposte non autenticate ammesse 19 20
Pacchetto di risposta #1 Pacchetto con la risposta #2 No. Time Source Destination Protocol Info 1406 3.857705 193.204.49.36 193.204.59.21 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......... 0000 = Reply code: No error (0) Questions: 1 Answer RRs: 4 Authority RRs: 4 Additional RRs: 4 21 Answers www.google.it: type CNAME, class IN, TTL 3d1h1m19s, cname www.google.com 22 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 : diretta IP due indirizzi per il load distribution nome canonico (alias) Pacchetto con la risposta #3 Pointer Query (query inversa IP name) Authoritative names 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 name 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 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: 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 IP address dei authorative host 140.252.13.34 Name: svr4.tuc.nao.edu. inverso 23 24
Esempio di PTR Query Esempio di PTR Query: risposta #1 No. Time Source Destination Prot. Info 1457 2.292224 193.204.59.21 193.204.49.36 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 primario Flags: 0x0100 (Standard query) poliba.it 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 25 No. Time Source Destination Protocol Info 1461 2.299882 193.204.49.36 193.204.59.21 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......... 0000 = Reply code: No error (0) Questions: 1 Answer RRs: 1 Authority RRs: 4 Additional RRs: 4 26 Esempio di PTR Query: risposta #2 Esempio di PTR Query: risposta #3 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 Authoritative names 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 2.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 2.garr.net: type A, class IN, addr 131.154.1.11 primario poliba.it tutte universita second. poliba.it anthares.poliba.it: type A, class IN, addr 193.204.49.37 dns2.nic.it: type A, class IN, addr 193.205.245.8 TLD it 27 28
Query MX (Mail exchange) Comando nslookup Quando un messaggio email viene inviato via Internet, il Mail Transfer Agent (MTA p.e. Outlook) del mittente effettua una query di tipo MX per il nome di dominio del destinatario, che e la porzione dell indirizzo mail che segue la @ (p.e. info@primeeng.it) Questa query restituisce una lista di host name dei mail exchange s che sono in grado di accettare la posta in ingresso per quel dominio, insieme ad un preference number. L MTA inizia ad inviare la posta al con preference number piu basso Il meccanismo di query MX fornisce la possibilita di avere mail s multipli per un singolo dominio Comando nslookup (anche in Windows) Effettua una query al per ottenere l l indirizzo IP a partire da un indirizzo dato hostname hostname: $ nslookup sisinflab.poliba.it Server: 193.204.49.36 Address: 193.204.49.36#53 sisinflab.poliba.it canonical name= www-cirp.poliba.it. primario poliba.it Name: www-cirp.poliba.it Address: 193.204.59.75 29 30 Comando host #1 Comando host #2 Comando host (solo Linux) 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 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 $ host 193.204.59.227 227.59.204.193.in-addr.arpa domain name pointer dee227.poliba.it: 31 32
Comando dig Esempio di query di tipo A con dig #1 Il comando dig (domain information groper) è uno strumento flessibile per interrogare i name Sintassi dig name type dove name e il nome della risorsa type e il tipo di query (A, PTR, CNAME, MX ) $ dig sisinflab.poliba.it A ; <<>> DiG9.3.1 <<>> sisinflab.poliba.it A ;; globaloptions: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15837 ;; flags: qraardra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4 ;; QUESTION SECTION: ;sisinflab.poliba.it. IN A ;; ANSWER SECTION: sisinflab.poliba.it. 43200 IN CNAME www-cirp.poliba.it. www-cirp.poliba.it. 43200 IN A 193.204.59.75 33 34 Esempio di query di tipo A con dig #2 Esempio di PTR query con dig #1 ;; AUTHORITY SECTION: poliba.it. 604800 IN NS cstar.poliba.it. poliba.it. 604800 IN NS 2.garr.net. poliba.it. 604800 IN NS anthares.poliba.it. poliba.it. 604800 IN NS dns2.nic.it. ;; ADDITIONAL SECTION: cstar.poliba.it.43200 IN A 193.204.49.36 2.garr.net. 74326 IN A 193.206.141.38 anthares.poliba.it.172800 IN A 193.204.49.37 dns2.nic.it. 74049 IN A 193.205.245.8 ;; Querytime: 5 msec ;; SERVER: 193.204.49.36#53(193.204.49.36) ;; WHEN: Mon May29 15:51:49 2006 ;; MSG SIZE rcvd: 236 dig 75.59.204.193.in-addr.arpa PTR ; <<>> DiG9.3.1 <<>> 75.59.204.193.in-addr.arpa PTR ;; globaloptions: printcmd ;; Gotanswer: ;; ->>HEADER<<-opcode: QUERY, status: NOERROR, id: 28478 ;; flags: qraardra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4 ;; QUESTION SECTION: ;75.59.204.193.in-addr.arpa. IN PTR ;; ANSWER SECTION: 75.59.204.193.in-addr.arpa. 43200 IN PTR www-cirp.poliba.it 35 36
Esempio di PTR query con dig #2 Esempio di query MX con dig #1 ;; AUTHORITY SECTION: 59.204.193.in-addr.arpa. 604800 IN NS cstar.poliba.it. 59.204.193.in-addr.arpa. 604800 IN NS 2.garr.net. 59.204.193.in-addr.arpa. 604800 IN NS anthares.poliba.it. 59.204.193.in-addr.arpa. 604800 IN NS dns2.nic.it. ;; ADDITIONAL SECTION: cstar.poliba.it. 43200 IN A 193.204.49.36 2.garr.net. 73768 IN A 193.206.141.38 anthares.poliba.it. 172800 IN A 193.204.49.37 dns2.nic.it. 73491 IN A 193.205.245.8 ;; Querytime: 7 msec ;; SERVER: 193.204.49.36#53(193.204.49.36) ;; WHEN: Mon May29 16:01:08 2006 ;; MSG SIZE rcvd: 236 dig poliba.it MX ; <<>> DiG9.3.1 <<>> poliba.itmx ;; globaloptions: printcmd ;; Gotanswer: ;; ->>HEADER<<-opcode: QUERY, status: NOERROR, id: 14562 ;; flags: qraardra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 5 ;; QUESTION SECTION: ;poliba.it. IN MX ;; ANSWER SECTION: poliba.it. 172800 IN MX 10 mail.poliba.it. poliba.it. 172800 IN MX 20 anthares.poliba.it. 37 38 Esempio di query MX con dig #2 Il comando whois #1 39 ;; AUTHORITY SECTION: poliba.it. 604800 IN NS cstar.poliba.it. poliba.it. 604800 IN NS 2.garr.net. poliba.it. 604800 IN NS anthares.poliba.it. poliba.it. 604800 IN NS dns2.nic.it. ;; ADDITIONAL SECTION: mail.poliba.it. 43200 IN A 193.204.49.50 anthares.poliba.it. 172800 IN A 193.204.49.37 cstar.poliba.it. 43200 IN A 193.204.49.36 2.garr.net. 73632 IN A 193.206.141.38 dns2.nic.it. 73355 IN A 193.205.245.8 ;; Querytime: 7 msec ;; SERVER: 193.204.49.36#53(193.204.49.36) ;; WHEN: Mon May29 16:03:24 2006 ;; MSG SIZE rcvd: 240 40 Per ottenere informazioni sulla registrazione di un certo dominio, si utilizza il comando whois(interrogazione al livello del NIC): $ whois poliba.it domain: poliba.it org: Politecnico di Bari descr: TechnicalUniversity admin-c: CP1399-ITNIC tech-c: VG371-ITNIC postmaster: LG804-ITNIC zone-c: VG371-ITNIC zone-c: LG804-ITNIC n: 193.204.49.36 deecom04.poliba.it n: dns2.nic.it n: area.area.ba.cnr.it dom-net: 193.204.48.0 193.204.49.0 193.204.50.0 193.204.51.0 dom-net: 193.204.52.0 193.204.53.0 193.204.54.0 193.204.55.0 dom-net: 193.204.56.0 193.204.57.0 193.204.58.0 193.204.59.0 dom-net: 193.204.60.0 193.204.61.0 193.204.62.0 193.204.63.0 remarks: Fully-managed
Il comando whois #2 Comandi su Windows/alternative 41 mnt-by: GARR-MNT created: before 960129 expire: 20170129 source: IT-NIC person: Carmine Pappalettere address: DPPI -Politecnico di Bari address: viale Japigia, 182 address: I-70126 Bari nic-hdl: CP1399-ITNIC source: IT-NIC person: Valentino Gratton address: CECAP -Politecnico di Bari address: via Orabona, 4 address: I-70125 Bari nic-hdl: VG371-ITNIC source: IT-NIC person: Luigi Gatto address: CECAP -Politecnico di Bari address: via Orabona, 4 address: I-70125 Bari nic-hdl: LG804-ITNIC source: IT-NIC 42 esistono diversi siti internet per diagnosticare/monitorare le informazioni p.e. http://completewhois.com per simulare Linux in ambiente Windows è possibile utilizzare Cygwin (è un ambiente Linux-like per Windows) http://cygwin.com/ per installare l utility dig con inglobato host, whois, ecc, fare il download dell applicazione dig per Windows http://members.shaw.ca/nicholas.fong/dig/ Server BIND Esempio di configurazione di caching name Il file di configurazione principale è /etc/named.conf: Il più diffuso è BIND (Berkeley Internet Name Domain ). Il daemon del viene chiamato named. Ci sono 2 configurazioni tipiche: Authoritative-only name Risolve solo gli indirizzi del dominio per cui è autoritativo. caching Risolve tutti gli indirizzi, memorizzandoli in una cache. Non è autoritativo. Può essere installato su una macchina personale per velocizzare le richieste grazie al caching. // directory dove vengono cercati i file di configurazione options { directory "/var/named"; }; // nel file root.hints ci sono gli indirizzi IP dei root name s zone "." { type hint; file "root.hints"; }; // Questo comando significa che stiamo defininendo la zona // 0.0.127.in-addr.arpa, che il nostro è il 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"; }; 43 44
Configurazione di una zona Riepilogo della lezione Il file di configurazione di una zona ha il seguente formato ( Il seguente è il file pz/127.0.0). In questo file sono definiti 3 Resource Records: SOA (Start of Authority), NS (Name ) e PTR $TTL 3D // descrive la zona, il suo name, il responsabile, la versione del file(1), // impostazioni per il caching, il name secondario ed il TTL @ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 1 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 1D) ; Minimum TTL Domain Name Service Domain Name Service Formato messaggi Comandi s.o. legati al (nslookup, host, dig, whois) BIND // dice che il name 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. 45 46 Fine della lezione Domande? 47