Discussione Reti e Subnet

Il subnetting è stato introdotto principalmente per motivi di efficienza. Un indirizzo IPv4 è composto da 32 bit e, inizialmente, i primi 8 indicavano la rete (net id) e i restanti 24 indicavano i dispositivi (host id). Con solo 8 bit ad indicare il net id potevano esserci al massimo 2^8 = 128 reti distinte. Pochissime. Per ovviare a questo problema, negli anni '80 è stata introdotta una suddivisione in classi.
Codice:
Classe A: 0   [ 7 bit net id] [24 bit host id]
Classe B: 10  [14 bit net id] [16 bit host id]
Classe C: 110 [21 bit net id] [ 8 bit host id]
In totale avevamo 2^7+2^14+2^21=2113664 reti distinte: molto meglio rispetto alle precedenti 128, ma comunque poche. In realtà erano anche meno perché alcuni indirizzi servivano a fare multicast (classe D) e altri erano riservati (classe E). Inoltre, ci sono reti in cui 2^24=16777216 host sono pochi (e.g., un rete di telecom) e ci sono reti in cui 2^8=256 host sono troppi (e.g., la tua rete di casa).

Per ovviare a questi problemi, negli anni '90 è stato introdotto il Classless Inter-Domain Routing e il subnetting viene fatto con l'ausilio delle subnet mask. La dimensione delle sottoreti non è più fissata dal protocollo, ma viene costruita su misura dagli amministratori di rete: al posto di dover scegliere tra 8 (classe A), 16 (classe B) o 24 (classe C) bit di net id, puoi prendertene quanti ne vuoi. Ad esempio, se vuoi una sottorete con 20 hosts, prima dovevi prenderti tutto un indirizzo classe C da 256 hosts di cui 236 andranno sprecati, mentre ora puoi configurare il router con una subnet mask /27 (i.e., 27 bit di net id 5 bit di host id) e occupare lo spazio per solo 2^5=32 hosts (in realtà 30, perché il primo è l'indirizzo di rete e l'ultimo serve per fare broadcast).

Ciò che ho capito è:
-la somma di 1, 2, 4, 8... è 255. Non so a cosa mi serve quest'informazione.
-le classi, A B e C per categorizzare gli indirizzi IP
-i bit vanno a gruppi da 8.. 8 16 24 32 appunto, e la subnet presenta " \22 " per esempio o piu comunemente 16/24, ma non so cosa significhi ne a cosa serva.
-si va da 0 a 255, e si controlla se è segnato 1 o 0 quel numero, ma non ho capito il senso.
Se mi fornisci una spiegazione io posso provare a completartela e chiarire i tuoi dubbi, ma con una lista di questo tipo io non so proprio cosa farci. Capisco che vuoi una spiegazione approfondita, ma non ho la pretesa di essere più bravo della gente che ha speso il proprio tempo per scrivere un libro, una pagina di wikipedia o una guida su youtube. Scendiamo a compromessi e prova a fare domande meno ampie.

Andando a intuito direi che ti stai riferendo alla rappresentazione puntata degli indirizzi IPv4, ma gli indirizzi IPv6 usano una notazione completamente diversa quindi non pensare che sia particolarmente importante. In ogni caso, un indirizzo IPv4 è formato da 32 bit ed è tipicamente rappresentato come quattro numeri 0 a 255 separati da un punto
Codice:
00000000.00000000.00000000.00000000 => 0.0.0.0
10101100.01000011.01000111.10110111 => 172.67.71.183
11111111.11111111.11111111.11111111 => 255.255.255.255
questo perché 00000000 in binario è 0 in base dieci e 1111111 in binario è 255 in base dieci. Lo stesso discorso vale per le subnet masks, che si possono rappresentare sia con la notazione con la barra che con la notazione con puntata
Codice:
/0  => 00000000.00000000.00000000.00000000 => 0.0.0.0
/27 => 11111111.11111111.11111111.11100000 => 255.255.255.224
/32 => 11111111.11111111.11111111.11111111 => 255.255.255.255
dove /27 vuol dire semplicemente 27 uni seguiti da 32-27=5 zeri e la notazione puntata segue dalla conversione da binario a decimale. Se vuoi calcolare il range degli host per la rete di 172.67.71.183/27 devi semplicemente applicare la maschera
Codice:
10101100.01000011.01000111.10110111 => 172.67.71.183
11111111.11111111.11111111.11100000 => /27
----------------------------------------------------
10101100.01000011.01000111.10100000 => 172.67.71.160 (indirizzo di rete)
10101100.01000011.01000111.10111111 => 172.67.71.191 (indirizzo broadcast)
in particolare, /27 vuol dire tieni i primi 27 bit così come sono e metti gli altri tutti a zero per avere il primo indirizzo (net id) e tutti a uno per avere l'ultimo indirizzo (broadcast). In informatichese questa operazione si chiama bitwise and.
 
Inizio a discutere gli esercizi. Con "the network" qui si intende quello che nei post precedenti ho chiamato net id.
Codice:
            | binario                             | standard            |
            |-------------------------------------+---------------------|
indirizzo   | 10101100.00010000.00000010.00000000 | 172.16.2.0          | (valore fornito)
subnet mask | 11111111.11111111.11111110.00000000 | 255.255.254.0 (/23) | (valore fornito)
net id      | 10101100.00010000.00000010.00000000 | 172.16.2.0          | (valore calcolato)
broadcast   | 10101100.00010000.00000011.11111111 | 172.16.3.255        | (valore calcolato)

L'indirizzo 172.16.3.12 è all'interno della rete? Sì, perché 172.16.2.0 < 172.16.3.12 < 172.16.3.255.
L'indirizzo 172.16.2.66 è all'interno della rete? Sì, perché 172.16.2.0 < 172.16.2.66 < 172.16.3.255.
Lindirizzo 172.16.3.240 è all'interno della rete? Sì, perché 172.16.2.0 < 172.16.3.240 < 172.16.3.255.
Lindirizzo 172.16.4.2 è all'interno della rete? No, perché 172.16.2.0 < indirizzi_all_interno_della_rete < 172.16.3.255 < 172.16.4.2.
Quindi 172.16.3.12, 172.16.2.66 e 172.16.3.240 sono tre indirizzi all'interno della rete 172.16.2.0/23 mentre 172.16.4.2 è all'esterno di questa rete. Passiamo al secondo esercizio
Codice:
            | binario                             | standard          |
            |-------------------------------------+-------------------|
indirizzo   | 11000000.10101000.00000001.00000000 | 192.168.1.0       | (valore fornito)
subnet mask | 11111111.11111111.00000000.00000000 | 255.255.0.0 (/16) | (valore fornito)
net id      | 11000000.10101000.00000000.00000000 | 192.168.0.0       | (valore calcolato)
broadcast   | 11000000.10101000.11111111.11111111 | 192.168.255.255   | (valore calcolato)

Eh? Ma non ha alcun senso. Abbiamo detto che net id e network sono la stessa cosa, ma qui hanno due valori diversi.
In questo caso 192.168.1.0 è un indirizzo all'interno della rete 192.168.0.0/16 perché 192.168.0.0 < 192.168.1.0 < 192.168.255.255.
Fin qui, tutto chiaro?

Sono abituato a vedere gli indirizzi di una lan con subnet mask /8 /16 /24 e che quindi ogni ottetto è riservato o solo per la rete o solo per gli host (/8 R.H.H.H /16 R.R.H.H /24 R.R.R.H)
Quando le subnet sono /0, /8, /16 o /24 si parla di otteti perché 32-0=32=8*4 (quattro otteti), 32-8=24=8*3 (tre otteti), 32-16=16=8*2 (due otteti) e 32-24=8 (un otteto). Sei abituato a vedere subnet mask con questi valori, ma non c'è nessuna regola. Se prendi una /23 (come nel primo esercizio) non puoi più parlarmi di otteti perché 32-23=9 non è un multiplo di otto e chiamarlo nove ottavi di otteto sarebbe ridicolo. In generale, dimenticati di questa cosa degli otteti e fai conto che vedi spesso quelle maschere per pura casualità. (In realtà li trovi anche perché gli esercizi fatti con quei numeri sono molto facili da fare senza calcolatrice.)

