Rudimenti di TCP/IP v4

Guida pratica per costruire una piccola rete

Da Andrea Gallazzi

In questa pagina

1. Cosa è necessario sapere 1. Cosa è necessario sapere
2. Nomi e indirizzi 2. Nomi e indirizzi
3. Subnet 3. Subnet
4. Indirizzi IP validi 4. Indirizzi IP validi
5. Gateway 5. Gateway
6. DHCP 6. DHCP
7. Il necessario per una piccola rete 7. Il necessario per una piccola rete
8. DNS e Active Directory 8. DNS e Active Directory
9. Troubleshooting 9. Troubleshooting
10. Conclusioni 10. Conclusioni

1. Cosa è necessario sapere

Come su Internet, anche nelle reti locali il protocollo più diffuso è il TCP/IP (Trasmission Control Protocol / Internet Protocol).

Ora noi parleremo delle intranet (reti locali), ovvero delle vostre reti locali. 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, il primo gradino della suite. Ogni protocollo o servizio che si trova al di sopra dell’IP va infatti oltre lo scopo del testo, poiché si tratta di un livello più alto e molto più complesso. Ignoreremo quindi tutto quello che può essere il Web (HTTP), la posta elettronica (POP e SMTP) ecc… Ci limiteremo invece a far comunicare due computer ovunque si trovino, lasciando che il resto venga in conseguenza.

2. Nomi e indirizzi

Innanzitutto chiariamo la discordanza tra un nome e un indirizzo. Entrambi servono a identificare un host (un computer, nel nostro caso), ma sono diversamente significativi. Prendiamo un nome DNS tipo: www.microsoft.it. Questo indirizzo va letto da destra a sinistra e ci dice che nella rete italiana abbiamo un dominio Microsoft al quale interno si trova l’host www che si occupa della pagine Web. Questo dominio è puramente logico e non fisico. La macchina www potrebbe benissimo trovarsi fisicamente nella Cambogia del nord o in orbita su qualche satellite (no, tranquilli… non siamo così ricchi da permettercelo ;-) ). Allora come posso rintracciarlo, se questo nome non mi dice assolutamente nulla di dove si trovi? Come fanno le comunicazioni Internet a essere stabilite? Semplice, esistono delle rubriche! Si chiamano DNS server.

I DNS server hanno il compito di tradurre questi nomi in indirizzi IP numerici, molto più chiari per le macchine e che definiscono una reale gerarchia fisica. Questi indirizzi IP hanno il formato tipo 151.99.250.4, ovvero 4 numeri decimali da 0 a 255 (più correttamente 4 ottetti di bit). Come questi DNS funzionino per ora non ha importanza, approfondiremo in seguito. L’importante è capirne il valore. Gli indirizzi IP si leggono invece da sinistra a destra e il loro significato è leggermente più complesso dei nomi. Infatti i punti non definiscono necessariamente una gerarchia, ma sicuramente è possibile dire che le macchine che cominciano per 151.99 si trovino “vicino”. Vicino nella Rete, comunque connessi alla stessa rete, anche se a chilometri di distanza.

Infine esiste un terzo tipo di nome, quello più comune che viene usato per nominare i computer. Quante volte vi è capitato di connettervi a un computer usando solo il suo nome? Esempio PCUFFICIO o PCANDREA ecc… Questo non è solo il nome del computer, ma anche il suo nome NETBIOS e in rete si può usare solo localmente. Su Internet non ha senso, e neppure in una gerarchia tramite DNS. Nell’implementazione MS il nome NETBIOS aggiunto al dominio di appartenenza forma il FQDN (Fully Qualified Domain Name) o, come lo abbiamo chiamato, nome DNS.Esempio: PCUFFICIO.NOMEDOMINIO.LOCAL o, se pubblico, PCWEB.DOMINIO.IT. I nomi a disposizione sono comunque tre: indirizzo IP, nome DNS (o FQDN) e nome NETBIOS.

3. Subnet

Definiamo come creare una sottorete o subnet.

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: basta usare la calcolatrice scientifica.

