Title: Servizi Essenziali di Rete
1Servizi Essenziali di Rete
- Stage per Sistemista Linux
- Istituto Nazionale Fisica Nucleare
- Laboratori Nazionali Frascati
- 21-22-23 Settembre 2005
Tutor Claudio Soprano Servizio di
Calcolo Email claudio.soprano_at_lnf.infn.it
2Argomenti trattati
- Introduzione alle reti
- Dhcp server
- Dns server
- Web server
- Proxy server
3Introduzione 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 luso
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. - LIP (Internet Protocol) fa parte di questa suite.
4Introduzione 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
5Introduzione alle reti
- LIP 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 allinterno di una
stessa LAN).
6Introduzione 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
linterfaccia 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 su
Internet
7Introduzione 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 dellutente) - - 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
8DHCP (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
9DHCP (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
dallAmministratore di Rete. - Solo i client con il Mac Address allinterno
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
dallAmministratore 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
dallAmministratore 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 lunica modalita che permette di
riassegnare un indirizzo IP non piu usato da un
client ad un altro che ne fa richiesta.
10DHCP (Dynamic Host Configuration Protocol)
RETE LOCALE (LAN)
DHCP DISCOVER
DHCP DISCOVER
DHCP DISCOVER
DHCP DISCOVER
DHCP DISCOVER
DHCP DISCOVER
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
11DHCP (Dynamic Host Configuration Protocol)
RETE LOCALE (LAN)
DHCP OFFER
DHCP OFFER
DHCP OFFER
DHCP OFFER
DHCP OFFER
DHCP OFFER
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, lindirizzo 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)
12DHCP (Dynamic Host Configuration Protocol)
RETE LOCALE (LAN)
DHCP REQUEST
DHCP REQUEST
DHCP REQUEST
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 lIP ricevuto e valido, in caso
affermativo avvisera quel server che accetta i
parametri di rete ricevuti precedentemente, se
lIP ricevuto non e valido mandera un (DHCP
Decline) al DHCP Server informandolo che non lo
puo accettare.
13DHCP (Dynamic Host Configuration Protocol)
RETE LOCALE (LAN)
DHCP ACK
DHCP ACK
DHCP ACK
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 lIP e gli
mandera tutti i dati di configurazione che
lAmministratore di Rete ha inserito nel DHCP
Server, inoltre scrivera i dati del client in un
suo database (leases file).Se dovesse aver gia
assegnato lIP 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
14DHCP (Dynamic Host Configuration Protocol)
RETE LOCALE (LAN)
DHCP RELEASE
DHCP RELEASE
DHCP RELEASE
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
dellindirizzo 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.
15DHCP (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 laffidabilita 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
allAmministratore di Rete
16DHCP (Dynamic Host Configuration Protocol)
- Il software usato per implementare un DHCP
- Server in ambiente Linux in questo Stage e
- lISC DHCP Server
- Si puo scaricare da http//www.isc.org
- e gratuito
- e tenuto continuamente aggiornato
- e molto stabile
17DHCP (Dynamic Host Configuration Protocol)
- Passi necessari per linstallazione di un DHCP
server - Scaricare il pacchetto software DHCP server dal
sito http//www.isc.org - Installare il pacchetto
- tar xvzf dhcp-3.0.3.tar.gz
- ./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
18DHCP (Dynamic Host Configuration Protocol)
- File di configurazione /etc/dhcpd.conf
- default-lease-time nnn specifica la validita
di default dei dati in secondi - max-lease-time nnn 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-servers ipserver1,ipserver2
specifica gli indirizzi IP dei server dns - option subnet-mask xxx.xxx.xxx.xxx specifica
la network mask - option routers iprouter1,iprouter2. specifica
gli indirizzi IP dei router/gateway - option time-servers ipserver1,ipserver2...
specifica gli indirizzi IP degli NTP server - . ci sono moltissime altre option, usare man
dhcpd.conf - ddns-updates onoff abilita/disabilita gli
aggiornamenti dinamici verso i server dns
(impostazione di - tipo globale)
- ddns-update-style ad-hocinterimnone scegli il
tipo di dinamic update che usera (ad-hoc e - obsoleto, impostazione di tipo globale)
19DHCP (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)
- subnet xxx.xxx.xxx.xxx netmask yyy.yyy.yyy.yyy
- .
- definisce la network alla quale assegnare gli
indirizzi IP, deve esistere almeno una
dichiarazione per la network definita
sullinterfaccia di rete per funzionare - group definisce un gruppo di regole valide per
i client definiti allinterno del gruppo - .
-
- host nomeclient definisce i dati di un client
20DHCP (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 lindirizzo 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
21DNS(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 dellalbero.
- 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
22DNS(Domain Name System)
Radice
.
Root name servers
Dominio .
it
com
edu
.
mil
Domini 1 livello (top-level)
standford
defense
yahoo
libero
.
.
.
.
.
infn
Domini 2 livello
lnf
.
Domini 3 livello
pcd
dhcp
dns1
dns2
www
pca
dhcp
dns1
dns2
www
pcb
dhcp
dns1
dns2
www
pcc
dhcp
dns1
dns2
www
pce
dhcp
dns1
dns2
www
Se voglio sapere il nome di dominio del server
indicato dal cerchio rosso dovro partire dal suo
nome fino ad arrivare alla radice dellalbero
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. Lultimo 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 qualcunaltro (anche se non e
strettamente necessario, normalmente si usa).
23DNS(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/mo
dificano 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
24DNS(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 allultimo nameserver
25DNS(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 3
Client 2
Client 1
Collocazione dei DNS Server Primari e Secondari
26DNS(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 linformazione 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)
27DNS(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 lintero 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 - allinterno 256 domini (da 0 a 255) per esempio
84.203.193.in-addr.arpa ed infine - allinterno 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 dellindirizzo 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.
28DNS(Domain Name System)
Radice
.
Root name servers
Dominio .
it
arpa
.
Domini 1 livello (top-level)
in-addr
libero
.
.
infn
Domini 2 livello
0
1
.
193
.
255
Domini 3 livello
lnf
.
pcd
dhcp
dns1
dns2
www
0
1
.
206
.
255
Domini 4 livello
pce
dhcp
dns1
dns2
www
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
allindirizzo 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
29DNS(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 lindirizzo email del
Responsabile (non si usa la _at_), ogni zona DEVE
avere un record SOA (allinizio) - 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
30DNS(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 lultima
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 linformazione vale
31DNS(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 nslookup FQDN si ricevera la
traduzione da nome ad indirizzo (diretta) - mentre scrivendo nslookup indirizzo 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 querytypex - (con xA/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.arp
a - 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)
32DNS(Domain Name System)
- Il software usato per implementare un DNS Server
- in ambiente Linux in questo Stage e lISC 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
33DNS(Domain Name System)
- DNS Server runnante come utente root
- Passi necessari per linstallazione 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
- ./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
34DNS(Domain Name System)
- DNS Server runnante come named in ambiente
protetto (chroot) - Passi necessari per linstallazione 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
- ./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
35DNS(Domain Name System)
- File /etc/name.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 masterslave definisce se il
server e primario per questa zona - masters nomeaclindirizzi 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 noneanynomeaclindirizzi IP
definisce chi puo effettuare richieste per
questa zona
36DNS(Domain Name System)
- Esempio di zona diretta (da nome di dominio ad
indirizzo) - _at_ 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 - IN NS mvxrm1.roma1.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 - lnf.infn.it. IN MX 20 infngw.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
37DNS(Domain Name System)
- Esempio di zona inversa (da indirizzo a nome di
dominio) - _at_ 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 - IN NS mvxrm1.roma1.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, i
record NS e MX DEVONO avere un record A.
38DNS(Domain Name System)
- Esercizio 1 Ogni studente deve installare un DNS
Server Primario per il proprio dominio - cognome. (top level domain) e verificare che la
risoluzione diretta ed inversa del proprio - dominio funzioni, inoltre verificare che funzioni
anche la traduzione dei domini esistenti su - internet.
- 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.
39WWW(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, Mozilla, ecc.) disponibile per tutti i
sistemi operativi presenti oggi (Windows, Linux,
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 client. - 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
40WWW(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, 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 laccesso 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.
41WWW(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. - Lintegrazione di piu protocolli impone
lutilizzo 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 lURL
(Uniform Resource - Locator), che rappresenta un sottoinsieme
dellURI. - Attraverso lURI e possibile definire tutto
quello che serve per raggiungere una risorsa il
protocollo da usare, - lindirizzo 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 allindirizzo della
risorsa, per esempio nel - caso dellHTTP 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
- Lutilizzo di una stringa di richiesta, presume
che la risorsa sia in grado di utilizzare
linformazione presente in tale - stringa
- http//www.brot.dg/cgi-bin/saluti.pl?buongiorno
- Quando lindirizzo 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
42WWW(World Wide Web)
- La tabella mostra lelenco di alcune
corrispondenze tra simboli particolari e la
codifica alternativa utilizzabile - negli URI
Carattere Codifica Carattere Codifica
25 26
2B / 2F
3D 7E
- 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 linformazione allegata va
interpretata, - lintestazione e staccata dallintestazione
attraverso una riga vuota, composta dalla
sequenza ltCRgtltLFgt - (Carriage Return, Line Feed).
43WWW(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
- Lultima riga vuota indica al server che la
richiesta e finita e che va quindi evasa.
44WWW(World Wide Web)
- HTTP/1.1 200 OK
- Date Tue, 27 Jan 1998 174446 GMT
- Server Apache/1.2.4
- Last-Modified Tue, 30 Dec 1997 210724 GMT
- ETag "6b003-792-34a9628c"
- Content-Length 1938
- Accept-Ranges bytes
- Connection close
- Content-Type text/html
- lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2
Final//EN"gt - ltHTMLgt
- ltHEADgt
- ltTITLEgtTest Page for Linux's Apache
Installationlt/TITLEgt - lt/HEADgt
- lt!-- Background white, links blue (unvisited),
navy (visited), red (active) --gt - ltBODY BGCOLOR"FFFFFF TEXT"000000
LINK"0000FF VLINK"000080 ALINK"FF0000gt - ltH1 ALIGN"CENTER"gtIt Worked!lt/H1gt
- ltPgt
- If you can see this, it means that the
installation of the
45WWW(World Wide Web)
- Come già accennato, il messaggio restituito dal
servente è composto da un'intestazione - (header) in cui l'informazione più importante è
il tipo di messaggio allegato (MIME), cioè - in questo caso Content-Type text/html, seguita
da una riga vuota e quindi dall'oggetto - richiesto,cioè il file index.html.
- Al termine della ricezione dell'oggetto
richiesto, la connessione ha termine, lo si nota
dal - messaggio dato da telnet Connection closed by
foreign host. - Il lavoro di un programma cliente è tutto qui
inviare richieste al servente HTTP, ricevere le - risposte e gestire i dati, possibilmente
visualizzandoli o mettendo comunque l'utente in - grado di fruirne.
- Cerchiamo ora di capire cosa sono i tipi MIME il
MIME (Multipurpose Internet Mail - Extensions) e una codifica standard per definire
il trasferimento di documenti multimediali - attraverso la rete, e nato con la necessita di
allegare documenti nei messaggi di posta - elettronica, come lacronimo lascia intendere.
- Il protocollo HTTP utilizza lo stesso metodo per
indicare al client il tipo di documento che - gli sta inviando, ed il client quando effettua
una richiesta informa il server su quali tipi - MIME sa gestire. Ma come fa il server HTTP a
riconoscere la natura di un oggetto ? - Questo grazie allestensione dei file, quindi per
ogni tipo MIME utilizzato nel protocollo - HTTP ce una associazione tipo MIME, e
lestensione relativa.
46WWW(World Wide Web)
Esempi di tipi MIME
Tipo MIME Estensioni Descrizione
application/postscript ps eps Documento PostScript
application/rtf rtf Documento Rich Text
application/x-tex tex Documento Tex/Latex
audio/basic au snd File Audio
audio/x-wav wav File Audio
image/gif gif Immagine Gif
image/jpeg jpeg jpg Immagine Jpeg
image/tiff tiff Immagine Tiff
text/html html htm Documento Html
text/plain txt Documento Testo
video/mpeg mpeg mpg mpe Animazione Mpeg
video/quicktime qt mov Animazione QuickTime
47WWW(World Wide Web)
- Le risposte del server HTTP abbiamo visto che si
compongono di una intestazione seguita da un - eventuale allegato, che costituisce la risorsa
alla quale voleva accedere il client.Lintestazion
e e separata - dallallegato da una riga vuota.
- La prima riga dellintestazione e costituita dal
codice di stato della risposta, nella migliore
delle ipotesi - dovrebbe presentarsi nel seguente modo
- HTTP/1.0 200 OK
- Comunque ci sono anche altri codici di ritorno,
ecco i piu frequenti
Codice Descrizione Codice Descrizione
200 OK 400 Richiesta errata
201 Creato 401 Non autorizzato
202 Accettato 403 Proibito
204 Nessun Contenuto 404 Non trovato
300 Scelte Multiple 500 Errore interno al server
301 Spostato in modo permanente 501 Servizio non realizzato (non disponibile)
302 Spostato temporaneamente 502 Gateway errato
304 Non modificato 503 Servizio non disponibile
48WWW(World Wide Web)
- Il software usato per implementare un Web Server
in ambiente Linux in - questo Stage e lApache v.2.0 della Apache
Software Foundation - Si puo scaricare da http//www.apache.org
- e gratuito
- e tenuto continuamente aggiornato
- e molto stabile
- e il web server piu usato al mondo, IBM, HP, ed
altre societa ne hanno uno loro basato su Apache
e poi personalizzato - possibilita di avere piu virtual host sullo
stesso server - possibilita di avere moduli aggiuntivi a quelli
basi per vari tipi di autenticazione (mysql,
postgres, oracle) , di crittografazione (ssl), di
aggiungere estensioni (php, java), ecc. - la porta standard di risposta e 80 ed usa
protocollo TCP
49WWW(World Wide Web)
- Passi necessari per linstallazione di un Web
server - Scaricare il pacchetto software Web server dal
sito http//www.apache.org - Installarlo
- tar xvzf apache-2.0.54.tar.gz
- ./configure
- make
- make install
- - Configurarlo
- modificare il file /etc/httpd/conf/httpd.conf
- eventualmente aggiungere dei tipi MIME in
/etc/httpd/conf/mime.types - - Attivare il Web server
- /etc/init.d/httpd start
- - Testare il funzionamento guardando i log in
/etc/httpd/logs/error.logaccess.log - Usare un browser per la verifica
- Attivarlo come servizio partente al riavvio della
macchina - chkconfig --add httpd
- chkconfig --level 35 httpd on
50WWW(World Wide Web)
- Esaminiamo il file di configurazione
/etc/httpd/conf/httpd.conf della versione 1.3 - ServerType standaloneinetd modalita di
funzionamento del server, standalone e la
migliore - Port porta porta che usa il web server
- Listen indirizzoipporta (se si usa anche https
Ie righe listen sono due, 80 e 443) - User nomeutente indicano utente e gruppo che
eseguira il server - Group nomegruppo
- ServerAdmin emailaddress indica lemail da
usare per riportate errori o problemi - DocumentRoot pathcompleto indica la directory
che conterra le pagine web - ltDirectory pathcompletogt consente di
specificare per una directory (e tutte quelle
sottostanti) delle - Options opzioni delle caratteristiche
particolari (tipo seguire i link Unix) deve
esistere una - AllowOverride opzioni ltDirectorygt per la
DocumentRoot
51WWW(World Wide Web)
- Esaminiamo il file di configurazione
/etc/httpd/conf/httpd.conf della versione 2.0 - Listen indirizzoipporta (se si usa anche https
Ie righe listen sono due, 80 e 443) - User nomeutente indicano utente e gruppo che
eseguira il server - Group nomegruppo
- ServerAdmin emailaddress indica lemail da
usare per riportate errori o problemi - DocumentRoot pathcompleto indica la directory
che conterra le pagine web - ltDirectory pathcompletogt consente di
specificare per una directory (e tutte quelle
sottostanti) delle - Options opzioni delle caratteristiche
particolari (tipo seguire i link Unix) deve
esistere una - AllowOverride opzioni ltDirectorygt per la
DocumentRoot - Order Deny,Allow controlla chi puo accedere
a questa directory - Allow from all tutti possono accedere a
questa directory
52WWW(World Wide Web)
- Gli esempi precedenti riguardano la
configurazione di un web server normale, un web
server che gestisce un solo - sito web, ma se volessimo gestire n siti web
con lo stesso web server ? Vediamo cosa ce da
aggiungere alla - configurazione base del file /etc/httpd/conf/httpd
.conf, valida sia per v.1.3 che per v.2.0 di
apache - NameVirtualHost indirizzoip indica lindirizzo
IP del server, che rispondera a piu web server - ltVirtualHost indirizzoipNVHgt
- ServerName FQDNdelwebserver1 indica il nome
di dominio del sito web - ServerAdmin emailaddress
- DocumentRoot pathcompleto
- ltDirectory pathcompletoDRgt
- Options opzioni
- AllowOverride opzioni
-
- Order Deny,Allow
- Allow from all Deny from all
- lt/Directorygt
53WWW(World Wide Web)
- Esercizio 1 Ogni studente deve installare un web
server sul proprio PC, che - risponda alla porta 80, verificare che viene
visualizzata la pagina di default di apache. - Esercizio 1a Sostituire la Document Root di
default con /var/webserver e creare una - pagina web iniziale per il proprio sito web,
inoltre registrare nel dns lentry relativa a - www.ltcognomegt, verificare con il browser che
andando sul sito - http//www.ltcognomegt risponda il proprio web
server con la nuova pagina appena - creata
- Esercizio 2 Ogni studente deve installare 3 web
server (Virtual Host) sul proprio PC - ognuno con la propria Document Root, file di
logs, rispondenti agli indirizzi - www1.ltcognomegt www2.ltcognomegt e www3.ltcognomegt e
registrarli nel proprio - dns
54HTTP Proxy
- Lesigenza sempre maggiore di reperire
informazioni via Internet (documenti scientifici,
programmi, demo - dei giochi, drivers, ecc.) tramite i Browsers
(Internet Explorer, Netscape, Mozilla, ecc.) fa
crescere - lesigenza di aumentare la banda da parte di
providers, istituzioni in generale, ma anche di
piccole societa. - Purtroppo fino a qualche hanno fa una linea di
connessione ad Internet costava veramente tanto,
inoltre - ci si accorgeva che allinterno di una stessa
rete, piu persone accedevano alle stesse
informazioni (siti) - piu volte durante la stessa giornata, senza
contare che le informazioni a volte rimanevano le
stesse per - diversi giorni, ed ogni volta veniva sprecata
della banda per scaricare sempre le stesse
pagine, gli stessi - documenti, gli stessi drivers.
- E da questa esigenza che e nato il Proxy
server, vediamo i vari tipi attualmente
disponibili - web (http) proxy, non e altro che un
collezionatore di pagine web, immagini e di tutti
i documenti statici esportati usando i protocolli
HTTP e su alcuni anche FTP, il suo funzionamento
e veramente semplice, ad ogni richiesta il Proxy
verifica se nella cache e gia presente il
documento, in caso affermativo lo restituisce
direttamente, altrimenti lo scarica dalla rete, e
lo restituisce, tenendone copia nella Cache, i
documenti vengono eliminati dalla Cache usando
degli algoritmi che tengono conto delleta,
della dimensione e della storia di accesso. Due
semplici algoritmi sono il LRU (Least Recently
Used, il meno recentemente usato) e LFU (Least
Frequently Used, il meno frequentemente usato).
Alcuni di questi proxy possono effettuare
filtering contains, ovvero bloccare laccesso a
determinati siti. Il proxy viene acceduto solo
attraverso un browser. - Socks proxy, e un intermediatore tra client e
server, per qualsiasi connessione TCP, il proxy
gestisce tutta la comunicazione tra client e
server interponendosi nella connessione. Questo
permette al proxy di poter gestire ogni tipo di
applicazione TCP e UDP che lo supporta, quindi
puo essere usato per leggere la posta, usare
ICQ, Napster, Edonkey ecc. ecc. purtroppo per
funzionare con alcune applicazioni ha bisogno di
programmi aggiuntivi (i normali browser non
gestiscono proxy di tipo socks)
55HTTP Proxy
- CGI proxy, non e altro che un server web dal
quale richiedere un altra pagina web, la pagina
richiesta apparira con indirizzo
http//cigproxyFQDN/http/sitowebrichiesto,
logicamente puo essere usato solo tramite luso
di un browser - Noi tratteremo solo il primo tipo (quello piu
comunemente usato) ovvero il http proxy - Quali sono i vantaggi di usare un Http Proxy
Server ? - Tempi di risposta piu rapidi se la pagina
cercata e nella cache del Proxy Server, la
risposta sara immediata (sicuramente molto piu
rapida che scaricare dalla rete la stessa pagina) - Risparmio di banda vedremo successivamente delle
statistiche che mostreranno come in un ambiente
con centinaia di client quasi il 50 delle
richieste e espletata dalla cache - Possibilita di vietare laccesso ad alcuni siti
- Possibilita di vietare laccesso web ad alcuni
utenti - Sicurezza e rispetto della privacy, i proxy
anonymous, distruggono tutte le informazioni
riguardanti il tuo computer in modo tale che le
tue informazioni non possono essere usate da
hackers e spammers
56HTTP Proxy
- Gli Http Proxy Server hanno diversi livelli di
anonimita e dipende dalla loro configurazione - Trasparente questi proxy non sono anonimi, il
server dice al sito web che viene usato un proxy,
ma fornisce tutti i dati relativi al client
(indirizzo IP, browser usato, ecc.) - Anonima questi proxy informano il sito web che
viene usato un proxy, ma non forniscono I dati
relativi al client - Distorta questi proxy informano il sito web che
viene usato un proxy, ma forniscono un indirizzo
IP fantasma, generato casualmente dal proxy
server, oppure impostato dallutente, in ogni
caso non e lindirizzo IP del client, che
effettua la richiesta - Alta Anonimita questi proxy non informano il
sito web che viene usato un proxy e forniscono un
IP fantasma generato casualmente dal proxy
server, oppure impostato dallutente, in ogni
caso non e lindirizzo IP del client, che
effettua la richiesta - E possibile inoltre creare una struttura di Http
Proxy Servers, in modo da avere una elevata
affidabilita ed - anche per suddividere il carico delle richieste,
si avranno quindi Proxy parent e sibling ai quali
richiedere le - pagine mancanti nella nostra cache, il parent
scarica anche le pagine che noi richiediamo non
presenti nella - sua cache, mentre il sibling ci fornisce solo
quelle che ha gia scaricato. - I vari proxy server comunicano tra di loro usando
il protocollo ICP (Internet Cache Protocol) via
UDP.
57HTTP Proxy
- Cerchiamo di capire come funziona il proxy server
nel dettaglio. - Quando arriva una richiesta da parte del client
(per esempio http//www.yahoo.it) - il server cerca nella sua cache per vedere se ha
la pagina richiesta - a) se non ha la pagina, la scarica dal sito, la
da al client e la copia in cache - b) se ha la pagina, vede se e ancora valida (TTL
non scaduto) - se e valida la da al client
- se non e valida (TTL scaduto), richiede al
server con un messaggio IMS se e cambiata - se e cambiata, sostituisce quella in cache e la
restituisce al client - se non e cambiata, aggiorna il TTL se viene
impostato dal server e la restituisce al client - c) Quando la cache disco e piena, vengono
cancellatte tutte le pagine ritenute vecchie e
meno accedute. - LIMS e solo un messaggio di richiesta da parte
del Proxy, per sapere dal sito se - la pagina e cambiata, solo se e cambiata la
scarica nuovamente.
58HTTP Proxy
Schema funzionamento di un normale Http Proxy
Server
www.libero.it
www.yahoo.com
Proxy server
Router/Gateway
INTERNET
Richieste http/ftp/gopher e IMS
www.ferrari.it
Richieste http/ftp/gopher
www.microsoft.com
Client 3
Client 2
Client 1
59HTTP Proxy
Schema funzionamento in ridondanza degli Http
Proxy Server tramite script nel webserver
www.libero.it
Proxy server 2
www.yahoo.com
Router/Gateway
INTERNET
Proxy server 1
www.ferrari.it
www.microsoft.com
Client 3
Client 2
Client 1
60HTTP Proxy
- Esempio di configurazione con 2 proxy server, in
affidabilita (anche se uno e sprecato perche
non fa cache finche non - muore il primo)
- //
- // File proxy.pac
- // Author Claudio Soprano
- // Date Sept 2005
- // Last Modification 22-settembre-2005
- //
- // Description Mozilla proxy auto configuration
for LNF. - //
- // The only function we need to define.
- //
- function FindProxyForURL( url, host )
-
- if (isPlainHostName(host))
- return "DIRECT"
- if (dnsDomainIs(host,".lnf.infn.it"))
- return "DIRECT"
61HTTP Proxy
Schema funzionamento in bilanciamento degli Http
Proxy Server tramite script nel webserver
Proxy server 2 Domini dispari
www.libero.it
www.yahoo.com
Router/Gateway
INTERNET
Proxy server 1 Domini pari
www.ferrari.it
www.microsoft.com
Client 3
Client 2
Client 1
62HTTP Proxy
- Esempio di configurazione con 2 proxy server,
domini pari sul primo e domini dispari sul
secondo, in caso di fail di uno dei due proxy si - va sullaltro
- //
- // File proxy.pac
- // Author Massimo Pistoni - Sandro Angius -
Claudio Soprano - // Date May 1996
- // Last Modification 13-novembre-2000
- //
- // Description Mozilla proxy auto configuration
for LNF. - //
- // The only function we need to define.
- //
- function FindProxyForURL( url, host )
-
- if (isPlainHostName(host))
- return "DIRECT"
- if (dnsDomainIs(host,".lnf.infn.it"))
- return "DIRECT"
63HTTP Proxy
Schema funzionamento di un Http Proxy Server in
modalita gerarchica utilizzando il protocollo ICP
Proxy domini IT
Proxy domini COM
Richieste domini IT
ICP
Richieste domini COM
Proxy domini GOV
Proxy server
ICP
Router/Gateway
Richieste domini GOV
ICP
ICP
INTERNET
ICP
Richieste domini ORG
Proxy domini ORG
ICP
ICP
Richieste http/ftp/gopher
Richieste domini
Client 3
Client 2
Client 1
Proxy domini
64HTTP Proxy
Differenza tra parente e sibling in una modalita
gerarchica di Http Proxy
Proxy1 domini IT parent
Proxy2 domini IT parent
Proxy