1 / 81

Servizi Essenziali di Rete

Servizi Essenziali di Rete. Stage per Sistemista Linux Istituto Nazionale Fisica Nucleare Laboratori Nazionali Frascati Giugno 2008. Tutor: Claudio Soprano Servizio di Calcolo Email: claudio.soprano@lnf.infn.it. Argomenti trattati. Introduzione alle reti Dhcp server Dns server

will
Download Presentation

Servizi Essenziali di Rete

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Servizi Essenziali di Rete Stage per Sistemista Linux Istituto Nazionale Fisica Nucleare Laboratori Nazionali Frascati Giugno 2008 Tutor: Claudio Soprano Servizio di Calcolo Email: claudio.soprano@lnf.infn.it

  2. Argomenti trattati • Introduzione alle reti • Dhcp server • Dns server • Web server • Proxy server

  3. Introduzione alle reti Una rete e’ un insieme di piu’ dispositivi (switch, router, pc, server, stampanti, ecc.) chiamati “nodi della rete” che si scambiano informazioni. Lo scambio di informazioni avviene tramite l’uso di protocolli di comunicazione, che definiscono un insieme di regole di funzionamento. Ogni nodo per parlare con gli altri deve quindi conoscere i protocolli di comunicazione usati dagli altri nodi. I protocolli di comunicazione usati in tutto il mondo per far comunicare i nodi presenti in una rete (Locale, Metropolitana, Estesa, Mondiale) sono inclusi nella suite dei Protocolli Internet. L’IP (Internet Protocol) fa parte di questa suite.

  4. Introduzione alle reti Rappresentazione dei Protocolli Internet nella pila OSI: Pila OSI Protocolli Internet 7 Application NFS FTP, Telnet SMTP, SNMP 6 Presentation XDR 5 Session RPC 4 Transport TCP, UDP Routing Protocols IP ICMP 3 Network ARP, RARP 2 Data Link Not Specified 1 Physical

  5. Introduzione alle reti L’IP e’ un protocollo di comunicazione che definisce che ogni nodo di una rete deve avere un indirizzo unico, chiamato indirizzo IP e deve essere diverso da quello di un altro nodo presente sulla stessa rete. LAN Router/Gateway INTERNET 193.206.80.1 X.X.X.X 193.206.80.40 193.206.80.50 193.206.80.55 Ogni comunicazione tra i nodi avviene utilizzando gli indirizzi IP (questo a livello 3 della pila OSI). Gli indirizzi IP si dividono in pubblici (visibili/raggiungibili da Internet) e privati (visibili/raggiungibili solo all’interno di una stessa LAN).

  6. Introduzione alle reti Gli indirizzi IP sono divisi in Classi: • Classi A da 1.0.0.0 a 127.0.0.0 • Classi B da 128.0.0.0 a 191.255.0.0 • Classi C da 192.0.0.0 a 223.255.255.0 • Classi D da 224.0.0.0 a 239.255.255.255 (Multicast) • Classi E da 240.0.0.0 a 254.255.255.255 (nessuna specifica) Di tutte queste le seguenti sono riservate: • la 127.0.0.0 (Classe A) e’ riservata per l’interfaccia di loopback delle interfaccie di rete • Tutte le seguenti sono riservate per indirizzare reti private, ovvero reti che non hanno la necessita’ di comunicare con macchine sul mondo Internet (RFC 1918): • Il range di Classi A 10.0.0.0 fino a 10.255.255.255 • Il range di Classi B 172.16.0.0 fino a 172.31.255.255 • Il range di Classi C 192.168.0.0 fino a 192.168.255.255 Queste classi non possono essere ruotate/annunciate su Internet

  7. Introduzione alle reti Gli indirizzi IP privati possono essere usati da chiunque, ma non DEVONO oltrepassare il router di frontiera. Gli indirizzi IP pubblici vengono assegnati da un organo chiamato RIPE (Regional Internet Registry) agli Amministratori di Rete che ne fanno richiesta ed hanno un costo. Gli Amministratori a loro volta li girano agli utenti per usarli nei PC. I problemi piu’ comuni nella gestione di una rete sono: • Duplicazione di indirizzi IP e problemi di comunicazione nella LAN (per configurazione sbagliata della scheda di rete da parte dell’utente) - Renumbering, indica il cambio degli indirizzi IP di tutta una rete • Scarsita’ di indirizzi IP pubblici e quindi necessita’ di riusare gli indirizzi disponibili a chi ne fa richiesta - Gestione degli indirizzi IP

  8. Introduzione alle reti

  9. Differenze tra Unix (Linux) e Windows Il sistema operativo basato su codice sorgente UNIX che è più conosciuto tra gli utenti informatici è sicuramente Linux, che si distingue dal cugino Windows per diverse e importanti caratteristiche: • Il suo codice è opensource, quindi verificabile e modificabile da chiunque • E’ free (gratis) • È “case sensitive” • È più macchinoso in quanto è stato progettato per operare con la riga di comando oppure

  10. Linux – Comandi base 1/2 Sintassi: comandoopzioniparametri ls –l path # Esegue il listing di una directory pwd # Mostra il path/percorso corrente cd path/nomedir # Cambia la directory corrente mkdir path/nomedir # Crea una directory touch path/nomefile # Crea un file vuoto cat path/nomefile # Stampa su schermo il contenuto del file more path/nomefile # Stampa su schermo il contenuto del file a pagine vi path/nomefile # Modifica il contenuto di un file rm path/nomefile # Cancella il file cp path/nomesrc path/nomedest # Copia il file nomesrc in nomedest mv path/nomesrc path/nomedest # Sposta il file nomesrc in nomedest man nomecomando # Visualizza il manuale del comando

  11. Linux – Comandi base 2/2 Comandi utili per la diagnostica di rete: netconfig # Permette la configurazione della rete ifconfig -a # Mostra le info di tutte le schede di rete ifconfig ethx down/up# Spegne/Accende la scheda di rete netstat # Comando si statistiche di rete netstat –rn # Mostra tabella di routing netstat –an # Mostra elenco delle porte in ascolto e delle connessioni attive ping indirizzo-ip/nome-ip # Verifica la funzionalita’ di rete tra noi ed indirizzo-ip (senza firewall presenti) nslookup nome-ip/indirizzo-ip # Traduce da nome-ip ad indirizzo ip e viceversa traceroute indirizzo-ip/nome-ip # Mostra tutti i routers attraversati per arrivare a indirizzo-ip/nome-ip (senza firewall presenti) dig # Successore di nslookup telnet indirizzo-ip/nome-ip porta # Apre una connessione verso indirizzo-ip sulla porta specificata

  12. Windows – Comandi di rete Elenco dei comandi disponibili in Windows dal prompt dei comandi: ipconfig # Mostra informazioni sulla rete ipconfig /all # Mostra informazioni su tutte le schede rete netstat # Comando si statistiche di rete netstat –rn # Mostra tabella di routing netstat –an # Mostra elenco delle porte in ascolto e delle connessioni attive ping indirizzo-ip/nome-ip # Verifica la funzionalita’ di rete tra noi ed indirizzo-ip (senza firewall presenti) nslookup nome-ip/indirizzo-ip # Traduce da nome-ip ad indirizzo ip tracert indirizzo-ip/nome-ip # Mostra tutti i routers attraversati per arrivare a indirizzo-ip/nome-ip (senza firewall presenti) telnet indirizzo-ip/nome-ip porta # Apre una connessione verso indirizzo-ip sulla porta specificata

  13. Linux – Struttura del file system In Linux non esistono drive/unita’ (C: D:, ecc.) ma devices e si trovano nella directory /dev, un’unita’ esterna (pennetta usb) per poter funzionare deve essere montata su una directory. A quel punto e’ accessibile dall’utente come una qualsiasi altra directory, specificando il path completo (/mnt/pennetta per esempio).

  14. DHCP (Dynamic Host Configuration Protocol) Che cose il DHCP ? • e’ un protocollo di comunicazione che permette la configurazione automatica delle impostazione di rete di un client generico, basato sul protocollo BOOTP • la comunicazione avviene tra il client ed il server DHCP • il server ascolta sulla porta 67 utilizzando protocollo UDP • il client effettua le richieste usando la porta 68 ed il protocollo UDP • se nella rete e’ presente un DHCP server, ed ha le informazioni relative al client che effettua la richiesta, il server inviera’ al client tutti i parametri necessari (indirizzo IP del client, netmask, indirizzi dei DNS, WINS, NTP servers, indirizzo del gateway-router, lease time, ecc.) • se nella rete non e’ presente un DHCP server, il client (se con Sistema Operativo Microsoft) prendera’ un indirizzo IP nella classe 169.254.0.0 che e’ generato automaticamente dal Sistema Operativo e ritentera’ la ricerca di un DHCP server nella rete, tutti gli altri Sistemi Operativi non prenderanno nessun indirizzo IP e non tenteranno successive richieste

  15. DHCP (Dynamic Host Configuration Protocol) Il DHCP Server puo’ funzionare in 3 modalita’: • Assegnazione manuale degli indirizzi IP in base ad una lista di Mac Address specificata dall’Amministratore di Rete. Solo i client con il Mac Address all’interno della lista specificata otterranno un indirizzo IP Quindi nel DHCP server sara’ specificato per ogni Mac-Address il relativo indirizzo IP da assegnare • Assegnazione automatica degli indirizzi IP in base ad un range di indirizzi specificati dall’Amministratore di Rete, i client che richiedono un indirizzo IP otterranno sempre lo stesso dal DHCP server (Lease Time infinito, usata dai router ADSL) • Assegnazione dinamica degli indirizzi IP in base ad un range di indirizzi specificati dall’Amministratore di Rete, i client che richiedono un indirizzo IP, lo otterranno e sara’ valido per un tempo predefinito (Lease Time). Allo scadere del tempo, rieffettueranno la richiesta al DHCP Server che potrebbe assegnargli anche un indirizzo IP diverso dal precedente (perche’ gia assegnato ad un altro). Questa e’ l’unica modalita’ che permette di riassegnare un indirizzo IP non piu’ usato da un client ad un altro che ne fa richiesta.

  16. DHCP (Dynamic Host Configuration Protocol) RETE LOCALE (LAN) DHCPDISCOVER DHCPDISCOVER DHCPDISCOVER DHCPDISCOVER DHCPDISCOVER DHCPDISCOVER Client “n” Client 1 Client 2 Dhcp Server Dhcp Server Fase 1 (DHCP Discover): Il Client 1 effettua una richesta broadcast (255.255.255.255) con indirizzo sorgente 0.0.0.0 per localizzare eventuali DHCP Server sulla rete locale, nella richiesta sono contenuti il Mac-Address ed il nome del client che effettua la richiesta

  17. DHCP (Dynamic Host Configuration Protocol) RETE LOCALE (LAN) DHCPOFFER DHCPOFFER DHCPOFFER DHCPOFFER DHCPOFFER DHCPOFFER Client “n” Client 1 Client 2 Dhcp Server Dhcp Server Fase 2 (DHCP Offer): Ogni DHCP Server risponde soltanto al Client 1 offrendogli un indirizzo IP, netmask, l’indirizzo IP del DHCP Server e la durata di validita’ (Lease Time), questo se avra’ indirizzi a disposizione per il client in questione (vedi modalita’ del DHCP) altrimenti rispondera’ che non ha indirizzi disponibili (No free leases)

  18. DHCP (Dynamic Host Configuration Protocol) RETE LOCALE (LAN) DHCPREQUEST DHCPREQUEST DHCPREQUEST Client “n” Client 1 Client 2 Dhcp Server Dhcp Server Fase 3 (DHCP Request): Il Client 1 accetta la prima offerta che gli arriva da un DHCP Server, verifica che l’IP ricevuto e’ valido, in caso affermativo avvisera’ quel server che accetta i parametri di rete ricevuti precedentemente, se l’IP ricevuto non e’ valido mandera’ un (DHCP Decline) al DHCP Server informandolo che non lo puo’ accettare.

  19. DHCP (Dynamic Host Configuration Protocol) RETE LOCALE (LAN) DHCPACK DHCPACK DHCPACK Client “n” Client 1 Client 2 Dhcp Server Dhcp Server Fase 4 (DHCP ACK): Il DHCP Server rispondera’ al client dicendogli che gli ha riservato l’IP e gli mandera’ tutti i dati di configurazione che l’Amministratore di Rete ha inserito nel DHCP Server, inoltre scrivera’ i dati del client in un suo database (leases file).Se dovesse aver gia assegnato l’IP ad un altro client o se il client richiede un indirizzo che il server non puo’ assegnargli, questo inviera’ un DHCP Nack al client che quindi rimarra’ sconfigurato.Alla scadenza della validita’ dei dati (Lease Time) il Client 1 ne richiedera’ la validita’ al DHCP Server rieffettuando la fase 3

  20. DHCP (Dynamic Host Configuration Protocol) RETE LOCALE (LAN) DHCPRELEASE DHCPRELEASE DHCPRELEASE Client “n” Client 1 Client 2 Dhcp Server Dhcp Server Fase 5 (DHCP Release): Quando il Client 1 viene spento (procedura di Shutdown normale) questo informera’ il DHCP Server del rilascio dell’indirizzo IP, che a seconda della modalita’ di funzionamento del DHCP Server potrebbe essere riutilizzato da un altro client che ne fa richiesta. Questa fase e’ opzionale.

  21. DHCP (Dynamic Host Configuration Protocol) Alcune considerazioni: • ogni DHCP server, usa un indirizzo IP statico, ovvero non puo’ ottenere un indirizzo IP da se stesso, in quanto la rete viene attivata prima dei servizi • un DHCP server risponde senza problemi a migliaia di richieste • se si vuole aumentare l’affidabilita’ si possono usare piu’ DHCP server configurati opportunamente (uno per ogni network, o tutti con la stessa configurazione) in modo da bilanciare il carico in base alle esigenze - in caso di uso di piu’ DHCP server, la malconfigurazione di uno dei server porta i client ad avere problemi nella configurazione delle impostazioni di rete e quindi guai all’Amministratore di Rete

  22. DHCP (Dynamic Host Configuration Protocol) Il software usato per implementare un DHCP Server in ambiente Linux in questo Stage e’ l’ISC DHCP Server Si puo’ scaricare da http://www.isc.org • e’ gratuito • e’ tenuto continuamente aggiornato • e’ molto stabile

  23. DHCP (Dynamic Host Configuration Protocol) Passi necessari per l’installazione di un DHCP server: • Scaricare il pacchetto software DHCP server dal sito http://www.isc.org • Installare il pacchetto tar –xvzf dhcp-3.0.5.tar.gz cd dhcp-3.0.5 ./configure make make install • Configurare il DHCP server modificare il file /etc/dhcpd.conf • Attivare il DHCP server /etc/init.d/dhcpd start • Testare il funzionamento guardando i log di sistema tail –f /var/log/messages o more /var/log/messages • Verificare la presenza del database dei client connessi more /var/lib/dhcp/dhcpd.leases • Attivare il dhcp come servizio partente al riavvio della macchina chkconfig --add dhcpd chkconfig --level 35 dhcpd on

  24. DHCP (Dynamic Host Configuration Protocol) File di configurazione /etc/dhcpd.conf default-lease-timennn; specifica la validita’ di default dei dati in secondi max-lease-timennn; specifica la validita’ massima dei dati in secondi use-host-decl-names on; indica di assegnare come nome ip il nome indicato option host-name “nome”; specifica il nome ip da assegnare al client option domain-name“nomedominio”; specifica il dominio da assegnare ai client option domain-name-serversipserver1,ipserver2…; specifica gli indirizzi IP dei server dns option subnet-maskxxx.xxx.xxx.xxx; specifica la network mask option routersiprouter1,iprouter2….; specifica gli indirizzi IP dei router/gateway option time-serversipserver1,ipserver2...; specifica gli indirizzi IP degli NTP server …. ci sono moltissime altre option, usare man dhcpd.conf ddns-updateson|off ; abilita/disabilita gli aggiornamenti dinamici verso i server dns (impostazione di tipo globale) ddns-update-stylead-hoc|interim|none; scegli il tipo di dinamic update che usera’ (ad-hoc e’ obsoleto, impostazione di tipo globale) rangexxx.xxx.xxx.xxxyyy.yyy.yyy.yyy; specifica un range di indirizzi da assegnare ai client

  25. DHCP (Dynamic Host Configuration Protocol) File di configurazione /etc/dhcpd.conf (continua) deny unknown-clients; ottengono un indirizzo IP solo i client che hanno i Mac-Address registrati allow unknown-clients; ottengono un indirizzo IP tutti i client, registrati e non pool { … } permette di definire un pool di indirizzi che verra’ trattato differentemente da un altro pool (usando piu’ gruppi pool) subnetxxx.xxx.xxx.xxxnetmaskyyy.yyy.yyy.yyy{ …. } definisce la network alla quale assegnare gli indirizzi IP, deve esistere almeno una dichiarazione per la network definita sull’interfaccia di rete per funzionare group { definisce un gruppo di regole valide per i client definiti all’interno del gruppo …. } host nomeclient { definisce i dati di un client hardware ethernet xx:xx:xx:xx:xx:xx; definisce il Mac-Address del client che effettuera’ la richiesta fixed-addressxxx.xxx.xxx.xxx; definisce l’indirizzo/nome IP da assegnare staticamente } al client, nomeclient puo’ essere un nome fittizio per comodita’ si usa lo stesso nome del client

  26. DHCP (Dynamic Host Configuration Protocol) Esercitazioni Realizzare un DHCP server che: • Assegni indirizzi IP ai client nella modalita’ descritta sotto • Assegni il dominio lnf.infn.it • Assegni l’indirizzo ip del router 192.168.160.1 • Assegni gli indirizzi dei dns server primario (ad ognuno il proprio, solo per esercizio 3) e secondario a tutti lo stesso Esecizio 1: assegnare automaticamente gli indirizzi IP a qualsiasi client utilizzando il range 192.168.160.201-192.168.160.220 Esercizio 2: assegnare automaticamente gli indirizzi IP utilizzando il range 192.168.160-201-192.168.200 solo ai client conosciuti (bisogna censire tutti i Mac Address ed inserirli nella configurazione del DHCP) Esercizio 3: assegnare staticamente gli indirizzi IP (sempre lo stesso) ai client conosciuti

  27. DNS(Domain Name System) In una rete molto estesa con molti nodi (PC, server, stampanti, router, switch) ricordare a memoria tutti gli indirizzi IP e’ veramente difficile. Si e’ deciso quindi di usare i nomi al posto degli indirizzi in modo da ricordarli piu’ facilmente. Ed e’ proprio per questa necessita’ che nasce il DNS Server, come un database distribuito gerarchicamente che traduce i nome di dominio in indirizzi IP (diretta) ed il contrario (inversa). Il mondo e’ diviso in domini uno per ogni nazione (IT per italia, UK per Regno Unito, FR per Francia, ES per Spagna, ecc.), questi sono chiamati domini di primo livello (top-level). Oltre a quelli relativi alle nazioni ci sono domini di primo livello particolari come ORG per organizzazioni senza scopo di lucro, MIL per istituzioni militari, GOV per istituzioni governative, EDU per istituzioni educazionali (come universita’), COM e NET usate principalmente per scopi commerciali, inoltre ogni tanto ne vengono aggiungono altri. Ognuno di questi domini principali e’ poi suddiviso in altri domini (di secondo livello) che a seconda della societa’, istituzione, organizzazione che lo richiede registrandolo, avra’ un nome. La struttura e’ ad albero e ogni dominio e’ composto o da altri domini o da nodi fisici che rappresentano le foglie dell’albero. I domini (che devono essere visibili e raggiungibili in Internet) vanno registrati (presso enti presenti in ogni nazione) pagandoli, se invece li si usano in reti private non e’ necessaria la registrazione. Il numero massimo di livelli (o domini) che un nome di dominio puo’ avere e’ 127. Il DNS usa il protocollo UDP ed ascolta sulla porta 53 per le richieste da parte dei client, usa invece protocollo TCP e porta 53 per i trasferimenti di zona con i DNS Secondari.

  28. DNS(Domain Name System) Radice . Root “name” servers Dominio . com edu mil it …. Domini 1 livello (top-level) yahoo …. standford …. defense …. libero infn …. …. Domini 2 livello lnf …. Domini 3 livello pcd dns1 www dhcp dns2 pca dns1 www dhcp dns2 pcb dns1 www dhcp dns2 pcc dns1 pce dns1 www dhcp dns2 www dhcp dns2 Se voglio sapere il nome di dominio del server indicato dal cerchio rosso dovro’ partire dal suo nome fino ad arrivare alla radice dell’albero aggiungendo un “.” per ogni dominio che attraverso, ottengo quindi: www.yahoo.com. mentre il nome del webserver indicato col cerchio marrone sara’: www.lnf.infn.it. L’ultimo punto nel nome di dominio viene normalmente omesso (in quanto viene inserito per default quando effettuate una richiesta al DNS). I rettangoli in blue sono domini di 1 livello, quelli in verde di 2 livello e quelli in arancione di 3 livello. Ogni dominio e’ responsabile per tutti i domini di livello inferiore (nella struttura ad albero), ovvero i domini di 1 livello sono responsabili dei domini di 2 livello, quelli di 2 livello di quelli di 3 livello, ecc. ecc., ma nello stesso tempo possono delegare questa responsabilita’ a qualcun’altro (anche se non e’ strettamente necessario, normalmente si usa).

  29. DNS(Domain Name System) Ogni dominio deve avere almeno due DNS Server per funzionare, uno Primario (master) ed uno Secondario (slave) e se fosse possibile un altro Secondario esterno alla rete del dominio che gestisce. Il Primario ha i dati effettivi, mentre i Secondari ne ha una copia (Transfer Zone) ricevuta dal Primario. Gli Amministratori di Rete, cambiano/aggiornano/modificano i dati solo nel DNS Primario, i Secondari verrano aggiornati automaticamente. Ogni DNS contiene le informazioni relative al proprio dominio (zona) e sa come ottenere le informazioni di quelli sottostanti (in quanto ne ha delegato la gestione ad altri DNS, oppure li gestisce direttamente). Quindi il DNS del dominio .it sa chi detiene le informazioni del dominio libero.it e chi detiene le informazioni del dominio infn.it ma non sa chi detiene le informazioni per il dominio lnf.infn.it I root “name” servers sono dei server DNS che hanno tutte le informazioni relative ai domini di 1 livello (top-level) ed indirizzano i vari DNS nelle traduzioni da nomi di domini in indirizzi IP e viceversa. I DNS server di un dominio (zona) sono detti autoritativi per quel dominio, mentre risulteranno non autoritativi per tutti gli altri domini che non gestiscono direttamente. I DNS del dominio .it non sono autoritativi per il dominio libero.it. Ogni client di una rete ha installato automaticamente nel sistema operativo un DNS client (resolver) che manda le richieste ai DNS server configurati nelle proprieta’ di rete. E’ FQDN (Full Qualified Domain Name) un nome (di un host) comprensivo del dominio di appartenenza www.lnf.infn.it e’ un FQDN, www.libero.it e’ un FQDN, www non e’ un FQDN. Il DNS server usa il protocollo UDP ed ascolta sulla porta 53 per le richieste da parte dei client (che usano invece una porta alta, sulla quale rispondera’ il DNS), usa invece protocollo TCP e porta 53 per I trasferimenti di zona con i DNS Secondari.

  30. DNS(Domain Name System) www.lnf.infn.it A ? 2 “.” Root name server . name server Chiedi al NS it 3 Salva in cache www.lnf.infn.it A ? 4 it name server B Chiedi al NS infn.it 5 www.lnf.infn.it A ? 6 Cancella dalla cache (TTL) infn.it name server it fr es Chiedi al NS lnf.infn.it C 7 www.lnf.infn.it A ? 8 lnf.infn.it name server 193.206.84.220 infn virgilio 9 www.lnf.infn.it A ? 193.206.84.220 1 A roma1 mi lnf Client resolver Come si puo’ notare la traduzione di un FQDN (www.lnf.infn.it) ad indirizzo IP avviene partendo da destra (il . e’ implicito) e a mano mano andando a sinistra (poi it poi infn poi lnf) fino ad arrivare all’ultimo nameserver

  31. DNS Secondario DNS(Domain Name System) DNS Secondario dns.libero.it dns.yahoo.com DNS Primario Router/Gateway INTERNET Richieste dns dns.virgilio.it Richieste dns dns.microsoft.com … Client 2 Client 3 Client 1 Collocazione dei DNS Server Primari e Secondari

  32. DNS(Domain Name System) Quando arriva una richiesta di traduzione da nome ad indirizzo o viceversa, il DNS server • se riguarda una delle proprie zone di autorita’ esegue direttamente la traduzione e restituisce il dato richiesto • se non riguarda le proprie zone, guarda se lo ha nella cache (se lo aveva gia richiesto precedentemente) ed in caso affermativo restituisce il dato richiesto direttamente • se non lo ha nella cache, chiede al root “name” server dove trovera’ l’informazione richiesta (come visto nello schema precedente), alla fine inviera’ il dato richiesto e ne terra’ una copia nella cache per il tempo specificato dal TTL (Time To Live)

  33. DNS(Domain Name System) Finora abbiamo visto esempi di come trovare un indirizzo dato un nome ed abbiamo visto che il DNS ha un database ed una gerarchia ad albero, che facilita la ricerca dei nomi. Ma se noi volessimo sapere quale e’ il FQDN associato ad un indirizzo IP ? Per evitare la costruzione di un altra struttura si e’ pensato di usare lo stesso metodo anche per i numeri, creando un dominio chiamato in-addr.arpa (in-addr sta per Internet Address) che copre l’intero indirizzamento IP. Al suo interno ci sono 256 sottodomini (da 0 a 255) per esempio 193.in-addr.arpa, e dentro ognuno di loro altri 256 domini (da 0 a 255) per esempio 203.193.in-addr.arpa, ancora all’interno 256 domini (da 0 a 255) per esempio 84.203.193.in-addr.arpa ed infine all’interno gli ultimi 256 domini (da 0 a 255) e finalmente 112.84.203.193.in-addr.arpa, che corrisponde al nome dns2.lnf.infn.it. Il meccanismo che risale ad un nome da un indirizzo IP e’ lo stesso che si usa per i nomi, quando vogliamo sapere il nome dell’indirizzo IP 193.206.84.112, il nostro client, lo chiede al nostro DNS, che lo chiede a quello di in-addr.arpa, che ci risponde di chiederlo al DNS di 193.in-addr.arpa, che a sua volte ci risponde di chiederlo al DNS di 206.193.in-addr.arpa, che alla fine ci chiede di chiederlo al DNS di 84.206.193.in-addr.arpa che ci risponde con dns2.lnf.infn.it e la ricerca e’ terminata e messa nella cache del nostro DNS.

  34. DNS(Domain Name System) Radice . Root “name” servers Dominio . arpa it …. Domini 1 livello (top-level) in-addr libero infn …. …. Domini 2 livello 0 1 …. 193 …. 255 Domini 3 livello lnf …. pcd dns1 www dhcp dns2 0 1 …. 206 …. 255 Domini 4 livello pce dns1 www dhcp dns2 0 1 …. 84 …. 255 193.206.84.112 Domini 5 livello 112.84.206.193.in-addr.arpa ovvero dns2.lnf.infn.it 0 1 …. 112 …. 255 Domini 6 livello • Perche’ gli ottetti sono invertiti rispetto all’indirizzo IP ? • perche’ il valore 112 e’ il meno significativo per un indirizzo IP (e quindi nel caso del nome deve essere il primo) • perche’ normalmente le reti (Classi A,B,C,D,E) vengono suddivise e date in gestione e facendo in questo modo ognuno • puo’ gestire la propria parte di reverse, il proprietario della rete 193.206.84.x gestisce la sua reverse e non e’ ARPA a farlo

  35. DNS(Domain Name System) Ma quali tipi di record sono contenuti in un DNS ? • SOA (Start Of Authority) indica la zona di autorita’ del DNS e l’indirizzo email del Responsabile (non si usa la @), ogni zona DEVE avere un record SOA (all’inizio) • NS (Name Server) indica i DNS server per la zona (subito dopo il SOA) • MX (Mail Exchange) indica i server di posta SMTP (zona diretta) • A (Address) effettua il mapping da nome ad indirizzo (zona diretta) • PTR (Pointer) effettua il mapping da indirizzo a nome (zona inversa) • CNAME (Canonical Name) indica un alias di un nome (zona diretta) • TXT (Text) da delle informazioni aggiuntive (zona diretta, non viene piu’ usato per motivi di sicurezza) • ORIGIN indica la parte da aggiungere ai non FQDN (Fully Qualified Domain Name) in un file di zona

  36. DNS(Domain Name System) Il record SOA contiene al suo interno altri record importantissimi per il funzionamento del DNS, i tempi sono espressi in secondi a meno di aggiungere al valore una M (minuti), H (ore), D (day) e W (settimane) • Serial AAAAMMDDXX per esempio Serial 2005092101 indica quando e’ stata effettuata l’ultima modifica e va incrementato ogni volta che si modifica un qualsiasi dato di una zona DNS • Refresh xxxxx (10800, 3 ore per default) indica ogni quanti secondi il DNS Secondario deve controllare che la sua copia sia accurata • Retry xxxxx (7200, 2 ore per default) se il DNS Secondario non riesce ad ottenere una copia dal Primario, riprovera’ dopo xxxxx secondi • Expire xxxxx (604800, 1 settimana per default) se il DNS Secondario non riesce a contattare il Primario, dopo xxxxx secondi smette di dare informazioni sulla zona (dominio) • Minimum xxxxx (86400, 1 giorno per default) e’ un parametro globale (ma puo’ essere modificato per ogni singolo record) che indica per quanti xxxxx secondi l’informazione vale

  37. DNS(Domain Name System) Tools per la verifica di un DNS server: nslookup e dig sono i comandi che si possono usare per effettuare delle richieste ai DNS server di tutto il mondo (non solo a quello locale che normalmente e’ il default). Scrivendo nslookupFQDN si ricevera’ la traduzione da nome ad indirizzo (diretta) mentre scrivendo nslookupindirizzo IP si ricevera’ la traduzione da indirizzo a nome (inversa). Scrivendo nslookup soltanto, si entrera’ in una modalita’ interattiva che ci permettera’ di: • cambiare NS a cui effettuare le richieste (e’ temporanea) con il comando: server xxx.xxx.xxx.xxx • effettuare richieste particolari usando il comando: set querytype=x (con x=A/PTR/NS/MX/SOA) Vediamo invece il comando dig, non permette query su indirizzi IP standard, ma nel formato inverso xxx.xxx.xxx.xxx.in-addr.arpa • con dig FQDN, cerchera’ informazioni di tipo A sul nome di dominio • con dig xxx.xxx.xxx.xxx.in-addr.arpa cerchera’ informazioni di tipo PTR • con dig x querytype, riceveremo informazioni del tipo querytype (A/PTR/NS/MX/SOA)

  38. DNS(Domain Name System) Il software usato per implementare un DNS Server in ambiente Linux in questo Stage e’ l’ISC DNS Server (Bind) Si puo’ scaricare da http://www.isc.org • e’ gratuito • e’ tenuto continuamente aggiornato • e’ molto stabile • e’ quello usato in tutte le distribuzioni Linux

  39. DNS(Domain Name System) DNS Server runnante come utente root Passi necessari per l’installazione di un DNS server: • Scaricare il pacchetto software DNS server dal sito http://www.isc.org • Installare il pacchetto tar –xvzf bind-9.3.1.tar.gz cd bind-9.3.1 ./configure make make install • Configurare il DNS server modificare il file /etc/named.conf creare i files per le zone diretta ed inversa in /var/named • Attivare il DNS server /etc/init.d/named start - Modificare /etc/resolv.conf • Testare il funzionamento guardando i log di sistema tail –f /var/log/messages o more /var/log/messages - Usare tools come nslookup e dig per verificare la funzionalita’ • Attivare named come servizio partente al riavvio della macchina chkconfig --add named chkconfig --level 35 named on

  40. DNS(Domain Name System) DNS Server runnante come named in ambiente protetto (chroot) Passi necessari per l’installazione di un DNS server: • Scaricare il pacchetto software DNS server dal sito http://www.isc.org • Installare il pacchetto tar –xvzf bind-9.3.1.tar.gz cd bind-9.3.1 ./configure make make install • Configurare il DNS server modificare il file /etc/named.conf creare i files per le zone diretta ed inversa in /var/named/chroot/var/named • Attivare il DNS server /etc/init.d/named start - Modificare /etc/resolv.conf • Testare il funzionamento guardando i log di sistema tail –f /var/log/messages o more /var/log/messages - Usare tools come nslookup e dig per verificare la funzionalita’ • Attivare named come servizio partente al riavvio della macchina chkconfig --add named chkconfig --level 35 named on

  41. DNS(Domain Name System) File /etc/named.conf acl nome{indirizzoip1; indirizzoip2; ….}; definisce un nome al quale associare diversi numeri ip options { definisce opzioni generali directory “pathcompleto”; definisce dove sono i files relativi alle zone (dirette ed inverse) pid-file “pathconomefile”; definisce il file che conterra’ il numero del processo del demone ….. }; zone “.” IN { type hint; file “nomefile”; }; definisce il file dei root “name” server zone “nomedominio” IN { type master|slave; definisce se il server e’ primario per questa zona masters { nomeacl|indirizzi IP;}; definisce chi e’ il master di questa zona (usato se type slave) file“pathcompletoenomefile”; definisce il file dove ci sono i dati per questa zona allow-query { none|any|nomeacl|indirizzi IP;}; definisce chi puo’ effettuare richieste per questa zona allow-transfer { none|any|nomeacl|indirizzi IP;}; definisce chi puo’ trasferire la zona (normalmente slaves) allow-update { none|any|nomeacl|indirizzi IP;}; definisce chi puo’ aggiornare i dati per questa zona }; logging { definisce le modalita’ di logging per categorie …. };

  42. DNS(Domain Name System) Esempio di zona diretta (da nome di dominio ad indirizzo) @ IN SOA lnfnet.lnf.infn.it. root.lnfnet.lnf.infn.it. ( 2005091302; Serial 86400 ; Refresh 3600 ; Retry 604800 ; Expire 172800 ) ; Minimum TTL IN NS lnfnet.lnf.infn.it. ; dichiarazione DNS server primario IN NS dns2.lnf.infn.it. ; dichiarazione DNS server secondario lnf.infn.it. IN MX 10 smtp1.lnf.infn.it. ; dichiarazione mail exchanger lnf.infn.it. IN MX 10 smtp2.lnf.infn.it. ; dichiarazione mail exchanger $ORIGIN lnf.infn.it. ; definisce il dominio da aggiungere ai non FQDN ; (vale dalla riga successiva a quella di $ORIGIN) $TTL 172800 ; definisce il TTL (se non messo si usa quello del SOA) www 500 IN A 193.206.84.219 ; mappa piu’ indirizzi ip ad un solo nome usato per 500 IN A 193.206.84.220 ; load balancing tra due IP, definito un TTL di 500 secondi lnfnet IN A 193.206.84.12 ; mappa il nome del DNS primario al suo indirizzo ip dns2 IN A 193.206.84.112 ; mappa il nome del DNS secondario al suo indirizzo ip afs1 IN A 193.206.84.121 ; mappa un nome ad un indirizzo ip ntp1 IN CNAME afs1 ; definisce un alias ad afs1 con nome ntp1 Per ogni record NS e MX nella zona diretta, DEVE esistere un record A nella zona diretta

  43. DNS(Domain Name System) Esempio di zona inversa (da indirizzo a nome di dominio) @ IN SOA lnfnet.lnf.infn.it. root.lnfnet.lnf.infn.it. ( 2005091302 ; Serial 86400 ; Refresh 3600 ; Retry 604800 ; Expire 172800 ) ; Minimum TTL IN NS lnfnet.lnf.infn.it. ; dichiarazione DNS server primario IN NS dns2.lnf.infn.it. ; dichiarazione DNS server secondario $ORIGIN 84.206.193.in-addr.arpa. ; definisce il dominio da aggiungere ; ai nomi non FQDN 12 IN PTR lnfnet.lnf.infn.it. ; mappa un indirizzo ip ad un nome 112 IN PTR dns2.lnf.infn.it. ; mappa un indirizzo ip ad un nome 121 IN PTR afs1.lnf.infn.it. ; mappa un indirizzo ip ad un nome 219 IN PTR www1.lnf.infn.it. ; mappa un indirizzo ip ad un nome 220 IN PTR www2.lnf.infn.it. ; mappa un indirizzo ip ad un nome Per ogni record A nella zona diretta, DEVE esistere un record PTR nella zona inversa, i CNAME non necessitano di un PTR in quanto esiste gia un PTR del loro nome di dominio vero.

  44. DNS(Domain Name System) Esercizio 1: Ogni studente deve installare un DNS Server Primario per il proprio dominio “cognome.it” (dominio di secondo livello) e verificare che la risoluzione diretta ed inversa del proprio dominio funzioni. Verificare quale server e’ autoritativo per ogni dominio. Esercizio 1a: Modificare la configurazione del DHCP Server precedentemente creato in modo tale che ogni PC studente abbia indirizzo ip fisso (sempre lo stesso) e abbia come DNS Server Primario il PC stesso. Esercizio 2: Installare un solo DNS Server Secondario di tutti i domini precedentemente creati e verificate che avvengono i trasferimenti di zona tra Master e Slave. Esercizio 2a: Modificare la configurazione del DHCP Server precedentemente creato in modo che, ogni PC studente abbia indirizzo ip fisso (sempre lo stesso) e abbia come DNS Server Secondario quello appena realizzato.

  45. WWW(World Wide Web) Il World Wide Web (ragnatela mondiale, www o semplicemente web) e’ nato per semplificare lo scambio di informazioni e documenti scientifici al Cern di Ginevra. Il web funziona con il meccanismo client-server, la parte client e’ il browser (Internet Explorer, Netscape, Firefox, Opera, ecc.) disponibile per tutti i sistemi operativi presenti oggi (Windows, Unix, Mac Os, Be Os, ecc.) che ha il compito di richiedere le informazioni ad un web server, mentre il Server ha il compito di inviare le informazioni richieste ai Clients. Appena ricevono le Informazioni, i browser le visualizzeranno in pagine indipendenti. Le pagine web sono scritte nel linguaggio di formattazione HTML (Hyper Text Markup Language), che consente di creare pagine ipertestuali che qualsiasi server web puo’ distribuire e qualsiasi browser puo’ visualizzare. Il codice HTML contiene anche dei descrittori (tag) che consentono di indicare per esempio la formattazione del testo (dimensione, stile, posizionamento,ecc.) e la posizione di immagini, filmati e animazioni. Una pagina web puo’ contenere collegamenti (link) ad altre pagine web, che possono risiedere anche su server diversi, possono essere incorporati nel testo od essere associati ad una immagine.

  46. WWW(World Wide Web) Questo e’ il concetto di ipertesto, ovvero e’ un testo che consente una lettura non lineare di un documento. Se in un testo che parla di motori c’è una informazione sulle case produttrici che li producono, e a questa informazione è associato un link, basta fare clic sul link per andare ad una nuova pagina che parla di queste case produttrici, fermando la lettura della parte dedicata ai motori, alla quale si potrà tornare successivamente. Il sistema delle URL (Uniform Resource Locator) consente a tutte le informazioni di essere recuperate da quasi tutti i punti su Internet ed e’ stato creato per il web. La comunicazione tra browser (client web) e server web e’ il protocollo HTTP (Hyper Text Transfer Protocol) ed il modo piu’ comune per pubblicare informazioni attraverso la rete. Normalmente le informazioni pubblicate in questo modo sono rivolte a tutti gli utenti, nel senso che non e’ richiesta nessun tipo di identificazione. Per offrire un servizio HTTP serve un programma in grado di gestirlo, di solito si tratta di un demone, che consente l’accesso ad una directory particolare (chiamata Document Root) e a quelle discendenti, si tratta di una directory personale degli utenti anonimi che accedono attraverso questo protocollo. Il Server web risponde sulla porta TCP 80 (protocollo HTTP) e 443 (protocollo HTTPS).

  47. WWW(World Wide Web) Anche dal lato client serve un programma in grado di gestire il protocollo HTTP, questo e’ il browser (o navigatore), che pero’ e’ in grado di servire anche altri protocolli, tipo FTP (File Transfer Protocol), HTTPS. L’integrazione di piu’ protocolli impone l’utilizzo di un sistema uniforme per indicare gli indirizzi, in modo tale da sapere subito in che modo effettuare un collegamento. Per questo quando si usa un navigatore si devono usare indirizzi espressi secondo il formato URI (Uniform Resource Identifier), mentre attualmente si usa ancora la vecchia definizione, cioe’ l’URL (Uniform Resource Locator), che rappresenta un sottoinsieme dell’URI. Attraverso l’URI e’ possibile definire tutto quello che serve per raggiungere una risorsa: il protocollo da usare, l’indirizzo del nodo (host), la porta, ed il percorso, quindi protocollo indirizzo_della_risorsa [dati aggiuntivi] Alcuni protocolli sono in grado di gestire dei dati aggiuntivi in coda all’indirizzo della risorsa, per esempio nel caso dell’HTTP per effettuare richieste CGI o di percorsi aggiuntivi. Quando un URI comprende anche una stringa di richiesta (query) questa e’ indicata con un punto interrogativo (?): protocollo indirizzo_della_risorsa?[richiesta] L’utilizzo di una stringa di richiesta, presume che la risorsa sia in grado di utilizzare l’informazione presente in tale stringa: http://www.brot.dg/cgi-bin/saluti.pl?buongiorno Quando l’indirizzo di una risorsa fa riferimento ad un programma, questo puo’ ricevere un informazione aggiuntiva legata ad un file o ad una directory particolare, questo si ottiene aggiungendo il percorso che identifica questo file o questa directory: http://www.brot.dg/cgi-bin/elabora.pl/archivio.doc Quando si deve usare in un URI un simbolo non utilizzabile normalmente, si usa la notazione %hh, dove hh rappresenta una coppia di cifre esadecimali, a questa regola fa eccezione lo spazio che e’ rappresentato da un +, ma non in tutte le occasioni; per gli URI normali non c’e’ da preoccuparsi di questo problema, che normalmente si presenta invece quando si costruiscono delle richieste.

  48. WWW(World Wide Web) La tabella mostra l’elenco di alcune corrispondenze tra simboli particolari e la codifica alternativa utilizzabile negli URI: Il funzionamento del protocollo HTTP e’ molto semplice e si compone di una serie di transazioni, ognuna delle quali si articola in queste fasi: • Apertura della connessione; • Invio da parte del client di una richiesta; • Risposta da parte del server; • Chiusura della connessione. In questo modo il server non deve tenere conto delle transazioni che iniziano e finiscono, ogni volta che un utente compie un azione attraverso il programma client (browser). La richiesta inviata dal programma cliente deve contenere il metodo (i più comuni sono GET e POST), l'indicazione della risorsa cui si vuole accedere, la versione del protocollo ed eventualmente l'indicazione dei tipi di dati che possono essere gestiti dal programma cliente (si parla in questi casi di tipi MIME). Il server HTTP risponde con una intestazione che indica in che modo l’informazione allegata va interpretata, l’intestazione e’ staccata dall’informazione attraverso una riga vuota, composta dalla sequenza <CR><LF> (Carriage Return, Line Feed).

  49. WWW(World Wide Web) Vediamo come funziona una connessione HTTP, usiamo il comando telnet al posto del navigatore normale e supponiamo di collegarci al server www.brot.db, nel quale e’ installato e configurato il server web Apache (un comune web server), dal server viene prelevato il file index.html, dalla directory Document Root $ telnet www.brot.dg 80 [Invio] telnet risponde e si mette in attesa di una nostra richiesta: Trying 192.168.1.1... Connected to www.brot.dg. Escape character is '^]'. Si deve iniziare a scrivere, cominciando con una riga contenente il metodo, la risorsa e la versione del protocollo, continuando con una riga contenente le possibilità di visualizzazione del cliente (i tipi MIME): GET /index.html HTTP/1.0 [Invio] Accept: text/html [Invio] [Invio] L’ultima riga vuota indica al server che la richiesta e’ finita e che va quindi evasa.

  50. WWW(World Wide Web) HTTP/1.1 200 OK Date: Tue, 27 Jan 1998 17:44:46 GMT Server: Apache/1.2.4 Last-Modified: Tue, 30 Dec 1997 21:07:24 GMT ETag: "6b003-792-34a9628c" Content-Length: 1938 Accept-Ranges: bytes Connection: close Content-Type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>Test Page for Linux's Apache Installation</TITLE> </HEAD> <!-- Background white, links blue (unvisited), navy (visited), red (active) --> <BODY BGCOLOR="#FFFFFF“ TEXT="#000000“ LINK="#0000FF“ VLINK="#000080“ ALINK="#FF0000“> <H1 ALIGN="CENTER">It Worked!</H1> <P> If you can see this, it means that the installation of the <A HREF=http://www.apache.org/>Apache</A> software on this Linux system was successful. You may now add content to this directory and replace this page. </P> … ... </BODY> </HTML> Connection closed by foreign host.

More Related