giovedì 20 dicembre 2018

Esercizio Zero Provetta 2 - Errori frequenti

Quando un nodo si sposta da una network ad un'altra network occorre riconfigurare le tabelle di routing nei suoi due gateway di default (quello precedente e quello successivo allo spostamento)

La risposta corretta è Falso. Quando mai una tabella di routing dipende dalla posizione di un nodo? La tabella di routing descrive i network number, non i singoli nodi. Inoltre noi abbiamo visto il routing statico, in cui le tabelle sono immutabili.

Un nodo con indirizzo IP privato può comunicare con nodi di altre network solo se almeno un router dai quali passano i pacchetti ha un modulo NAT

La risposta corretta è Falso. Nodi con indirizzo privato all'interno di una stessa organizzazione comunicano "tranquillamente" tra di loro, senza necessità di NAT. Indirizzi IP privati e pubblici sono, all'interno di una stessa organizzazione, indistinguibili tra loro.

131.114.9.128/25 può indicare sia un network number sia una coppia indirizzo IP-network number a cui appartiene quell'indirizzo IP

La risposta corretta è falso. /25 significa che la suddivisione è nel quarto byte; 128 in binario è 1000 0000; quindi la suddivisione lascia 0 come host number; quindi non può essere un indirizzo IP.

Un nodo che si collega ad Internet invia un frame "ARP Request" sia che abbia configurazione IP statica sia che abbia configurazione IP dinamica

La risposta corretta è vero. Viene inviata sempre una ARP Request in cui il nodo chiede quale sia l'indirizzo Ethernet associato al proprio indirizzo IP (Gratuitous ARP), indipendente da come sia stato acquisito l'indirizzo IP.

Condizione necessaria per potere verificare la firma digitale su un documento è che il Subject che ha firmato il documento sia compreso nell'elenco dei Subject dei certificati contenuti nel KeySet

La risposta corretta è Falso. Tutto il marchingegno di certificati, certification authority, keyset e trustset serve proprio per evitare di dovere avere già disponibile la chiave pubblica dei Subject. I Subject dei certificati contenuti nel KeySet sono solo le certification authorities.

Condizione necessaria per potere utilizzare un certificato è che il Subject del certificato sia compreso nell'elenco dei Subject dei certificati contenuti nel TrustSet

La risposta corretta è Falso, per gli stessi motivi di cui sopra.

mercoledì 12 dicembre 2018

Firewall: "entrante o uscente???"

Firewall: faccio riferimento ad un punto preciso per avere un esempio

Quando scriviamo le regole, il traffico è entrante o uscente rispetto all'organizzazione. Tuttavia, se il mio punto di riferimento è l'organizzazione che chiamiamo A, per semplicità, e se A riceve una mail, A è dst (traffico entrante), quindi nessun dubbio su port-dst=25. Quando A invia una mail verso l'esterno, come posso sostenere che port-src=25 se non posso sapere qual è il numero di porta locale? Io avrei scritto port-dst=25, mantenendo IP-src=IP-MS (dell'organizzazione A). In sostanza, il mio problema è con i punti di riferimento, che mi porterebbero a scrivere cose diverse, lasciando spazio a potenziali scenari di errore (molto pericolosi).


I commenti alle regole di firewall non sono indispensabili. Possono essere utili per chi svolge l'esercizio. Possono essere utili per chi lo deve correggere. Non sono indispensabili, ripeto. Se creano confusione, uno non li mette.

Ciò premesso, la frase "se A riceve una mail, A è dst (traffico entrante)," è sbagliata. Quindi le deduzioni successive confondono e basta.

1) Quando una organizzazione RICEVE un email occorre una connessione in cui il traffico scorre in DUE direzioni. Necessariamente, di queste due direzioni una sarà entrante (nell'organizzazione) ed una sarà uscente (dall'organizzazione).

2) Quando una organizzazione INVIA un email occorre una connessione in cui il traffico scorre in DUE direzioni. Necessariamente, di queste due direzioni una sarà entrante (nell'organizzazione) ed una sarà uscente (dall'organizzazione).

