Guida pratica per
costruire una piccola rete
Rev. 2.0
Mi scuso per sicuri errori grammaticali, spero
che i pochi che lo leggeranno non ne siano infastiditi.
Il tempo e gli impegni non mi permettono altro
che questi semplici articoli.
Come su Internet,
anche nelle reti locali il protocollo più diffuso è il TCP/IP; acronimo di
Trasmission Control Protocol / Internet Protocol.
In questo articolo
discuteremo solamente delle intranet, più in particolare delle vostre reti
locali.
Bisogna ricordare che
quando si parla di TCP/IP non si parla di un solo protocollo, ma di una intera
suite di essi; qui ci limiteremo a descrivere e implementare lo stack IP,
ovvero una parte del primo gradino della suite.
Questo perché ogni
protocollo o servizio che si trova al di sopra dell’IP va oltre lo scopo del
testo, poiché si tratta di un livello più alto e più complesso; ovvero
ignoreremo tutto quello che può essere il web (HTTP), la posta elettronica (POP
e SMTP), le porte TCP e UDP, l’ICMP ecc…
Ci limiteremo a far
comunicare due computer ovunque si trovino, il resto viene in seguito.
Questo è un articolo
base, quindi cercherò di spiegarmi nel modo più semplice; senza entrare in
particolari non necessari allo scopo del testo.
Il modello OSI è uno
standard aperto proposto come traccia per poter meglio comprendere e progettare
i protocolli di comunicazione tra i sistemi; esso ha lo scopo di definire dei
confini, dei compiti e quindi delle responsabilità per ogni elemento che lo
compone.
Qui riporto un
approssimativo riferimento tra il TCP/IP e il modello OSI; approssimativo
poiché non è sempre così rigido, esistono, infatti, numerosi protocolli che
viaggiano a cavallo tra più livelli (OSPF tra Internet e Transport) o che si
poggiano su protocolli del medesimo livello (ICPM poiché lavora sull’IP).
Ma tutto ciò non c’interessa,
perché noi lavoreremo solo sul livello Internet e in particolare sul protocollo
IP.
Quello che segue non è
propriamente necessario per fare in modo che riusciate a configurare la vostra
rete, ma vi da quel livello di conoscenza base che potrebbe esservi utile; se
il vostro scopo è solamente quello di rendervi operativi e trovate questo
paragrafo molto complesso, non esitate a passare al successivo.