Prendiamo l’indirizzo di prima (151.99.250.4) che in binario è 10010111.01100011.11111010.00000100 (ricordate sempre gli 0 prima dei numeri per riempire i 4 ottetti).

Associamoci una semplice subnet mask di 255.255.0.0 tradotta in 11111111.11111111.00000000.00000000

Ora affianchiamoli: 10010111.01100011.11111010.0000010011111111.11111111.00000000.00000000

Supponete di mascherare con gli 0 della seconda i valori della prima, e mantenete il resto.

Otteniamo 10010111.01100011.00000000.00000000, ovvero 151.99.0.0 che è il nome della sottorete.

Cosa significa? Che tutti gli indirizzi che cominciano per 151.99 si trovano tutti nella stessa sottorete (e quindi presumibilmente vicini). Quindi il computer 151.99.250.5 si trova nella stessa sottorete di un altro PC, che ha come indirizzo 151.99.124.32.

Operativamente cosa significa? Che se io tento di contattare il computer 151.99.124.32 dal 151.99.250.4 non ho bisogno di uscire dalla sottorete e mi basta “urlare il suo numero” ;-) tramite un broadcast locale. Ma per chiamare 151.108.112.44 dovrei uscire dalla mia rete e cercarlo altrove, ma non sempre è possibile e spesso non è su Internet che lo voglio cercare!Vedremo in seguito.

Vediamo ora subnet mask più complesse: 255.255.240.0 ovvero 11111111.11111111.11110000.00000000, un caso abbastanza comune. Non è così semplice in decimale dire quale sia il valore della sottorete, perché un numero viene mascherato a metà. L’importante è ricordare che i primi 20 bit (in questo caso) debbano essere uguali. Inoltre ricordate che non si spezzano mai le sequenze di 1 per inserire uno 0, è una pratica non corretta.

4. Indirizzi IP validi

Ora, la tentazione di tutti è sempre stata quella di sparare a caso gli indirizzi IP nei computer della rete e sperare che vada tutto.

Questo è un comportamento gravemente errato, 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.

Sarebbe altrimenti impossibile raggiungere una delle due o si avrebbero comportamenti differenti a seconda della strada che si intraprende.

Per questo, qualora io assegnassi al mio computer l’indirizzo 207.46.245.156 che però corrisponde alla macchina www.microsoft.com, non potrei in nessun modo sperare di vedere le pagine Internet del sito Microsoft. Questo 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 utilizzato una subnet mask del tipo 255.0.0.0 non vedrei tutte le macchine che iniziano per 207! Ben 16 milioni di macchine!!!

Allora come si può fare? Che indirizzi posso dare alla mia rete?

Semplice, basta consultare l’RFC 1918 che ci dice quali indirizzi sia possibile usare per le intranet.

Nel capitolo 3 elenca i seguenti:

Indirizzo di inizio Fine Maschera

10.0.0.0 10.255.255.255 255.0.0.0

172.16.0.0 172.31.255.255 255.240.0.0

192.168.0.0 192.168.255.255 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…

Evitate anche di utilizzare gli estremi (0 e 255) per l’ultimo ottetto perché sono riservati.

Questi sono i Private Address e non sono presenti in Internet da nessuna parte nè possono in nessun modo essere raggiunti da Internet tramite questo indirizzo. Significa che i computer che li possiedono non saranno visibili tramite questo indirizzo (perché non-routable) su Internet, ma solo in rete locale.

Quindi abbiamo evitato l’omonimia.

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 non trova un server DHCP.

Quando impostate una scheda di Rete per ottenere automaticamente l’indirizzo IP, questa cerca un server DHCP che le detti come configurarsi, e se non lo trova, si auto-configura in questa classe casualmente.

Non è errato utilizzare questo modo per configurare le schede, è anzi caldamente consigliato, perché qualora divenisse presente in rete un server DHCP (che può essere un router Internet o anche un server vero e proprio), la scheda sarebbe già pronta a funzionare.

Immaginate un portatile che viene connesso a molte reti: se in ognuna di esse ci fosse un servizio DHCP, non ci sarebbero problemi, qualora non ci fosse, tutti i computer si troverebbero comunque nella classe APIPA e si potrebbero “vedere”.