Quello che non mi torna è come fare a trovare le sottoreti di un indirizzo tipo questo che hai portato a esempio, ovvero 142.250.184.67/17 perchè non capisco quando il terzo ottetto si riferisce a un host o ad una rete, visto che in pratica ho sempre visto reti lan con subnet mask /16 o /24.
Non capisco cosa intendi con "trovare le sottoreti" e non penso che sia una cosa utile e interessante da trovare. Negli esercizi che abbiamo appena svolto abbiamo un indirizzo di rete e degli indirizzi all'interno di questa rete. Ognuno di questi indirizzi interni puo' appartenere a un router che fa un'altra divisione con un altra subnet mask (più grande della precedente) oppure può appartenere ad un host o può essere semplicemente libero. Nel caso 142.250.184.67/17 non mi puoi parlare di otteto perché 32-17=15 non è un multiplo di otto: abbiamo 17 bits che identificano la rete e 15 che identificano gli indirizzi all'interno della rete. Se preferisci la notazione puntata basta fare i calcoli (gli stessi che ho fatto nei post precedenti)
Codice:
            | binario                             | standard            |
            |---------------------------------------+-------------------|
indirizzo   | 10001110.11111010.10111000.01000011 | 142.250.184.67      | (valore fornito)
subnet mask | 11111111.11111111.10000000.00000000 | 255.255.128.0 (/17) | (valore fornito)
net id      | 10001110.11111010.10000000.00000000 | 142.250.128.0       | (valore calcolato)
broadcast   | 10001110.11111010.11111111.11111111 | 142.250.255.255     | (valore calcolato)
Gli indirizzi della rete 142.250.128.0/17 sono tutti gli indirizzi strettamente maggiori di 142.250.128.0 e strettamente inferiori a 142.250.255.255 (e 142.250.184.67 è effettivamente compreso tra questi due valori).

Il net id e il broadcast li trovo semplicemente applicando la maschera. In una rete /n il net id si trova ricopiando i primi n bit dell'indirizzo e mettendo gli altri 32-n bit a zero e il boardcast si trova ricopiando i primi n bit dell'indirizzo e mettendo gli altri 32-n bit a uno. I numeri in notazione puntata li tiri fuori convertendo da binario a decimale. Se la subnet mask è un multiplo di otto è facile perché non devi nemmeno convertire in binario: il net id lo trovi ricopiando i primi n/8 numeri e mettendo zero negli altri (32-n)/8 e il broadcast lo trovi ricopiando i primi n/8 numeri e mettendo 255 negli altri (32-n)/8. Però vabbé, se la maschera è un multiplo di 8 sei semplicemente in un caso fortunato in cui è immediato fare i calcoli a mente. Nella pratica non c'è nessuna ragione per preferire una /16 rispetto ad una /29, dipende solo dalle tue esigenze.
 
Ultima modifica:
questa parte no, non ho capito l'operazione svolta. Inoltre leggerò a riguardo di bitwise and !
Facciamo finta che io sono l'host 142.250.184.67 in una rete /17. Scrivo l'indirizzo IPv4 in binario
Codice:
10001110.11111010.10111000.01000011
voglio sapere qual è il primo indirizzo all'interno della mia sottorete (chiamato net id) e qual è l'ultimo indirizzo all'interno della mia sottorete (l'indirizzo usato per fare broadcast). Cosa faccio? I primi 17 bit li ricopio (operazione svolta dalla bitwise and), poi devo scegliere cosa scrivere nei restanti 32-17=15 bits che formano un indirizzo IPv4 (32 bit). Il primo indirizzo sarà quello in cui questi bit finali sono tutti a zero, l'ultimo indirizzo sarà quello in cui questi bit finali sono a uno
Codice:
10001110.11111010.10111000.01000011 => mio host in una /17
10001110.11111010.10000000.00000000 => indirizzo di rete (net id)
10001110.11111010.11111111.11111111 => indirizzo per fare broadcast

Quanto ti riferisci al fatto che una rete domestica necessiti pochi indirizzi host al contrario di una grossa azienda, mi chiedo chi o meglio quale organo gestisca la distribuzione di questi; per non sprecare una classe C non bastava gestire le assegnazioni in maniera consona? (così ammortizzando la mancanza)

Perchè ti viene proposto un indirizzo in maniera non classica? per classica intendo secondo i canoni della numerazione. Quando si incontra la necessità di definire il numero di un qualcosa, quindi una moltitudine, si aggiunge 1 elemento alla volta. Provo a spiegare con piu semplicità: se si aggiunge un elemento a una lista, basta fare +1. Se avevo 20 ora ho 21 elementi.
La distribuzione degli indirizzi viene gestita dagli ISP (e.g., telecom, fastweb, etc.) e l'organizzazione che regola il tutto si chiama IANA. Perché non si va in ordine con la numerazione? Perché sarebbe molto poco efficiente. Le tabelle di routing diventerebbero troppo grandi e la gestione degli indirizzi sarebbe problematica anche per le necessità degli anni '80, quando la divisione in classi è stata proposta. La divisione in sottoreti con il meccanismo di masking che ti ho spiegato è anche molto facile da implementare in hardware: io stesso ho preferito spiegartelo usando i numeri binari piuttosto che le altre rappresentazioni.

Perchè non si potevano contare gli indirizzi IP senza x.x.x.x ma tipo così 78.249.100.066 (inteso non come numero'dot'numero, ma come 78 Milioni abbondanti, ovvero il 78milionesimo indirizzo)?
Si può. Tu ritieni che sia facile e poco confusionario dire tre miliardi e duecentotrentadue milioni e duecentotrentacinquemilacinquecentoventuno, mentre quelli che hanno creato lo standard hanno preferito dire 127.0.0.1. La tua notazione è buona quanto la loro. Quello che importa è che il numero che ci sta sotto (il binario che io mi sono ostinato a riportare negli esempi, per capirci) sia sempre quello. Come ti ho già scritto, in IPv6 la notazione puntata non si usa più. In IPv6 si usa una notazione del tipo 2606:4700:20::ac43:47b7; con duepunti come separatore, con valori esadecimali e omettendo gli zeri dove possibile.

Il vantaggio di separare in blocchetti nasce dal fatto che i numeri più piccoli tendono ad essere più memorabili. Lo fanno anche con i numeri di telefono: "il mio numero è tre miliardi e quattrocentosettanta milioni e centocinquantaseimila....". Voglio vederti a prendere nota ;)

sebbene siano numeri molto grandi sarebbe piu esemplificativo rispetto a creare rete e sottorete e classificazioni di indirizzi, ognuno usava il 'suo' in tal modo.
La rappresentazione puntata degli indirizzi non ha alcun impatto sul funzionamento di sottoreti né sulla classificazioni degli indirizzi. È soltanto un numero che hanno ritenuto essere più leggibile se espresso in quel modo. Rileggi il mio messaggio precedente fingendo che esistano solo i numeri binari e non cambia assolutamente niente. Probabilmente c'è qualcosa che non hai capito bene.

La subnetmask è già impostata nel router, eppure io non ho toccato nulla. Di fabbrica quindi ti forniscono un router differentemente impostato a seconda del contratto che firmi?
Impostazioni di default per i router casalinghi. Alcuni indirizzi IPv4 sono per uso riservato e tutti gli indirizzi 192.168.x.x sono riservati per uso privato. Io ti vendo un router con indirizzo di rete 192.168.0.0 e subnet mask /24 e tu come lo colleghi sai già che non stai andando a rubare indirizzi a nessuno. I tuoi devices si prendono in prestito il loro indirizzo tra il pool di 2^8=512 disponibili (in realtà, due in meno) grazie a un protocollo chiamato DHCP. In questo modo, tu non devi essere un esperto di reti per installare un modem/router in casa, anche perché noi utenti comuni non ce ne facciamo niente di diverse sottoreti e cose di questo tipo, un'unica LAN è più che sufficiente.