Cerchiamo di capire
innanzitutto cosa significano questi livelli.
Il livello fisico
(“Physical”) è quello che definisce come i dispositivi di rete debbano
comunicare, ad esempio a che intensità debbano viaggiare i segnali e a quale
frequenza.
Il “Data Link”
connette tra loro questi dispositivi definendo la modalità di scambio di
informazioni, chi abbia diritto di accedere al mezzo fisico in questo momento e
come possa contattare un determinato dispositivo appartenente alla propria
rete.
“Internet” estende
questa capacità di comunicazione rendendo ogni dispositivo teoricamente raggiungibile
e rintracciabile in una rete che non è direttamente connessa, ma distribuita
(Internet ad esempio, ma anche Intranet).
Il “Transport” (per
quanto concerne questo articolo) si occupa della comunicazione corretta e
completa tra le applicazioni; è laddove vengono definite le porte che
permettono di mettere in comunicazione l’applicazione corretta con la sua controparte
remota.
Infine “Application”,
sono tutti quei protocolli che sono a diretto contatto con l’utente e con le
applicazioni che lui usa. Questo non significa che le applicazioni stiano solo
qua; ci sono servizi che lavorano anche su livelli inferiori, ma raramente sono
sotto il controllo dell’utente.
Perché vi sto parlando
di tutto questo?
E’ molto importante
aver ben chiaro in mente questi limiti; molto spesso si cerca la fonte di
problemi nel posto sbagliato, quando non si è capaci di fare questa distinzione.
Quindi meglio avere
subito in mente di cosa si sta parlando: qui tratteremo il livello Network e
nient’altro!
Niente posta
elettronica, cartelle condivise e permessi… solo connettività Internet!
Innanzi tutto
chiariamo la differenza tra un nome e un indirizzo.
Entrambi servono ad
identificare un host (utilizzerò questa parola al posto di computer o macchina
poiché più generica), ma sono diversamente significativi; sarò più chiaro in
seguito.
Prendiamo un nome DNS
tipo: www.contoso.it.
Va letto da destra a
sinistra e ci informa che nel dominio della rete italiana abbiamo un dominio “contoso”
al quale interno si trova l’host www.
Questo dominio è
puramente logico e non fisico, infatti la macchina www potrebbe benissimo
trovarsi fisicamente nella Cambogia del nord o in orbita su qualche satellite;
in questo modo non ci è dato saperlo e probabilmente non ci interessa neppure.
Allora sorge una
domanda: come fa una macchina a rintracciarlo, se questo nome non mi dice
assolutamente nulla di dove si trovi?
Semplice, esiste una
rubrica o meglio un’intera infrastruttura di rubriche; si chiamano DNS server o
server di nomi di dominio.
I DNS server hanno il
compito di tradurre questi nomi in indirizzi IP numerici, molto più chiari per
le macchine poiché definiscono una reale gerarchia; questi indirizzi IP hanno
il formato tipo 151.99.250.4, ovvero 4 numeri decimali da 0 a 255 (o più correttamente 4 ottetti di
bit).
Come questi DNS
funzionino per ora non ha importanza, approfondiremo in seguito; ora
l’importante è capirne l’importanza.
Gli indirizzi IP si
leggono diversamente, da sinistra a destra, e il loro significato è più
complesso dei nomi; i punti non separano necessariamente una gerarchia, ma
sicuramente posso dire che le macchine che cominciano per 151.99 si trovino
“vicino”; vicino nell’albero di rete, anche se a centinaia di chilometri di
distanza.
Infine esiste un
secondo tipo di nome, quello più comune che è usato per nominare i computer.
Quante volte vi è
capitato di connettervi ad un computer usando solo il suo nome? Esempio
PCUFFICIO o PCANDREA ecc… (Benché questi non siano nomi che consiglio di usare,
sono quelli più comuni che mi capita di trovare).
Questo non è solo il
nome del computer, ma anche il suo nome NETBIOS e in rete locale si può usare;
si usa solo localmente, mentre su internet non ha valore.
Nell’implementazione
MS il nome NETBIOS aggiunto al dominio di appartenenza forma il FQDN (Fully
Qualified Domain Name) o, come lo abbiamo chiamato per semplicità, nome DNS.
Es. PC01 + CONTOSO.IT
= PC01.CONTOSO.IT
Ricordiamoci questi 3
nomi: indirizzo IP, nome DNS (o FQDN) e nome NETBIOS.
Spieghiamo ora come
creare una sottorete o subnet e che scopo abbia.
Indirizzo IP di una
scheda e Subnet Mask sono strettamente legati e viaggiano sempre assieme; un
tempo c’era anche una relazione tra di essi (non cominciate a ridere ;-) è
vero!), ma ora non è più necessaria.
Per capirla, dobbiamo
tradurre l’indirizzo in formato binario; è semplice, basta usare la
calcolatrice di Windows in formato scientifico.
Prendiamo l’indirizzo
di prima (151.99.250.4) e trasformiamolo in binario, ottetto per ottetto.
Otteniamo 10010111.01100011.11111010.00000100 (ricordate sempre gli 0 prima dei numeri per
riempire i 4 ottetti).
Associamoci
all’indirizzo IP una semplice subnet mask 255.255.0.0,
ovvero 11111111.11111111.00000000.00000000
Il passo successivo è
quello di azzerare con gli ‘0’ della maschera i valori dell’indirizzo IP e
mantenere il resto.
|
IP |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
. |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
. |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
. |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
|
Maschera |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
. |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
. |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
. |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Subnet |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
. |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
. |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
. |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
La sottorete ottenuta sarà
10010111.01100011.00000000.00000000,
ovvero 151.99.0.0; questo indirizzo viene anche usato per il nome
della sottorete.
Cosa significa?
Tutti gli indirizzi
che cominciano per 151.99
si trovano nella stessa sottorete; quindi il computer 151.99.250.5
si trova nella stessa sottorete, come 151.99.124.32.
Operativamente cosa
significa?
Se io tento di
chiamare il computer 151.99.124.32 dal 151.99.250.4 non ho bisogno di muovermi all’esterno dalla sottorete e mi basta
“urlare” il suo indirizzo tramite un “broadcast locale”.
Al contrario per
chiamare 151.108.112.44 dovrò uscire dalla mia rete e cercarlo altrove, questo si ottiene tramite
i gateway… vedremo in seguito.
Vediamo ora subnet
mask più complesse: 255.255.240.0 ovvero 11111111.11111111.11110000.00000000 è abbastanza comune.
Non è così semplice in
decimale dire qual è il valore della sottorete, perché un numero è mascherato a
metà.
L’importante è
ricordare che i primi 20 bit (in questo caso) debbano essere uguali.
La conversione a
binario diventa così essenziale.
Ricordate inoltre che
nelle maschere non si spezzano mai le sequenze di 1 per inserire uno 0, è una
pratica sconsigliata.
Perché si creano
subnet? Per poter utilizzare dei gateway e definire un confine alla propria
rete; ne parleremo in seguito.
Prima dell’introduzione del subnetting esistevano regole rigide sulla costruzione delle subnet, parte di quel retaggio rimane ancora in uso.
Ancora, questo paragrafo è puramente culturale, saltatelo se ne sentite la necessità.
Innanzi tutto s’identifica la classe leggendo i bit più significativi del primo ottetto, quelli che iniziano ad esempio con uno ‘0’ sono di classe A; la successiva classe B ha un ‘1’ subito seguito da uno ‘0’, mentre la classe C deve avere due ‘1’ e uno ‘0’.
Esiste ovviamente anche una classe D, ma è riservata e non ne parleremo qui.
|
Classe A |
0 |
x |
x |
x |
x |
x |
x |
x |
255.0.0.0 |
|
Classe B |
1 |
0 |
x |
x |
x |
x |
x |
x |
255.255.0.0 |
|
Classe C |
1 |
1 |
0 |
x |
x |
x |
x |
x |
255.255.255.0 |
Ogni classe possiede una subnet alla quale essa è associata e con la quale andrebbe usata, ma oggi questa è solo una indicazione e non più una regola.
Infatti nella rete 192.168.x.x (che vedremo dopo) appartenente alla classe C, spesso si associano sottoreti più piccole o più grandi; esse ci permettono di avere un maggior numero di sottoreti con pochi host o viceversa.
Ad esempio, se associamo una sottorete più ridotta con maschera 255.255.255.240, avremo solo 4 bit per gli host (ovvero 2^4 – 2 = 14 indirizzi, il perché a dopo) e 4 bit in più per definire le sottoreti.
La tentazione più
comune è sempre stata quella di inventarsi gli indirizzi IP nei computer della
rete e sperare che vada tutto.
E’ un grave errore,
anche nel caso funzioni; spieghiamo il perché…
Gli indirizzi in
Internet hanno una rigida diffusione e non esistono 2 macchine con lo stesso
indirizzo, come neppure 2 sottoreti; altrimenti non si sarebbe più sicuri di
che strada prendere per raggiungerli, provenendo da due direzioni differenti ci
si potrebbe imbattere in una o l’altra sottorete e quindi contattare 2 host
differenti.
Per questo è
importante sapere quali indirizzi vanno utilizzati per i propri host; se per
caso io assegnassi al mio computer l’indirizzo 207.46.245.156, scoprirei che corrisponde all’host www.microsoft.com; dopo questo errore, non
potrei in nessun modo sperare di vedere le pagine internet del sito Microsoft.
Tutto ciò perché sarà
il mio computer a rispondere una volta che il DNS mi avrà comunicato che
www.microsoft.com=207.46.245.156!
Dopotutto 207.46.254.156 è in locale e non mi serve uscire su internet…
ricordate le subnet?
Anzi, non avrò solo
mascherato la macchina 207.46.245.156, ma se avessi sperperato utilizzando una
subnet mask del tipo 255.0.0.0
non vedrei tutti gli host che iniziano per 207! Ben 16 milioni!!!
Perché? Ovvio, il mio
stack IP tenterebbe sempre di contattare l’host stando in locale.
Allora come si può
fare? Che indirizzi posso dare alla mia rete senza andare in conflitto con
quelli assegnati su Internet?
Semplice, basta consultare
l’RFC 1918 che ci
dice quali indirizzi possiamo usare per le intranet, in altre parole le reti
locali.
Il capitolo 3 elenca i
seguenti:
|
Inizio |
10.0.0.0 |
172.16.0.0 |
192.168.0.0 |
|
Fine |
10.255.255.255 |
172.31.255.255 |
192.168.255.255 |
|
Maschera
max. |
255.0.0.0 |
255.240.0.0 |
255.255.0.0 |
Sconsiglio ai novizi
di utilizzare quella di mezzo, è molto più semplice la prima che è anche la più
facile da ricordare.
Inoltre si possono
utilizzare gli interi ottetti a piacimento per suddividere le macchine in
“gruppi”. Esempio, le macchine 10.1.x.x sono al piano terra, mentre le 10.2.x.x al primo…
Nel caso la vostra
rete locale sia spezzata da uno o più router troverete utile usare la maschera 255.255.0.0; com’è facile calcolare si avranno 8 bit per
le reti (l’intero secondo ottetto) e 16 per gli host, ai quali corrispondono
256 reti e 65.536 – 2 host.
Si evita di utilizzare
gli estremi della sottorete (il primo e l’ultimo numero) perché sono riservati;
si usa, infatti, indicare la subnet utilizzando il primo indirizzo a
disposizione (ovvero 10.0.0.0)
e il broadcast con l’ultimo (10.255.255.255).
Quelli appena elencati
sono i Private Address e non sono da nessuna parte presenti in Internet e non
possono in nessun modo essere raggiunti da Internet. Significa che i computer
che li possiedono non saranno visibili su internet (perché non-routable), ma in
rete locale sì.