3) Quando un name server interno ad una organizzazione deve fare una risoluzione ricorsiva (traffico DNS uscente o traffico DNS client), occorrono più connessioni; all'interno di ognuna di queste il traffico scorre in DUE direzioni. Necessariamente, di queste due direzioni una sarà entrante (nell'organizzazione) ed una sarà uscente (dall'organizzazione).

4) Quando ad un name server interno ad una organizzazione arrivano richieste di risoluzione nomi dall'esterno (traffico DNS entrante o traffico DNS client), occorrono più connessioni; all'interno di ognuna di queste il traffico scorre in DUE direzioni. Necessariamente, di queste due direzioni una sarà entrante (nell'organizzazione) ed una sarà uscente (dall'organizzazione).

E' ovvio, credo, che queste affermazioni non possono (e non devono) essere imparate a memoria, perché è impossibile.

Inoltre, queste affermazioni non esauriscono lo scenario di tutte le possibilità che possono esistere.

Spero che espresso in questo modo sia chiaro, non so in quale altro modo spiegarlo. Ma se così non fosse chiedete.

lunedì 26 novembre 2018

Test "a crocette": sarà presente in ogni esame

Nella prima provetta 2018/2019 ho inserito nello scritto un insieme di 14 domande "vero"/"falso".

Ho distribuito molte versioni diverse dell'insieme, in modo da non alimentare la tentazione di copiare (tentazione che credo sia già abbastanza bassa, ma quest'anno la densità nell'aula era talmente alta da impormi misure straordinarie).

Questo insieme di domande costituiva quello che chiamo "Esercizio Zero": esercizio semplice che ha l'unico scopo di verificare che chi partecipa all'esame abbia una preparazione di base adeguata. Svolgere l'Esercizio Zero in modo adeguato non fornisce nessun bonus: solo il diritto di proseguire l'esame.

Per inciso, ribadisco a scanso di equivoci che ho analizzato ogni singolo Esercizio Zero più volte. Non ho assegnato giudizi in maniera automatica in base al numero di errori, ho tenuto conto della tipologia di ogni errore, ho cercato di tenere conto di possibili interpretazioni diverse di alcune domande. Nessuna domanda da sola ha avuto un impatto decisivo sul giudizio finale. Fine inciso.

E' stata la prima volta che ho inserito un insieme di molte domande vero/falso. Ritengo che questa tipologia di esercizio sia molto utile ed ho deciso di adottarla in maniera sistematica:

  1. Ogni provetta (compresa la seconda provetta 2018/2019) ed ogni appello ufficiale di Reti di Calcolatori comprenderà un insieme di 10/15 domande vero/falso.
  2. Questo insieme di domande non sarà solo un Esercizio Zero ma potrà anche fornire un bonus.

Inserire in un esame scritto 10-15 domande su molti argomenti diversi tra loro mi pare utile per tutti, sia per gli studenti sia per me.

Sinora gli esami scritti consistevano di due scenari, ognuno composto da "molti esercizi". I due scenari potevano coprire solo una parte minima del programma ed erano sempre di tipologie simili tra loro. In questa situazione, ogni incertezza, imprecisione, errore o svista non può che avere un impatto elevato. A meno di non fare poi un esame orale per dimostrare la propria preparazione. Ma fare un orale con me è una esperienza abbastanza rischiosa. Chi può lo evita.

Inserire nell'esame scritto 10-15 domande su molti argomenti diversi, invece, permette allo studente di dare una prima dimostrazione della propria preparazione di base. Ciò mi permetterà di fare esercizi un pochino più leggeri (come è già accaduto nella prima provetta) e di essere meno drastico nel valutare imprecisioni ed errori (idem).

Appendice

In aggiunta allo sperabile vantaggio in sede di esame, l'uso delle domande vero/falso ha un altro aspetto positivo: quello di stimolare gli studenti a considerare con attenzione il significato delle parole. Ad esempio:

In assenza di caching DNS, un email inviato da un dominio email che termina con .it ed indirizzato verso un dominio email che termina con .org transiterebbe necessariamente da un name server della root zone.