5. Gateway

Cosa sono i Gateway? Sono le porte di uscita della nostra subnet. Spesso portano su Internet, ma in reti complesse connettono tra loro più subnet.

Ogni volta che si richiede un indirizzo che non si trova nella subnet, la scheda di Rete chiede al default gateway di stabilire la connessione a nome suo.

Tutti i computer locali devono stare nella stessa subnet, altrimenti la scheda di Rete entra in Internet.

Non è necessario che il DNS sia nella subnet, perché spesso il router funge sia da DNS che da gateway.

6. DHCP

Sono server o servizi che si occupano di autoconfigurare i computer di rete. Impostano indirizzi IP, maschera, default gateway e DNS.

Si trovano spesso su router ADSL o ISDN e impostano 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 RRAS).

Meglio non impostare 2 DHCP sulla stessa rete se non siete esperti!

7. Il necessario per una piccola rete

Sintetizzando, cosa serve affinché i computer si “vedano” e riescano a navigare?

Se esiste un router che fornisce servizio di DHCP (oppure è l’ICS, la condivisione Internet), basta che mettiate tutto in automatico.

Altrimenti, se volete fare le cose a mano, scegliete un insieme di indirizzi privati come indicato nel paragrafo 4, impostate il DNS e il gateway al router.

Verificate che il router si trovi nella stessa categoria da voi scelta nel paragrafo 4.

Tutto qui, è breve, ma non semplice.

8. DNS e Active Directory

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 a Internet.

Ma qualora fosse necessario istallare un DNS locale cosa dovremmo fare?

E' il caso della creazione di un dominio Active Directory con Windows Server 2003.

In Active Directory il servizio DNS serve per definire lo scheletro della stessa, AD non potrebbe funzionare senza. Quindi è chiaro che il DNS non possa 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 nuovo DNS, non sarà più possibile navigare su internet. Il server locale non ha infatti informazioni per la Rete Internet, e allora diventa necessario abilitare l’inoltro su altri server DNS.

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. Nel tab Forwarders potremmo poi intervenire sulla configurazione. Da notare è che spesso il router funge da DNS proxy per l’ISP, quindi è corretto puntare a esso e non farsi dare gli indirizzi dall’ISP (perché un giorno potrebbero cambiare).

9. Troubleshooting

Questi semplici strumenti sono da utilizzare per trovare gli errori più comuni. Sono tutti comandi eseguibili dal prompt. Spesso i firewall bloccano l’utilizzo di questi strumenti, quindi verificate che siano disattivati tutti sul percorso e sui computer.

  1. IPConfig
    Permette di visualizzare la configurazione di ogni scheda di rete presente sul computer. Con “IPConfig / all” potete mostrare l’intera configurazione. Spesso con solo questo comando si può capire dove sta il problema. Esso è anche l’unico strumento che ci può dire come mai un server DHCP ha configurato erroneamente un computer.

  2. Ping
    Il modo più semplice per trovare un computer è inviare una richiesta di risposta dallo stesso. Iniziate sempre con “ping INDIRIZZOIP” e non “ping NOMEPC”. Infatti è possibile pingare tutti e tre gli indirizzi descritti nel paragrafo 2. Ma pingare un nome DNS o un NETBIOS comporta sempre del lavoro aggiuntivo al protocollo che potrebbe confondere le idee. In seguito provate anche i nomi per capire dove stia il problema. Se un “ping NOMEDNS” non funziona, potrebbe anche darsi che il server DNS non sia raggiungibile, quindi provate con un “ping DNSSERVER”.

  3. 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.

10. Conclusioni

Non è un argomento semplice. Per questo motivo invito sempre le persone a impostare le reti nel modo più automatico possibile.

Ci siamo qui soffermati su pochissimi aspetti delle stesse, mentre l’argomento è vastissimo. Ora sapete come collegare due computer, ma questo non è tutto.

Se il ping funziona, significa che i due computer comunicano, ma accedere alle risorse è tutto un altro discorso!