L'indirizzo pubblico, quello che leggi su whatsmyipaddress.com, te lo fornisce il tuo ISP in modo relativamente simile. Semplificando un po', il tuo router di casa è collegato a uno dei routers del tuo ISP e loro hanno configurato il protocollo DHCP per fornirti uno degli indirizzi IP all'interno di una delle loro sottoreti.

Nota che DHCP te li fornisce in prestito gli indirizzi, quindi se riavvii il router può essere che i tuoi indirizzi (sia quello pubblico che quelli locali) cambino. Alcuni ISP ti danno un indirizzo statico se paghi di più.
 
  • Mi piace
Reazioni: billys e 0xbro
Hai qualche esercizio da linkarmi per approfondire?
No, non ho nessun esercizio da girarti. Molti libri hanno esercizi a fine capitolo, quindi volendo puoi scaricare un po' di libri a caso e controllare se gli esercizi proposti ti piacciono. Spesso gli esercizi di costruzione della rete si fanno con l'ausilio di un software di simulazione (GNS3, VIRNL, Packet Tracer, etc.) dove puoi anche configurare i router via linea di comando e fare altre cose abbastanza complesse. Se vuoi esercizi mirati per chi è interessato a al penetration testing devi provare a taggare qualcun altro.
 
La iana (giusto, pessima memoria, ma ora ricordo bene!) che gestisce il tutto, non ha reso flessibile appunto l'utilizzo degli indirizzi IP?
Per queste parti puramente storiche, dove non c'è nessun concetto da capire, affidati a wikipedia: "the Internet Engineering Task Force introduced CIDR in 1993". Quindi no, non è stata la IANA, è stata l'IETF... ma vabbé, buono a sapersi ma alla fine ce ne frega poco.

Facciamo una cosa, dimentichiamoci di internet. Diciamo che hai una rete di computer interconnessi, che comunica tramite il protocollo IPv4, gestita totalmente da te e scollegata da internet.

Se nella home network ho collegati 5 dispositivi, avrò 1 indirizzo ip in uso , che si frammenta in \1 \2 ..\5 , quindi perchè leggo 'bisogna calcolare' ?
Assolutamente no. Ogni dispositivo ha un indirizzo IP tutto suo, altrimenti come facciamo a contattarlo? Le subnet mask (sub = sotto, net = rete) servono per creare sottoreti. Se hai 5 dispositivi connessi alla tua rete di casa, hai 1 rete e 5 dispositivi. Dalla domanda che mi hai fatto mi sembra che stai veramente facendo tanta tanta confusione.

Il "bisogna calcolare" serve se vuoi mettere in piedi un infrastruttura. Inizia a capire la teoria, poi possiamo crearci uno scenario ipotetico dove lavoriamo come network administrators e, chessó, abbiamo 2000 computer nel lugo A, 300 computer nel luogo B, 50 computer nel luogo C, ecc... e vogliamo farli parlare tra loro. Prima di partire con questo discorso, però, preferirei che tu avessi chiara almeno la teoria di base.

p.s. se puoi visto non conosco il calcolo binario conviene facciamo calcoli con il sistema metrico decimale, se ha senso parlare di questo. se puoi spiegarmi senza "zeri e uno"
Se non uso il binario il discorso diventa un po' meno intuitivo, perché i numeri diventano meno puliti. Giusto per farti capire di cosa sto parlando, in questo esempio uso sia il binario che la notazione con i quattro numeri 0-255 separati dal punto e sia la notazione "numero decimale intero" che hai suggerito tu. Partendo dall'host (142.250.184.67) e dalla subnet mask (/17) ti faccio calcolo il net id e l'indirizzo su usato per fare broadcasting.
Codice:
             binario                             | standard        | decimale
-------------------------------------------------+-----------------+-----------
host      => 10001110.11111010.10111000.01000011 | 142.250.184.67  | 2398795843 
net id    => 10001110.11111010.10000000.00000000 | 142.250.128.0   | 2398781440
broadcast => 10001110.11111010.11111111.11111111 | 142.250.255.255 | 2398814207
Come ho calcolato il net id in binario? Ho ricopiato i primi 17 bit dell'host e poi ho scritto tutti zeri. Come ho calcolato l'indirizzo broadcast? Ho ricopiato i primi 17 bit dell'host e poi ho scritto tutti uni. Perché sto ricopiando proprio 17 bit? Perché la subnet (che ti ho fornito come testo dell'esercizio) è una /17.

È facilissimo, d'altronde dev'essere un'operazione anche facile da implementare in hardware. Ma come faccio a spiegarti come sono passato da 2398795843 a 2398781440 per calcolare il net id in decimale? E come faccio a spiegarti come sono passato da 2398795843 a 2398814207 per calcolare l'indirizzo broadcast in decimale? Sì, alcune cifre le ho ricopiate... sono tutti numeri che iniziamo per 2398XXXXXX, ma non è affatto chiaro cosa sta succedendo! Ho usato il binario invece della notazione puntata e del numero decimale perché ritengo che sia il modo più semplice di spiegartelo.

Senza dubbio è meglio scrivere e capire in binario poichè è linguaggio macchina, ma non capisco quando dici che non potrebbe funzionare neanche secondo gli standardi anni 80; qual'è il problema di indicare un numero con piu cifre? 1miliardo : 1.000.000.000 , 10 miliardi si aggiunge uno zero. Quando leggo 192.126.38.9/26 ho comunque tanti numeri, cosa cambia?
Sempre riprendendo l'esempio precedente, in binario posso dire: tutti i numeri che iniziano per 10001110.11111010.1XXXXXXX.XXXXXXXX appartengono alla subnet del luogo A. Usando il decimale avrei dovuto dire: tutti i numeri compresi tra 2398781440 e 2398814207 appartengono alla subnet del luogo A. Ma soprattutto, se si andasse in ordine con la numerazione, come ti ho risposto nel post precedente, le tabelle di routing diventerebbero molto grandi.

Eviterei di aggiungere troppa carne al fuoco, anche perché mi sembra che non hai chiaro quanto detto fin ora. Per adesso preferisco evitare di parlare di cosa sono e come funzionano le tabelle di routing. Limitati a sapere che all'interno dei routers c'è un tabella che serve per inviare il segnale verso la giusta direzione: se sei in italia e vuoi comunicare con un pc in nuova zelanda, il segnale dovrà "fare scalo" su tanti routers intermedi. Per spiegarti come si presenta il problema dovrei andare più nel dettaglio.

Non ho davvero capito.
Ho capito che il problema dello spreco di indirizzi è stato risolto ma non ho capito il modo in realtà, se non 'teoricamente' a parole.
Il problema è stato "risolto" più volte negli anni e in modi diversi. IPv4 è nato negli anni '80, dove i personal computer non c'erano e internet per come lo conosciamo adesso non c'era. Ad oggi abbiamo telecamere di sicurezza, speakers, termostati e persino le lampadine collegate su internet. Il problema della scarsità degli indirizzi è stato risolto con IPv6 dove si passa da indirizzi a 32 bit a indirizzi a 128 bit: da circa 4 miliardi di indirizzi diversi ad oltre 3 trillioni di quadrilioni (2^128 = 340282366920938463463374607431768211456).

Dimenticati per un attimo il problema dello spreco di indirizzi e guarda anche solo il vantaggio in termini di flessibilità. Inizialmente potevi comprare solo subnetworks /8, con la divisione in classi degli anni '80 potevi scegliere tra /8, /15 e /22, mentre con l'introduzione del Classless Inter-Domain Routing puoi impostarti /quello_che_vuoi.