E' difficile da credere, ma ci sono state persone che hanno risposto "vero". Poiché nessuno può neanche lontanamente pensare che un email possa transitare da un name server, è ovvio che l'errore è stato provocato dalla scarsa abitudine a leggere con attenzione ed a fare attenzione alla precisione del linguaggio.

Se la domanda fosse stata scritta in questo modo non l'avrebbe sbagliata nessuno:

In assenza di caching DNS, un email inviato da un dominio email che termina con .it ed indirizzato verso un dominio email che termina con .org transiterebbe necessariamente da un name server della root zone.

Idem per questa:

Un email può transitare da un name server?

Un laureato triennale deve assolutamente avere la capacità di leggere e comprendere un documento tecnico: un datasheet, un brevetto, un manuale di configurazione, un manuale di una libreria etc etc etc. Bisogna fare attenzione al significato delle parole ed alla precisione del linguaggio.

Esercizio Zero: Errori frequenti

Domande che sono state sbagliate da più di 10 persone:

Una zona Z1 può avere name server con nomi in zone diverse da Z1 (risposta corretta: Vero)

Abbiamo fatto moltissimi esempi di questa situazione. Qui sotto uno dei tanti.

Per assegnare un custom domain ad un sito web ospitato su un servizio di web hosting è necessario modificare i RR della zona in cui si trova il nome che si desidera assegnare al sito (risposta corretta: Vero)

E' ovvio che se desidero usare il nome N allora devo modificare i RR della zona in cui si trova N.

Desidero usare il nome www.unicredit.it. Posso farlo senza modificare i RR della zona unicredit.it? Ovviamente no, sarebbe troppo bello....

Un dominio contiene certamente un RR di tipo A (Risposta corretta: Falso)

E' comunissimo che un dominio contenga un RR di tipo A. Ma non è certo indispensabile.

Un nodo che esegue 4 processi client collegati allo stesso server ha certamente 4 socket con numeri di porta locale identici (Risposta corretta: Falso)


Non so più come spiegare i numeri di porta lato client. Non so quante volte e in quanti modi diversi ho ripetuto questo concetto. Nonostante ciò, questa risposta è stata sbagliata da 15 (quindici) persone. Non so proprio cosa dire. Chi non ha ancora capito mi contatti, ma non so proprio cosa dire.

E' certo che i numeri di porta alle due estremità di una stessa connessione sono diversi (Risposta corretta: Vero)

Come sopra (in questo caso hanno sbagliato in 12).

Un processo client specifica il numero di porta del welcoming socket sul server e non conosce il numero di porta del communication socket del server (Risposta corretta: Falso).

Il processo client specifica un solo numero di porta e la comunicazione avviene attraverso il communication socket. Inoltre, il communication socket ed il welcoming socket hanno lo stesso numero di porta. Ergo, il processo client conosce il numero di porta del communication socket sul server.

Secondo me non ci sono altre interpretazioni lecite. Capisco che qualcuno possa avere fatto un ragionamento diverso: "il client non distingue tra welcoming socket e communication socket quindi per il client il communication socket non esiste" (o qualcosa del genere). Ragionamenti di questo genere sono sbagliati, ma l'errore non è grave. Un errore di questo genere, da solo, non è stato decisivo per nessuno.

In un processo che opera da server ed ha due connessioni aperte con due client diversi, i numeri di porta remoti potrebbero essere uguali tra loro (Risposta corretta: Vero)

Se i due client si trovano su nodi diversi allora potrebbero avere un numero di porta identico: ogni sistema operativo sceglie i numeri di porta in maniera autonoma, quindi il sistema operativo di due nodi diversi potrebbe avere scelto lo stesso valore.

Un processo che opera da client ed ha una connessione con un server S1 può, dopo avere chiuso la connessione, operare da server (Risposta corretta: Vero)

Come fanno i mail server a fare il forwarding dei messaggi email per i mittenti della propria organizzazione? Come fanno a implementare il forwarding degli indirizzi email?

Come fanno i name server a realizzare la risoluzione ricorsiva per i client della propria organizzazione?