Altra cosa da notare è
che esiste un altro insieme di indirizzi: 169.254.0.0 – 169.254.255.255 con maschera 255.255.0.0
Essi sono utilizzati
dall’APIPA (Automatic Private IP Addressing) quando un server DHCP non è
disponibile.
I server DHCP sono
quelli che si occupano di assegnare ad una macchina un indirizzo IP, quando non
ne è stato configurato uno manualmente.
Quando una scheda di
rete viene impostata per ottenere automaticamente l’indirizzo IP, essa cerca
inizialmente un server DHCP che le dica come configurarsi e se non lo trova si
auto-configura nella classe APIPA.

Immaginate un
portatile che viene connesso a numerose reti… se in ognuna di esse ci fosse un
servizio DHCP, non ci sarebbero problemi.
E qualora non ci
fosse, tutti i computer si troverebbero in ogni caso nella classe APIPA e potrebbero
tranquillamente comunicare.
A che servono?
Sono le porte di
uscita della nostra subnet. Spesso portano su internet, ma in reti complesse
connettono tra loro più subnet (Internet è costruita proprio così).
Quando sono usati?
Ogni volta che si
richiede un indirizzo che non si trovi nella subnet, la scheda di rete chiede
al default gateway di stabilire la connessione a nome suo.
Ma cosa sono?
Gateway è un nome
generico che definisce anche i router e i bridge; oggi sono molto comuni i
router ADSL, sono dispositivi che permettono di condividere una singola
connessione internet ADSL con più macchine.