Non basterebbe quindi sapere già 'quant'è grande' la propria subnet per sapere che per conoscere il ... terzo dispositivo collegato che utilizza il terzo IPV4 della subnet?
Come dicevo nel messaggio precedente, se la tua rete è 192.168.1.0/24 hai la possibilità di connettere 512-2=510 host diversi. Il loro indirizzo può variare tra 192.168.1.1 fino a 192.168.1.254 e non vedo come tu possa sapere se c'è un solo host connesso o se ce ne sono 400 a priori. Anche perché gli host si connettono e si disconnettono, ma i parametri della rete non cambiano mica.

I tuoi devices non sono costretti a prendere numeri "in ordine". Puoi avere tre devices connessi e uno ha indirizzo 192.168.1.200, un altro ha 192.168.1.123 e il terzo ha indirizzo 192.168.1.1. Anche se andassero in ordine (DHCP lo fa), magari attacchi 200 devices diversi e poi ne scolleghi 197 e ti ritrovi nella situazione che ti ho appena descritto. Se vuoi sapere quanti devices ci sono e qual'è il loro indirizzo, puoi pingare l'indirizzo di broadcast: fai ping su 192.168.1.255 e tutti i devices nella rete dovrebbero rispondere se il loro firewall te lo permette (tipicamente è bloccato da tutti i sistemi operativi).

Comunque sto facendo fatica a capire cosa hai capito e cosa non hai capito. E soprattutto faccio fatica a capire cosa vuoi calcolare. Ho capito che hai letto in giro per internet che quando si creano subnet bisogna fare dei calcoli eccetra eccetra... ma se non fissi un possibile scenario non c'è niente da calcolare. Vai in giro per internet a cercare un esercizio dove "bisogna calcolare", prova a vedere se ti è chiaro cosa chiede e poi vediamo come risolverlo. Se tutto va bene, ne trovi di già risolti anche qui su questo forum.
 
  • Mi piace
Reazioni: billys

billys

Utente Iron
14 Agosto 2021
5
1
0
5
Buongiorno.
Ho precedentemente e a lungo cercato su internet riguardo quest'argomento, ma non mi è chiaro.
Ho letto post, ho visto video ho fatto del mio meglio ma non mi è chiaro.
Come funziona il subnetting? Ho visto che 'si calcolano' cose, ma non ho capito ne cosa ne perchè, ergo, necessiterei una spiegazione approfondita e con parole vostre, sperando che possa comprendere finalmente questo concetto.

Ciò che ho capito è:
-la somma di 1, 2, 4, 8... è 255. Non so a cosa mi serve quest'informazione.
-le classi, A B e C per categorizzare gli indirizzi IP
-i bit vanno a gruppi da 8.. 8 16 24 32 appunto, e la subnet presenta " \22 " per esempio o piu comunemente 16/24, ma non so cosa significhi ne a cosa serva.
-si va da 0 a 255, e si controlla se è segnato 1 o 0 quel numero, ma non ho capito il senso.


Mi dispiace per la confusione, spero qualcuno possa riordinare le idee e dare un senso al tutto.
Grazie!
 
Sto leggendo e ti sono Infinitamente grato.


Quanto ti riferisci al fatto che una rete domestica necessiti pochi indirizzi host al contrario di una grossa azienda, mi chiedo chi o meglio quale organo gestisca la distribuzione di questi; per non sprecare una classe C non bastava gestire le assegnazioni in maniera consona? (così ammortizzando la mancanza)

La subnetmask è già impostata nel router, eppure io non ho toccato nulla. Di fabbrica quindi ti forniscono un router differentemente impostato a seconda del contratto che firmi?


Sinceramente credo tu stia spiegando in maniera eccelsa, o in ogni caso, le tue parole stanno facendomi vedere piccole sfaccettature differenti. Ognuno col suo contributo crea qualcosa di diverso, aggiunge. Ti ringrazio infatti per questo, ora provo anche io a fare domande specifiche. Non importa se ho già letto a riguardo, purtroppo nonostante gli sforzi , non mi è chiaro.
Sarò piu preciso: è il pc a valutare la subnet? un amministratore di rete lo troviamo in un azienda, ma i computer comprati son già programmati per funzionare così come sono; quindi "perchè" devo modificare la subnet? in che modo può essermi utile se l'assegnazione ip e molto altro sono automatizzati?
Perchè ti viene proposto un indirizzo in maniera non classica? per classica intendo secondo i canoni della numerazione. Quando si incontra la necessità di definire il numero di un qualcosa, quindi una moltitudine, si aggiunge 1 elemento alla volta. Provo a spiegare con piu semplicità: se si aggiunge un elemento a una lista, basta fare +1. Se avevo 20 ora ho 21 elementi. Perchè non si potevano contare gli indirizzi IP senza x.x.x.x ma tipo così 78.249.100.066 (inteso non come numero'dot'numero, ma come 78 Milioni abbondanti, ovvero il 78milionesimo indirizzo) ? sebbene siano numeri molto grandi sarebbe piu esemplificativo rispetto a creare rete e sottorete e classificazioni di indirizzi, ognuno usava il 'suo' in tal modo. Perdona la mia visione semplicistica, ma da domande semplici mi tolgo i dubbi semplici, quelli riguardo il "senso/logica" del problema.


Codice:
Codice:
/0  => 00000000.00000000.00000000.00000000 => 0.0.0.0
/27 => 11111111.11111111.11111111.11100000 => 255.255.255.224
/32 => 11111111.11111111.11111111.11111111 => 255.255.255.255
Fin qua mi è tutto chiaro

Codice:
10101100.01000011.01000111.10110111 => 172.67.71.183
11111111.11111111.11111111.11100000 => /27
----------------------------------------------------
10101100.01000011.01000111.10100000 => 172.67.71.160 (indirizzo di rete)
10101100.01000011.01000111.10111111 => 172.67.71.191 (indirizzo broadcast)
in particolare, /27 vuol dire tieni i primi 27 bit così come sono e metti gli altri tutti a zero per avere il primo indirizzo (net id) e tutti a uno per avere l'ultimo indirizzo (broadcast). In informatichese questa operazione si chiama bitwise and.
questa parte no, non ho capito l'operazione svolta. Inoltre leggerò a riguardo di bitwise and !

Provo a riflettere su alcune difficoltà specifiche e prossimamente aggiungo dettagli, così da poter farmi guidare meglio, intanto spero di aver esposto un po piu a fondo i miei dubbi generali e le parti meno comprese.

Complimenti per la spiegazione, davvero.
 
Ultima modifica:
Purtroppo non conosco il binario e ciò mi pesa nella comprensione parecchio. Ma vedo la qualità della spiegazione, peccato non riesco a assimilarla.

Cominciamo!
Innanzi tutto, riguardo il calcolo della subnet: mi ricollego al discorso di prima.. quando gli indirizzi a disposizione erano Non flessibili si verificava il fenomeno della sovrabbondanza con un conseguente dispendio di indirizzi IP non utilizzati.
La iana (giusto, pessima memoria, ma ora ricordo bene!) che gestisce il tutto, non ha reso flessibile appunto l'utilizzo degli indirizzi IP?
Se nella home network ho collegati 5 dispositivi, avrò 1 indirizzo ip in uso , che si frammenta in \1 \2 ..\5 , quindi perchè leggo 'bisogna calcolare' ? cosa devo calcolare e perchè?
...
voglio sapere qual è il primo indirizzo all'interno della mia sottorete (chiamato net id) e qual è l'ultimo indirizzo all'interno della mia sottorete (l'indirizzo usato per fare broadcast). Cosa faccio? I primi 17 bit li ricopio (operazione svolta dalla bitwise and), poi devo scegliere cosa scrivere nei restanti 32-17=15 bits che formano un indirizzo IPv4 (32 bit). Il primo indirizzo sarà quello in cui questi bit finali sono tutti a zero, l'ultimo indirizzo sarà quello in cui questi bit finali sono a uno
Codice:
10001110.11111010.10111000.01000011 => mio host in una /17
10001110.11111010.10000000.00000000 => indirizzo di rete (net id)
10001110.11111010.11111111.11111111 => indirizzo per fare broadcast

