cerca
Esercizi di Sistemi - 29 Ottobre 2007
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Esercizi di Sistemi - 29 Ottobre 2007

Torna alla pagina di Sistemi per l'elaborazione delle informazioni


 :: Esercizi di Sistemi - 29 Ottobre 2007 ::

Header di 2° e 3° livello

Ho una rete siffatta:

Le lettere maiuscole (A, B, C, D, E, H) indicano gli indirizzi MAC, mentre le lettere minuscole corrispondenti sono gli indirizzi IP.

La stazione A vuole mandare un messaggio alla stazione H. Dobbiamo scrivere l'header di livello 2 (Ethernet) e quello di livello 3 (IP) per il mio bel pacchetto.

Soluzione

  • da A a B: mittente IP = a, destinatario IP = h; mittente MAC = A, destinatario MAC = B
  • da C a D: mitt IP = a, dest IP = h; mitt MAC = C, dest MAC = D
  • da E a H: mitt IP = a, dest IP = h; mitt MAC = E, dest MAC = h

Commento

Innanzitutto, occorre notare che gli indirizzi IP del mittente e del destinatario rimangono uguali per tutta la traversata delle nostre reti. Il motivo è semplice: gli IP identificano i nostri host, e non c'è ragione per fargli cambiare l'indirizzo.

L'unico caso in cui invece si sarebbe dovuto cambiare l'indirizzo avverrebbe nel caso in cui a metà rete ci fosse un NAT. Il NAT dovrebbe modificare l'indirizzo di origine mettendoci il suo. Per ipotesi, il NAT è il router D-E, in cui D sta sulla rete privata, mentre E ha un indirizzo pubblico. In questo caso, per fare NAT, cioè Network Address Translation, il router avrebbe cambiato l'indirizzo del mittente mettendoci il suo proprio indirizzo, così che H, in un'eventuale risposta, avrebbe inviato pacchetti a D-E e non direttamente ad A. Questo perché A sta su una rete privata (supponiamo 192.168.x.x) e le reti private non possono affacciarsi direttamente ad Internet.

Una nota aggiuntiva sul NAT è questa: il server D-E avrebbe cambiato la porta di origine. Noi sappiamo (?) che l'header TCP permette di specificare una porta. D-E, per non confondere gli indirizzi della rete privata, aggiunge ad ogni porta un certo numero, così che quando poi il pacchetto torna indietro dall'esame della porta sa risalire all'host privato che lo ha mandato in origine. Questo sistema è meglio spiegato nelle lezioni.

Cache ARP

Un host di IP A e MAC a si immette su una rete. Che cosa succede? La prima cosa che fa è mandare un messaggio broadcast ARP dicendo: "Io ho l'IP A e il MAC a". Gli altri ricevereanno, e sulle loro cache ARP private aggiungeranno una voce che assegnerà il MAC a all'IP A. Quando poi vorranno comunicare con A, gli manderanno pacchetti con indirizzo appropriato, e A a sua volta potrà costruirsi la propria tabella ARP.

Da notare che ARP funziona solo su reti Ethernet, perché si appoggia sul broadcast Ethernet.

Frammentazione

In un'ipotetica rete c'è un frame di 210 ottetti, di cui 10 di header. Ho un pacchetto di 400 ottetti. Devo specificare lo header IP che cambia a causa della frammentazione.

Il bit detto MORE, che indica che il frame è seguito da un'altro frame per completarlo, è impostato a 1 nel primo frame, e a 0 nel 2° frame. Questo perché il primo frame va seguito da un altro, mentre il secondo frame no.

L'offset avrà valore 0 nel primo frame, e valore 200 nel secondo frame. Questo perché il secondo frame va assemblato a partire dalla posizione 200.

Sottoreti

Gli indirizzi 192.168.23.87/26 e 192.168.23.67/26 sono sulla stessa sottorete?

Risposta, primo sistema

Il /26 mi dice che prendo i primi due bit del quarto ottetto. Bene. Scriviamo quindi il quarto ottetto di entrambi gli indirizzi:

  • 87 => 01010111
  • 67 => 01000011