E’ ora facile capire
perché tutti i computer locali debbano stare nella stessa subnet; altrimenti la
scheda di rete (anzi lo stack IP) andrebbe a chiedere al router di metterla in
comunicazione, ma non è corretto.
Si capisce facilmente
che i gateway possiedono 2 indirizzi IP, uno per ciascuna rete che connettono,
entrambi gli indirizzi devono appartenere alle rispettive subnet; spesso si
utilizza il primo o ultimo indirizzo disponibile della subnet (escludendo i
“tutti 0” e “tutti 1”, ad esempio 192.168.0.1 o 192.168.255.254).
Questi dispositivi
fungono spesso da DHCP e DNS forwarder.
Velocemente, ne
abbiamo infatti già parlato precedentemente; sono server o servizi che si
occupano di auto-configurare i dispositivi di rete, impostano in genere
indirizzi IP, maschera, default gateway e DNS.
Si trovano spesso su
router (ADSL o ISDN) e impostano (ovviamente) gateway e DNS affinché puntino su
se stessi.
Anche il servizio di
condivisione internet (ICS) di Windows 2000 o superiori ha un mini DHCP (come
anche un mini DNS e un mini router).
Attenzione a non
impostare 2 DHCP server sulla stessa rete, se non siete esperti.
Possono essere
utilizzati per configurare una grossa quantità di parametri, tra i più importanti
i server di posta e il suffisso di dominio.
E’ possibile muoversi,
ad esempio, con un portatile da una rete all’altra senza doverne toccare la
configurazione, se configurati adeguatamente.
Sintetizzando, cosa serve
affinché i computer si “vedano” e riescano a navigare?
Se esiste un router
che fornisce servizio di DHCP (oppure avete attivato l’ICS, la condivisione
internet di Windows), basta che ponete le schede affinché acquisiscano
automaticamente la configurazione.
Altrimenti dovete
impostare la configurazione a mano; scegliete un insieme di indirizzi privati
come indicato nel paragrafo 6 e impostate il DNS e il gateway sull’indirizzo
del router.
Ricordate che
l’interfaccia del router deve trovarsi nella stessa subnet dei vostri
dispositivi.
Tutto qui, è breve, ma
non semplice.
Se non avete capito
rileggete attentamente i paragrafi precedenti.
Questo paragrafo
tratta la relazione tra il server DNS e i domini Active Directory, se non possedete
un dominio Active Directory dato da server Windows 2000 o 2003 saltate il
paragrafo.
Come già detto il DNS
spesso non si trova nella rete locale e il router fa le veci del DNS remoto del
provider di accesso ad internet.
Ma qualora fosse
necessario istallare un DNS locale, cosa dovremmo fare?
Se ad esempio
volessimo creare un dominio Active Directory con Windows 2003 Server, avremmo
bisogno di un DNS locale? Certo!
In Active Directory il
servizio DNS serve per definire lo scheletro della stessa, AD non potrebbe
funzionare senza.
Quindi è chiaro che il
DNS non può essere quello del nostro provider ISP, ma ne abbiamo bisogno uno
locale configurato come serve a noi.
Una volta creato il
servizio DNS locale e configurati i client per puntare al DNS del dominio AD,
noteremo che non riusciremo più a navigare su internet… come mai?
Il server locale non
ha informazioni per il resto della rete (internet), allora dobbiamo abilitare
l’inoltro su altri server DNS che possiedano queste informazioni.
Egli stesso si informerà
da altri se non riuscirà a risolvere le nostre richieste personalmente.
Per abilitare
l’inoltro su un servizio DNS Windows basta rimuovere la zona “.” dalla console
DNS nelle “Forward Lookup Zones”, chiudere e riaprire la console e premere
proprietà sul server DNS.
Nel tab Forwarders
potremmo configurarli come necessario. Da notare è che spesso il router funge
da DNS proxy per l’ISP, quindi è corretto puntare ad esso e non farsi dare gli
indirizzi dall’ISP (perché essi un giorno potrebbero cambiare).
Un’eccezione alla
regola è Windows 2003 che è già configurata per contattare i Root DNS Server e
quindi non ha bisogno di un inoltro, anzi è sconsigliato per ragioni di
sicurezza.
I seguenti strumenti
sono da utilizzare per identificare gli errori più comuni; sono comandi
eseguibili dal prompt dei comandi.
NB spesso i firewall bloccano l’utilizzo di
questi strumenti, quindi verificate che siano disattivati tutti sul percorso e
sui computer prima di utilizzarli; ricordate alla fine di riattivarli.
a)
IPConfig
Visualizza la configurazione di ogni scheda di rete presente sul
computer.
Con “IPConfig /all” (oppure “/showall” per versioni precedenti di
Windows) potete mostrare l’intera configurazione.
Spesso con solo questo comando si può capire dove sta il problema.
Esso è anche lo strumento che ci può dire come mai un server DHCP ha
configurato erroneamente un computer o magari non è stato configurato per
niente (ricordate APIPA?).
b)
Ping
Il modo più semplice per trovare un computer è inviare una chiamata
allo stesso, iniziate sempre con “ping INDIRIZZOIP”.
Infatti è possibile pingare tutti e tre i nominativi nel paragrafo 3,
ma pingare un nome DNS o un NETBIOS comporta sempre del lavoro aggiuntivo al
protocollo che potrebbe confonderci le idee.
Infatti implicano la risoluzione di nomi, compito aggiuntivo che in
questa fase non è di nostro interesse.
Se un “ping NOMEDNS” non funziona, potrebbe anche darsi che il server
DNS non sia raggiungibile, quindi provate successivamente con un “ping
DNSSERVER”.
c)
Tracert
Il trace route è uno strumento avanzato che ci permette di esaminare il
percorso intrapreso dai pacchetti prima di raggiungere la destinazione finale
ed eventualmente trovare l’interruzione.
Non è un argomento
semplice, per questo motivo, invito sempre le persone a impostare le reti nel
modo più semplice possibile.
Ci siamo anche
soffermati su pochissimi aspetti delle stesse, l’argomento è vastissimo; ora
sapete come collegare due host, ma questo non è sicuramente tutto.
Se il ping funziona,
significa che i due computer comunicano, ma avere accesso alle risorse è tutto
un altro discorso!
Andrea
Gallazzi [MS MVP Windows Security]