p.s. se puoi visto non conosco il calcolo binario conviene facciamo calcoli con il sistema metrico decimale, se ha senso parlare di questo. se puoi spiegarmi senza "zeri e uno"

Senza dubbio è meglio scrivere e capire in binario poichè è linguaggio macchina, ma non capisco quando dici che non potrebbe funzionare neanche secondo gli standardi anni 80; qual'è il problema di indicare un numero con piu cifre? 1miliardo : 1.000.000.000 , 10 miliardi si aggiunge uno zero. Quando leggo 192.126.38.9/26 ho comunque tanti numeri, cosa cambia?


CERTO che lo sarebbe, scrivere un numero di milioni a lettere sarebbe molto confusionario, concordo; differentemente a numero, una cifra vale l'altra, credo.. utilizzare i puntini per spezzare il numero, pensa, l'ho fatto qua sopra senza aver letto ancora il tuo commento sul numero di telefono e la fatica mnemonica ! (1.000.000.000)

No ipv6 so come è scritta la notazione ma non me ne sono interessato, tanto ancora non è completamente rodato e utilizzato, ancora siamo con il 4. Inoltre già sto facendo assai fatica nella comprensione del primo step, perdonami! magari in futuro ti tedierò con una spiegazione su quest'altro :) (si scherza)

Senza dubbio c'è qualcosa che non ho capito bene, ma non capisco cosa. Ogni volta provo un approccio da una sfaccettatura diversa ma mi perdo in altri dubbi, magari risolvendo (temporaneamente eheh) i primi..
Messaggio unito automaticamente:

Impostazioni di default per i router casalinghi. Alcuni indirizzi IPv4 sono per uso riservato e tutti gli indirizzi 192.168.x.x sono riservati per uso privato. Io ti vendo un router con indirizzo di rete 192.168.0.0 e subnet mask /24 e tu come lo colleghi sai già che non stai andando a rubare indirizzi a nessuno. I tuoi devices si prendono in prestito il loro indirizzo tra il pool di 2^8=512 disponibili (in realtà, due in meno) grazie a un protocollo chiamato DHCP. In questo modo, tu non devi essere un esperto di reti per installare un modem/router in casa, anche perché noi utenti comuni non ce ne facciamo niente di diverse sottoreti e cose di questo tipo, un'unica LAN è più che sufficiente.

Non ho davvero capito.

Ho capito che il problema dello spreco di indirizzi è stato risolto ma non ho capito il modo in realtà, se non 'teoricamente' a parole.
DHCP se non sbaglio è l'assegnazione casuale di un indirizzo IP senza che tu setti nulla, ed è l'opposto dell' IP Statico.

Bè , la subnet, CREDO, che possa essere utile a dividere le reti, e fare per esempio una per ospiti e una per proprietari. Pensa a un negozio, o non so. Non è quello un esempio di sottorete? a volte hanno 2.4ghz rispetto ai 5 di quella 'base' . Correggimi se sbaglio, è solo un ipotesi.
Io l'utilizzo della subnet lo vedo, ma non sto capendo come funziona ne come calcolare.