Come si può vedere, i primi due bit sono uguali in entrambi i casi. Ne consegue che i due indirizzi giacciono (oh che bel verbo) sulla stessa rete.

Risposta, secondo sistema

Ricavo la sottorete su cui giace (sì mi piace sto verbo!) 192.168.23.87/26. Come prima, prendo i primi due bit del quarto ottetto e deduco che la rete è 192.168.23.64/26. La maschera di sottorete è 255.255.255.192. L'indirizzo di broadcast lo ottengo mettendo a 1 tutti i 6 bit che ci sono dopo i 2 di prefisso: 01111111 => 192.168.23.127. Il minimo indirizzo di host è 192.168.23.65. Il massimo indirizzo di host è 192.168.23.126. Vedo subito che 192.168.23.67 è compreso in questo intervallo, quindi è nella stessa sottorete.

Sottoreti bis

Ho gli indirizzi 128.37.23.100 e 128.37.22.150. La maschera di sottorete è 255.255.254.0. Sono sulla stessa sottorete?

Risposta

Notiamo subito che specificare la maschera di sottorete oppure la notazione CIDR è la stessa cosa.

254 nel terzo ottetto sarebbe '11111110. Quindi, uso i primi 7 bit, e gli indirizzi saranno quindi 128.37.23.100/23. Vediamo come scrivere il 23 del terzo ottetto del primo indirizzo, 128.37.23.100. Ottengo 00010111. 22 invece si scrive 00010110. Come si vede, i primi 7 bit di questi due numeri sono uguali, e pertanto gli indirizzi pertengono alla stessa rete. La forma verbale pertengono deriva da pertenere e non so né se sia corretta, né se sia appropriata.

Vogliamo essere noiosi e scrivere i vari dati di questa sottorete? Sì, lo vogliamo.

  • Indirizzo di host minimo: il terzo ottetto sarebbe 00010110, il quarto 00000001 => 128.37.22.1
  • Indirizzo di host massimo: il terzo ottetto mi dà 00010111, il quarto 11111110 => 128.37.23.254
  • Numero totale di host: sostanzialmente ho 2 reti da 256 l'uno => 256 * 2 = 512. Tolgo 2 indirizzi non validi (quelli formati da tutti 0 o tutti 1) e ho 510 host totali.
  • Indirizzo di broadcast: 128.37.23.255
  • Numero di donne nude: 0.

VLSM

Ho 3 subnet, una con 125 hosts, e le altre 2 con 60 hosts ciascuna. Il netid disponibile è 223.1.17 / 24. Come vedete manca l'ultimo ottetto, perché è a mia completa disposizione.

Per prima cosa, cerchiamo di far saltar fuori un subnet per la subnet più grossa, quella che ha 125 hosts. 128, cioè 2^7, contiene 125, quindi dovremo dividere il nostro classe C in due parti: 223.1.17.0/25 e 223.1.17.1/25. Notate subito che stiamo usando anche la netid con valore tutto a 0. Altrimenti non ne verremmo fuori più. Quindi, la rete da 125 sarà questa: 223.1.17.0/25, e la maschera di sottorete sarà 255.255.255.128.

Le altre due reti le metto in due ulteriori suddivisioni della seconda rete che ho ottenuto qui sopra. In particolare, prendo un altro bit per net id e ottengo 223.1.17.128/26 e 223.1.17.192/26. Ognuna contiene 64 - 2 hosts, e quindi sufficienti per i miei 60. La maschera di sottorete di queste due subnet sarà 255.255.255.192.

NOTA: qui risultano evidenti due cose. La prima è che suddividendo il classe C in questo modo ci sta sì tutto, ma siamo tirati per il collo e non c'è spazio per eventuali espansioni del sistema. La seconda è che emerge un'altra limitazione del VLSM: non posso avere partizioni superiori alla metà di uno spazio di indirizzamento. Questo perché ogni partizione divide in due ciò che ho già. Non posso dividere in 3, o in partizioni asimmetriche.


Torna alla pagina di Sistemi per l'elaborazione delle informazioni