Teoricamente all acquisto del modem non ti viene preimpostata una sottorete \24 ? (dichiarata, nel senso nelle istruzioni ci scrivono hai posto per 24 dispositivi che si collegano al modem, o meno, a seconda dell' uso). Non basterebbe quindi sapere già 'quant'è grande' la propria subnet per sapere che per conoscere il ... terzo dispositivo collegato che utilizza il terzo IPV4 della subnet?

ip pubblico, dhcp, e il riavvio del modem sono invece cose che conosco e su cui non ho alcun dubbio. Credo di aver capito quello che c'è attorno e come funziona, perchè non mi suonano nuove molte situazioni che hai detto, ma l'unico punto cruciale è purtroppo questa sottorete e maschera di sottorete. E essendo la base del funzionamento mi pregiudica una comprensione totale della rete.

Scusa del poema.
 
Buongiorno, perdona l'assenza, son pronto a leggere tutto !

Assolutamente no. Ogni dispositivo ha un indirizzo IP tutto suo, altrimenti come facciamo a contattarlo? Le subnet mask (sub = sotto, net = rete) servono per creare sottoreti. Se hai 5 dispositivi connessi alla tua rete di casa, hai 1 rete e 5 dispositivi. Dalla domanda che mi hai fatto mi sembra che stai veramente facendo tanta tanta confusione.
Si st3ve, ora si. L'indirizzo Ip sapevo fosse univoco, altrimenti ci sarebbero problemi di comunicazione tra macchine, ma allora non capisco proprio questo concetto di subnet. Perchè si mette la sbarra, se l'indirizzo cambia?
Il "bisogna calcolare" serve se vuoi mettere in piedi un infrastruttura. Inizia a capire la teoria, poi possiamo crearci uno scenario ipotetico dove lavoriamo come network administrators e, chessó, abbiamo 2000 computer nel lugo A, 300 computer nel luogo B, 50 computer nel luogo C, ecc... e vogliamo farli parlare tra loro. Prima di partire con questo discorso, però, preferirei che tu avessi chiara almeno la teoria di base.
Qual'è la teoria di base a cui ti riferisci? non è la prima volta che ne leggo ripeto, ma mi sto solo confondendo le idee su argomenti che per me erano prima assodati, aldilà della storia, come ben dici tu.
Oltretutto non capendo l'utilizzo della subnet non riesco a dargli una funzione e quindi non si inserisce nella mia logica. Se gli indirizzi Ip appunto variano, perchè si parla allora di subnet? proprio perchè non possono avere lo stesso ip non ne capisco il senso (differentemente , se magari computer nella stessa rete potevano avere un ip simile ma " \x " una destinazione diversa potevo capire il senso. così non capisco proprio cosa sia questa \x se tanto da x.x.x.1 diventa x.x.x.2 , a cosa serve indicarla? non si confonderebbero!

binario | standard | decimale -------------------------------------------------+-----------------+----------- host => 10001110.11111010.10111000.01000011 | 142.250.184.67 | 2398795843 net id => 10001110.11111010.10000000.00000000 | 142.250.128.0 | 2398781440 broadcast => 10001110.11111010.11111111.11111111 | 142.250.255.255 | 2398814207
Problema numero uno: perdonami ma questi non sono indirizzi IP differenti?

OK Ho capito il senso di ciò che intendi sotto riguardo il binario. Ma capendo che mettendo 0 si ha un indiritto net id e una serie di 1 invece il broadcast, cosa ci faccio? non comprendo a cosa serva questa cosa del \17
Il binario è piu pulito, è vero, ma non sto capendo cosa mi sto calcolando ne perchè. E anzi, in realtà non sto calcolando, sto sostituendo visivamente 0 e 1, non capisco come si arrivi ai numeri finali così diversi infatti


Limitati a sapere che all'interno dei routers c'è un tabella che serve per inviare il segnale verso la giusta direzione: se sei in italia e vuoi comunicare con un pc in nuova zelanda, il segnale dovrà "fare scalo" su tanti routers intermedi. Per spiegarti come si presenta il problema dovrei andare più nel dettaglio.
Il segnale si instrada e arriva tramite vari passaggi alla destinazione. Se non sbaglio c'era un comando Traceroute per vedere i server di transito e il percorso fatto


Dimenticati per un attimo il problema dello spreco di indirizzi e guarda anche solo il vantaggio in termini di flessibilità. Inizialmente potevi comprare solo subnetworks /8, con la divisione in classi degli anni '80 potevi scegliere tra /8, /15 e /22, mentre con l'introduzione del Classless Inter-Domain Routing puoi impostarti /quello_che_vuoi.
Purtroppo non so quale sia la differenza fra questi /8 ecc. Posso collegare fino a 8 dispositivi? Però per quel che ho capito , un primo macchinario può essere x.x.x.1, un secondo x.x.x.2... fino all' ottavo. Però gli indirizzi ip dovrebbero essere 8 tutti diversi, quindi questa notazione serve solo per i router? cioè è come fosse la cilindrata di un veicolo, /8 significa 8 dispositivi massimi collegabili e poi non funzionerebbe? sto provando a trovargli una logica...

e non vedo come tu possa sapere se c'è un solo host connesso o se ce ne sono 400 a priori. Anche perché gli host si connettono e si disconnettono, ma i parametri della rete non cambiano mica.
E come faccio a sapere quanti dispositivi son connessi? bisognerebbe fare una scansione della rete e vedere cosa è connesso, ma purtroppo sempre il solito problema subnet, subnet mask ecc.. questi ignoti! da come ho capito (forse male) partecipano. Altro non saprei
I tuoi devices non sono costretti a prendere numeri "in ordine". Puoi avere tre devices connessi e uno ha indirizzo 192.168.1.200, un altro ha 192.168.1.123 e il terzo ha indirizzo 192.168.1.1. Anche se andassero in ordine (DHCP lo fa), magari attacchi 200 devices diversi e poi ne scolleghi 197 e ti ritrovi nella situazione che ti ho appena descritto. Se vuoi sapere quanti devices ci sono e qual'è il loro indirizzo, puoi pingare l'indirizzo di broadcast: fai ping su 192.168.1.255 e tutti i devices nella rete dovrebbero rispondere se il loro firewall te lo permette (tipicamente è bloccato da tutti i sistemi operativi).
ohhh esatto perfetto perfetto.
L'assegnazione è certo casuale come avevamo detto, è una delle poche cose chiare che ho, come il ping agli indirizzi. Ma per fare il ping, a un sito web, a un indirizzo nella rete ecc, non serve calcolare la sottorete, basta scrivere su bash , senza molto altro. Poi il problema del firewall ce lo porremo dopo, credo mi sia piu chiaro il senso delle porte aperte/chiuse/filtrate che la parte prima della rete.



Ti spiego.
Non sto cercando di imparare (non ancora almeno) il calcolo della sottorete, ma :
-L'utilizzo, quando e dove
-il Perchè si usa la sottorete stessa
-il motivo per cui si Calcola (cosa? gli indirizzi ip connessi?)

Dhcp, server, ipv6, ip statici, ecc son tutte cose che credo di conoscere o con il livello di conoscenza acquisito mi sono stati piu che sufficienti. Apprezzo il voler toccare tanti argomenti, si vede sei preparatissimo, ma l'unica cosa che è aliena è la parte che ho scritto sopra. E purtroppo ho rischiato solo di far confusione (appunto, riguardo la perplessità sull univocità degli indirizzi IP), poichè non riesco ad attribuire un ruolo a questa sottorete, ne l'importanza che ha, visto sta alla base..
 
Ultima modifica:
L'indirizzo Ip sapevo fosse univoco, altrimenti ci sarebbero problemi di comunicazione tra macchine, ma allora non capisco proprio questo concetto di subnet. Perchè si mette la sbarra, se l'indirizzo cambia?

Oltretutto non capendo l'utilizzo della subnet non riesco a dargli una funzione e quindi non si inserisce nella mia logica. Se gli indirizzi Ip appunto variano, perchè si parla allora di subnet? proprio perchè non possono avere lo stesso ip non ne capisco il senso (differentemente , se magari computer nella stessa rete potevano avere un ip simile ma " \x " una destinazione diversa potevo capire il senso. così non capisco proprio cosa sia questa \x se tanto da x.x.x.1 diventa x.x.x.2 , a cosa serve indicarla? non si confonderebbero!
Lascia perdere la barra, visto che all'inizio non c'era nemmeno ed è stata introdotta per generalizzare un concetto che già esisteva in precedenza. E lascia perdere anche internet , visto che ci confonde solo le idee. Sei un network administrator per una grossa azienda. Hai 10000 computer che devono comunicare tra loro e, ripeto, nessuno è connesso ad internet né è interessato a farlo. Ovviamente non puoi connetterli assieme in modo diretto perché 10000 cavi che vanno tutti verso un dispositivo centrale (e.g., uno switch o un router) sono una cosa esagerata. Come risolvi il problema? Ti guardi attorno e vedi che non hai 10000 computer in un unica stanza, ma sono divisi con qualche logica: 100 computer nell'open space, 30 computer nel piano uffici, ecc... e intanto che ci sei ti rendi conto che certe cose non ha nemmeno senso farle uscire dalla propria stanza: ogni piano ha la propria stampante, hai qualche centinaio di stampanti, e non ha senso che siano visibili globalmente. Cosa fai? Crei una (sotto)rete per ogni piano e poi le unisci tra loro. Ogni piano comunica in modo più o meno diretto, due piani distinti comunicano "facendo scalo" su uno o più routers intermedi. Perché uno o più? I piani 1-2 sono vicini e li connetto ad un router, i piani 2-3 sono vicini e li connetto ad un altro router, mentre i piani 1-3 sono lontani e possono comunicare passando per i due routers che ho già installato.

Ci sono anche altri vantaggi, primo tra tutti il fattore efficienza che ho evitato di introdurre direttamente, ma a me interessa che tu abbia chiaro cosa sia una sottorete e perché sia utile e, senza aggiungere altra carne al fuoco, spero che questo piccolo esempio che ti ho fatto possa aiutarti. Ogni singolo computer in questa rete di 10000 ha un IP univoco, perché il computer A del piano 1 deve poter comunicare con il computer C del piano 140, però è conveniente fare dei raggruppamenti.

Problema numero uno: perdonami ma questi non sono indirizzi IP differenti?
Sì, siamo nel nostro scenario ipotetico dove siamo sconnessi da internet. Per quale motivo dovremmo avere due indirizzi uguali per indicare cose diverse? Assegnare un nome univoco ad ogni dispositivo è esattamente il problema che gli indirizzi vanno a risolvere. Sempre nel nostro scenario dei 10000 computers, facciamo finta che gli indirizzi IP siano stringhe di testo invece che numeri e facciamo finta che invece di avere cavi abbiamo il nostro schiavo umano che porta delle buste invece che dei pacchetti. Io ti dico to il nome di tre computers
Codice:
Piano1PC56 con maschera di sottorete /6
Piano9PC56 con maschera di sottorete /6
Piano100billys" e la sottorete /8
poi ti chiedo, per ognuno di essi, di calcolare l'identificatore di rete (il net id). Tu cosa fai? Leggi i primi /x caratteri e cancelli gli altri. Il primo computer è nella sottorete Piano1, il secondo nella sottorete Piano9 e il terzo nella sottorete Ufficio10. L'indirizzo IP è l'intera stringa, che è diversa per ognuno di loro. La maschera di sottorete (la barra) ogni tanto è uguale e ogni tanto è diversa. Tutti e tre questi computer, facendo opportuni scali (come se fosse un viaggio aereo), possono comunicare tra loro nella mia rete da 10000.
Se al posto di usare stringhe di testo usiamo numeri (possibilmente espressi in binario) ci rifacciamo a quanto detto fin ora.

OK Ho capito il senso di ciò che intendi sotto riguardo il binario. Ma capendo che mettendo 0 si ha un indiritto net id e una serie di 1 invece il broadcast, cosa ci faccio? non comprendo a cosa serva questa cosa del \17
Li stiamo calcolando perché li volevo sapere io. Il /qualcosa serve per far capire al nostro schiavo che piano deve schiacciare (sull'ascensore) per raggiungere la destinazione. Nell'esempio precedente se al posto di /8 avessi usato /7, lo schiavo sarebbe andato a cercare l'host 0billys (con IP Piano100billys) a Piano10. La maschera di sottorete (e.g., /8) applicata all'IP (e.g., Piano100billys) ci permette di calcolare il net id (e.g. Piano10).

E anzi, in realtà non sto calcolando, sto sostituendo visivamente 0 e 1, non capisco come si arrivi ai numeri finali così diversi infatti
È un calcolo al pari di quelli che si fanno in matematica, ma io te l'ho spiegato in modo non matematicoso.
Vuoi passare da m/h (metri orari) a km/h (kilometri orari)? Cancella le ultime tre cifre. Avrei potuto dirti di effettuare una divisione intera per mille, così come avrei potuto dirti ip & mask e ip | (~mask) per calcolare net id e broadcast. Avresti capito che si tratta di un calcolo, ma poi non avresti capito una niente. Ti ho già accennato che l'operazione principale si chiama bitwise and e il risultato finale è un numero.

Ti ho già spiegato che quel numero lo puoi scrivere con tante notazioni diverse (numero decimale, notazione puntata, numero binario, etc.) e che tra una notazione e l'altra non cambia niente se non che alcune sono più semplici e pratiche di altre. Immaginati un mondo dove non esistono i simboli da 0 a 9 e per calcolare 47+12 dobbiamo utilizzare i numeri romani: XLVII + XII. Non sarebbe un casino fare le addizioni in questo modo? Le operazioni matematiche che usiamo per calcolare net id e broadcast sono un casino se usiamo il decimale invece che il binario. Anche se il risultato finale è uguale, ma espresso in modo diverso (e.g., 59 vs LIX).

Guarda i numeri binari, te li ho messi proprio per semplificarti la vita. Le altre notazioni calcolano gli stessi valori, ma per noi è più difficile dargli un significato.

E come faccio a sapere quanti dispositivi son connessi? bisognerebbe fare una scansione della rete e vedere cosa è connesso, ma purtroppo sempre il solito problema subnet, subnet mask ecc.. questi ignoti! da come ho capito (forse male) partecipano.
Scrivo su una busta "ping" e la invio all'IP Piano100billys. Lo schiavo prende la busta e prova a consegnargliela. Se ricevo una busta di risposta, Piano100billys è connesso; altrimenti non c'è. Le subnet non ti riguardano, ogni cristiano ha il suo indirizzo IP univoco e tu mandi un messaggio a ognuno di loro. Idealmente lo mandi facendo broadcast: invece che scrivere 10000 lettere "ping" con nomi diverse, ne scrivi una con nome "per tutti" e il nostro schiavo fa delle copie.

Ti spiego.
Non sto cercando di imparare (non ancora almeno) il calcolo della sottorete, ma :
-L'utilizzo, quando e dove
-il Perchè si usa la sottorete stessa
-il motivo per cui si Calcola (cosa? gli indirizzi ip connessi?)
Le subnet si usano per fare delle divisioni (logiche o fisiche) di una grande rete in reti più piccole. Si utilizzano sia per motivi pratici che per motivi di efficienza; per evitare che le routing tables diventano troppo grandi e per limitare prevenire il congestionamento della rete. In fase di costruzione scegli quante sottoreti avere e, per ognuna di esse, scegli quanti host possono esserci; queste scelte ti portano a calcolare diversi (uno per ogni sottorete) valori di subnet mask. Successivamente, quando la rete è già funzionante, potresti voler calcolare l'identificatore della sottorete (net id) e l'indirizzo su cui fare broadcast. L'indirizzo di sottorete è quella cosa che ti dice "sono al Piano100" e l'indirizzo di broadcast un megafono che ti permette di urlare abbastanza forte da farti sentire da tutti i tuoi colleghi in Piano100.

Una cosa che forse non è chiara dall'esempio che ho fatto in precedenza, è che la subnet mask non è legata al pacchetto. Ma su questo magari ci torneremo più avanti, anche se puoi capirlo da quanto ho scritto nei messaggi precdenti (dove la similitudine con il palazzo aziendale con lo schiavo che usa l'ascensore non c'era ancora).

Detto questo, ti consiglio di prenderti un oretta per rileggere con calma tutti i post che abbiamo scritto in questa discussione, partendo dal tuo open post. Perché a questo
Purtroppo non so quale sia la differenza fra questi /8 ecc. Posso collegare fino a 8 dispositivi? Però per quel che ho capito , un primo macchinario può essere x.x.x.1, un secondo x.x.x.2... fino all' ottavo. Però gli indirizzi ip dovrebbero essere 8 tutti diversi, quindi questa notazione serve solo per i router? cioè è come fosse la cilindrata di un veicolo, /8 significa 8 dispositivi massimi collegabili e poi non funzionerebbe? sto provando a trovargli una logica...
ho già risposto più e più volte e probabilmente col tempo alcune cose te le sei dimenticate o comunque ti ci vuole un po' di "studio" (anche solo dei messaggi scritti qui) per capirle a fondo. Comunque, ripeto brevemente. Il /8 è una maschera di sottorete (subnet mask) ed indica la dimensione (in bit) dell'identificatore di rete (net id). Se abbiamo 8 bit di net id allora abbiamo 32-8=24 bit di host id, dove il 32 deriva dal fatto che gli indirizzi IPv4 sono lunghi 32 bit. Questo 24 ci dice che possiamo avere fino a 2^24=16777216 host all'interno della stessa sottorete. O meglio, ne possiamo avere 16777214 perché il primo (tutti zero) serve ad identificare la rete e l'ultimo (tutti uni) serve a fare broadcast.
 
Crei una (sotto)rete per ogni piano e poi le unisci tra loro.
Allora si crea questa sottorete per comunicare, a livello di senso logico lo ha, ma collima male con il senso che provo a dargli io: appena andiamo nel dettaglio con esempi binari o numerici mi confondo. E' come se vi fosse quindi il router che smista tutti i pacchetti o frame, e li porta a destinazione. Ma se questi possono collegarsi a un router e smista tutti i messaggi, perchè creare questo 'teorico concetto di sottorete'? proprio perchè ad ogni IP c'è una macchina, in che modo interviene questa sottorete? io inviando un messaggio solitamente indico il mio IP, e l'IP del destinatario, non la sottorete. in che modo interviene quindi fisicamente? (perdona la rudezza dei termini) ("conviene fare raggruppamenti" : dici tu)


Scrivo su una busta "ping" e la invio all'IP Piano100billys. Lo schiavo prende la busta e prova a consegnargliela. Se ricevo una busta di risposta, Piano100billys è connesso; altrimenti non c'è. Le subnet non ti riguardano, ogni cristiano ha il suo indirizzo IP univoco e tu mandi un messaggio a ognuno di loro. Idealmente lo mandi facendo broadcast: invece che scrivere 10000 lettere "ping" con nomi diverse, ne scrivi una con nome "per tutti" e il nostro schiavo fa delle copie.
Ok, bell' esempio; e scrivere questo 'per tutto il piano' come viene indicato? proprio con la subnet? quindi aldilà degli indirizzi IP che in nessun modo c'entrano è come se si decidesse in partenza di associare a gruppi determinati computer per comodità futura, corretto?

Sto provando a capire, e qualcosa in piu ho recepito, ma ancora non a fondo nonostante i tuoi grandi sforzi..
mi rimetto a rileggere tutto perchè come ben dici è stata una lunga chiacchierata.

Grazie di tutto ! Sei stato eccezionale
 
E' come se vi fosse quindi il router che smista tutti i pacchetti o frame, e li porta a destinazione.
Non è "come se...", è esattamente così. In inglese to route significa instradare e il router è il dispositivo che si occupa di instradare i pacchetti. Il modem/router che hai in casa è un dispositivo 3 in 1: modem + switch + router.

Ma se questi possono collegarsi a un router e smista tutti i messaggi, perchè creare questo 'teorico concetto di sottorete'?
Principalmente per questioni di efficienza (dimensione della tabella di routing), ma anche per creare divisioni logiche significative.

o inviando un messaggio solitamente indico il mio IP, e l'IP del destinatario, non la sottorete. in che modo interviene quindi fisicamente?
Sì, come ti ho accennato nel messaggio precedente, la subnet mask non è legata al pacchetto ed è una cosa che non si capisce benissimo dalla similitudine che ti ho fatto. Ogni device ha un proprio IP e il router è impostato per fare dei raggruppamenti, principalmente per questioni di efficienza, ma anche per creare divisioni logiche. Tu, in quanto persona, oltre a far parte del pianeta Terra, sei un cittadino italiano. Se ti spediscono un pacco dalla Cina, la prima cosa che fanno è inviarlo ovunque in Europa, poi lo smistano per portarlo a tipicamente a Roma o a Milano e poi si interessano alla tua regione, alla tua città, alla tua via e al tuo numero civico. Il tuo indirizzo è univoco in tutto il mondo, ma le sue diverse componenti semplificano il tuo rintracciamento. In IPv4 gli indirizzi sono scritti tutti attaccati e gli spazi li inserisce il router. Tornando all'esempio del tuo pacco che arriva dalla Cina: un router è in grado di leggere il continente, un altro router è in grado di leggere la nazione, etc...

Chiaro che se vuoi capire veramente come funziona a un certo punto dobbiamo smetterla di usare queste similitudini e iniziare a parlare informatica usando termini tecnici. L'ho fatto nei messaggi precedenti, ma mi hai scritto di non aver capito... quindi invece di spiegare più in dettaglio, sto spiegando in modo più vago.

Ok, bell' esempio; e scrivere questo 'per tutto il piano' come viene indicato?
Inviare un messaggio con destinazione "per tutti" significa fare broadcast. Nei post precedenti ti ho spiegato che ogni sottorete ha due indirizzi riservati: uno è l'identificatore di rete (net id) e l'altro è l'indirizzo per fare broadcast. Ti ho anche spiegato come calcolarli.

Comunque sì, rileggi con calma perché abbiamo scritto parecchio e molte cose sono state ripetute più volte anche in modo diverso. Secondo me una volta che ti sei studiato i messaggi scritti qui, giusto per chiarirti i dubbi principali, potresti anche essere in grado di capire anche quello che c'è scritto su wikipedia o su qualche libro. Tutto dipende da quanto in dettaglio vuoi capire...
 
-------------------------------------------------------------------------------------------+--------------------------+-----------
host => 10001110.11111010.10111000.01000011 | 142.250.184.67 | 2398795843
net id => 10001110.11111010.10000000.00000000 | 142.250.128.0 | 239878144
broadcast => 10001110.11111010.11111111.11111111 | 142.250.255.255 | 2398814207
Sempre riprendendo l'esempio precedente, in binario posso dire: tutti i numeri che iniziano per 10001110.11111010.1XXXXXXX.XXXXXXXX appartengono alla subnet del luogo A. Usando il decimale avrei dovuto dire: tutti i numeri compresi tra 2398781440 e 2398814207 appartengono alla subnet del luogo A
fino a qui tutto chiaro ma non capisco come trovare le altre sotto-reti relative questo indirizzo.
Per spiegare meglio il mio dubbio: ho una rete in classe C con indirizzi 192.168.R.H, le sottoreti sono indicate dal terzo ottetto e quindi nella mia lan potrei avere 192.168.0.H 192.168.1.H ...192.168.34.H e così via...
Gli indirizzi classless mi sono sempre rimasti indigesti dai tempi dell'ITIS...
 
fino a qui tutto chiaro ma non capisco come trovare le altre sotto-reti relative questo indirizzo.
Per spiegare meglio il mio dubbio: ho una rete in classe C con indirizzi 192.168.R.H, le sottoreti sono indicate dal terzo ottetto e quindi nella mia lan potrei avere 192.168.0.H 192.168.1.H ...192.168.34.H e così via...
Gli indirizzi classless mi sono sempre rimasti indigesti dai tempi dell'ITIS...
La divisione in classi è l'idea di IPv4 che si aveva negli anni '80, prima della diffusione dei personal compuer e prima della nscita del world wide web. Dagli anni '90 dire "ho una rete classe C" va anche bene ma non è particolarmente interessante perché tanto la divisione in classi non è più utilizzata, la si spiega solo per interesse storico. Detto questo, se hai un esercizio possiamo provare a risolverlo assieme. Leggendo quello che hai scritto mi pare di capire che hai un'idea, ma non ho capito esattamente cosa mi stai chiedendo di fare. Come detto nei post precedenti, gli indirizzi nella forma 192.168.x.x sono riservati per uso privato quindi se mi dici che hai impostato una subnet /24 le tue possibili sottoreti saranno 192.168.0.x, 192.168.1.x, 192.168.2.x, ..., 192.168.255.x e potenzialmente una o più di queste reti ha un altro router con un altra subnet che definisce altre sottoreti e così via. Ma questo è quello che hai scritto anche tu, quindi non capisco qual'è il tuo dubbio. Se vuoi cerca un esercizio vero che non sai risolvere, posta il testo completo e poi lo discutiamo. Ti chiedo un esercizio vero perché non ho capito il tuo dubbio, ma non escludo che derivi dal fatto che delle incomprensioni sulla teoria ti portano a voler fare esercizi che non hanno particolarmente senso.
 
La divisione in classi è l'idea di IPv4 che si aveva negli anni '80, prima della diffusione dei personal compuer e prima della nscita del world wide web. Dagli anni '90 dire "ho una rete classe C" va anche bene ma non è particolarmente interessante perché tanto la divisione in classi non è più utilizzata, la si spiega solo per interesse storico. Detto questo, se hai un esercizio possiamo provare a risolverlo assieme. Leggendo quello che hai scritto mi pare di capire che hai un'idea, ma non ho capito esattamente cosa mi stai chiedendo di fare. Come detto nei post precedenti, gli indirizzi nella forma 192.168.x.x sono riservati per uso privato quindi se mi dici che hai impostato una subnet /24 le tue possibili sottoreti saranno 192.168.0.x, 192.168.1.x, 192.168.2.x, ..., 192.168.255.x e potenzialmente una o più di queste reti ha un altro router con un altra subnet che definisce altre sottoreti e così via. Ma questo è quello che hai scritto anche tu, quindi non capisco qual'è il tuo dubbio. Se vuoi cerca un esercizio vero che non sai risolvere, posta il testo completo e poi lo discutiamo. Ti chiedo un esercizio vero perché non ho capito il tuo dubbio, ma non escludo che derivi dal fatto che delle incomprensioni sulla teoria ti portano a voler fare esercizi che non hanno particolarmente senso.
Non ho un esercizio specifico però provo a spiegare meglio il mio dubbio.
Sono abituato a vedere gli indirizzi di una lan con subnet mask /8 /16 /24 e che quindi ogni ottetto è riservato o solo per la rete o solo per gli host (/8 R.H.H.H /16 R.R.H.H /24 R.R.R.H)
Quello che non mi torna è come fare a trovare le sottoreti di un indirizzo tipo questo che hai portato a esempio, ovvero 142.250.184.67/17 perchè non capisco quando il terzo ottetto si riferisce a un host o ad una rete,
dato che in pratica ho sempre visto reti lan con subnet mask /16 o /24.

Inoltre sto seguendo un corso ine di penetration testing dove ho trovato il seguente esempio che non mi torna (soprattutto perchè non sarebbe valido l'indirizzo 192.168.0.0)

esempio 2.png

Ho ripreso a studiare l'argomento dopo anni e ho da riordinare i concetti.