giovedì 21 dicembre 2017

Provetta 2 2017/2018: Errori

(post costruito in modo incrementale; i nuovi errori saranno aggiunti in coda alla lista)


  1. Le regole di firewall per il proxy devono comprendere una coppia per il traffico DNS. In questa coppia le componenti da vincolare sono 3: indirizzo IP del proxy, indirizzo IP del name server, numero di porta del name server. Omettere uno dei due indirizzi IP non è gravissimo ma è un errore: significa avere regole più permissive del necessario. (Ovviamente qui si assume che i nodi conoscano già l'indirizzo IP-MS, altrimenti le componenti da vincolare sono solo 2: Iindirizzo IP del name server, numero di porta del name server).
  2. Nella tabella di routing di RX, l'azione con range "altrimenti" non può avere come azione "DIRECT UP". Questa azione significherebbe che ogni indirizzo IP non descritto dalle regole precedenti è direttamente accessibile dalla interfaccia UP, cioè è possibile inviare un frame al destinatario (cosa che ovviamente non ha senso).
  3. Il firewall su RA deve avere UNA coppia per SMTP, quella per collegarsi da client con il mail server. Mettere anche la coppia di regole che permetta al mail server di collegarsi da client verso un altro mail server non ha senso, perché quella tipologia di traffico non passa da RA.E' possibile che questo errore sia stato indotto dal testo del compito "gli utenti devono potere inviare e ricevere email". Se è così allora ciò è un'aggravante. Infatti, per "ricevere email" occorre che dall'esterno sia possibile inserire email nella mailbox; questo requisito non ha nulla a che vedere con RA (ce l'ha con RX).
  4. Abbiamo visto come usare ICMP per fare traceroute e ping. Quindi per raccogliere informazioni su host che si trovano in network diverse dalla network di chi esegue traceroute e ping. Come si può pensare che ICMP sia il protocollo trasportato da un frame???? Questo significherebbe che chi esegue traceroute e ping può comunicare solo con i nodi della propria network. Il frame deve trasportare IP.
  5. Quando il proxy si trova su N1 ha un indirizzo privato. Non si parla esplicitamente di NAT quindi il proxy su N1 non permette la navigazione su web. Non ho considerato questo errore come grave: ho tenuto conto dello svolgimento complessivo per vedere se si tratta di una svista o di altro. E ho considerato corretti gli svolgimenti in cui è scritto esplicitamente "assumo un NAT in frontiera".
  6. Se lo header IP è crittato, come caspita fanno i router a instradare il pacchetto???
  7. "se l'utente username2 fosse connesso su POP TLS, la modifica del contenuto di mx farebbe cadere la connessione". Primo, bisogna leggere il testo: la modifica del contenuto di mx avviene prima del prelievo della mailbox. Quindi quella frase non risponde alla domanda (risponde ad una domanda diversa). Secondo, non è corretto, almeno se interpretato alla lettera: la connessione può cadere o meno a seconda di dove opera l'attaccante; se modifica mx alterando il contenuto della mailbox allora la connessione non cade.
  8. Se il testo scrive di non mettere i pacchetti usati per aprire la connessione TCP (proprio perché non sono parte del corso) allora che senso ha mettere 1 pacchetto per l'apertura della connessione? Primo, significa non avere letto il testo. Secondo, significa avere tirato ad indovinare o non conoscere quale sia il programma del corso. Terzo, è sbagliato (per aprire una connessione occorre una sequenza di 3 pacchetti).
  9. Che senso ha mettere nelle tabelle di routing una riga per AP1 e una riga per AP2? ad un access point è associato un network number??? inoltre, i nodi nella cella di AP2 (AP2) non possono inviare frame verso nodi collegati a SW1 (SW2)???
  10. Le regole di firewall per il proxy sono due coppie: una per traffico http uscente originato dal proxy; una per traffico dns uscente, verso il solo NSB, originato dal proxy. Che senso ha aggiungere una terza coppia in cui un generico server web esterno si collega verso la porta 8080 del proxy??? la porta 8080 viene usata, se viene usata, dai client interni all'organizzazione, quelli che devono usare il proxy per navigare. Non da client esterni. E soprattutto non da server web esterni.
  11. TLS non scarta nessun email. Il traffico tra server e client non è alterato, quindi c'è integrità.
  12. Vorrei capire quale sia il senso di inviare una richiesta ARP per ottenere l'indirizzo Ethernet di un nodo che si trova in un'altra organizzazione. Indirizzo Ethernet che una volta ottenuto (con una risposta ARP il cui contenuto non può che essere stato creato dal mittente grazie alla telepatia) non viene usato. Proprio non riesco a capirne la logica.

    Inoltre, se il testo dice di "indicare i network number e gli indirizzi IP dei router in un formato simbolico indicato chiaramente su questo foglio" e si consegna un foglio senza nessun tipo di indicazione;

    Inoltre, se il testo dice "si assuma che sia da permettere anche la navigazione web attraverso un proxy; se ciò è possibile allora descrivere le eventuali modifiche da apportare alle regole di firewall" e si risponde "non è possibile in quanto non è nelle regole di firewall",

    Allora cosa deve dedurre chi legge il compito? Che non c'è stato tempo a sufficienza per svolgere il compito?
  13. La presenza del proxy è del tutto irrilevante rispetto al traffico POP (su TLS o su TCP). Le connessioni POP non passano dal proxy. Com'è possibile fare ancora questo errore dopo avere superato la prima provetta in cui c'era esattamente la stessa situazione?
  14. Ping è una cosa, traceroute è tutt'altra. Iniziare con TTL minimo ed aumentarlo progressivamente non c'entra nulla con ping. Inoltre, quale caspita di protocollo è MDCP? va bene che non si devono imparare le cose a memoria, ma tra MDCP e ICMP c'è una bella differenza (NB solo uno studente ha scritto MDCP invece di ICMP).
  15. Il proxy deve accedere al name server. E' quindi necessario inserire le regole di firewall corrispondenti. Com'è possibile fare ancora questo errore dopo avere superato la prima provetta in cui c'era esattamente la stessa situazione?
  16. "C2 (che ha indirizzo pubblico) invia un pacchetto a RB, RB vede che va instradato all'esterno, dovrebbe quindi uscire attraverso N1 che ha indirizzi IP privati e quindi non può uscire". Quindi un pacchetto con mittente e destinatario pubblici non può uscire perché è passato attraverso una network con network number privato??? Non è questo il significato degli indirizzi privati. Inoltre, un ragionamento di questo genere presuppone che un router decida come instradare un pacchetto in base al cammino che quel pacchetto ha seguito prima di arrivare al router. Non ha senso, anche perché il router non può sapere quale sia quel cammino.

  17. C2 invia a C1, "poiché IP-1 è un indirizzo privato RB non è in grado di instradare il pacchetto ulteriormente". Quindi gli indirizzi privati si possono usare solo in una network e non in una internetwork? Non è RB che scarta i pacchetti con indirizzi privati, è RA.
  18. Mi sfugge completamente la logica che porta a mettere nel firewall due coppie di regole in presenza di proxy, una coppia "se il proxy fa da client" e l'altra "se il proxy fa da server". Il proxy è un server nei confronti dei browser ed un client nei confronti di tutti i web server del mondo. Nel firewall ci vuole solo la prima di queste coppie, l'altra non ha il minimo senso.
  19. Che messaggio POP è "US: username2, PSW:password2"? Una cosa è non ricordare a memoria ogni dettaglio, un'altra è inventarsi le cose completamente. Anche perché in POP username e password non viaggiano nello stesso messaggio, occorrono due messaggi separati.
  20. Un gratuitous ARP è una richiesta ARP. Quindi specifica solo 3 elementi della quadrupla (con la particolarità che contiene 2 indirizzi IP identici). Non deve specificare tutti e 4 gli elementi, altrimenti non sarebbe una richiesta (e chi è configurato male quindi non sarebbe tenuto a rispondere)

lunedì 20 novembre 2017

Importanza dell'italiano

A parte gli errori, sviste ed imprecisioni "normali", ho rilevato l'amplificarsi di un fenomeno molto preoccupante: molte, molte persone hanno evidenti problemi di comprensione del testo. Mi riferisco all'italiano, non alle reti di calcolatori.

O non capiscono il testo, o capiscono e poi ritengono che una risposta più o meno in tema sia adeguata, o leggono solo per farsi un'idea generale di cosa è richiesto, non lo so. Il fatto è che sono molto poche le persone che di fronte alla domanda "A" rispondono alla domanda "A"; di solito rispondono ad altro.

Se rispondessero ad "A" e poi rispondessero anche ad altro andrebbe bene, il fatto è che non rispondono ad "A". Per fare una analogia, alla domanda: "Che ore sono?" si vedono risposte come

  • "Bello il mio orologio, vero?"
  • "Si, penso che sia un pò tardi"
  • "Io uso sempre lo smartphone per vedere l'ora"

e cose simili. Trovate molti esempi specifici nel blog post con gli errori.

Questo fenomeno mi pare un effetto collaterale di un altro fenomeno preoccupante: la scarsissima attenzione alla precisione nel linguaggio.  Se uno deve comunicare il concetto di verde, deve usare la parola "verde". Non la parola "caldo" o "giallino" o "automobile" o "erba". Se uno scrive "l'oggetto A è verde" non può scrivere due righe più sotto che "l'oggetto A è marrone" oppure "l'oggetto A è a palline verdi e gialle". Anche per questo trovate molti esempi specifici nel blog post con gli errori.

Molte persone ritengono che comunicare una idea approssimata di quello che hanno in testa sia tutto ciò che serve. Non è così. La precisione nel linguaggio (chiamare "pere" le pere e dire tutto ciò che è necessario dire) è fondamentale in ogni professione.

E' possibile che quando ho detto "dovete dimostrare al lettore di avere capito" io abbia contribuito ad incoraggiarvi a comunicare in maniera approssimata. Se è così, sgombriamo il campo dagli equivoci: la precisione nel linguaggio è fondamentale. Fondamentale. In ogni professione. Poi se uno non ricorda tutto, se svolge un esercizio in un modo realistico ma diverso da quello in cui dovrebbe essere svolto, pazienza.

Poiché c'è scarsa attenzione a comunicare con precisione il proprio pensiero, c'è anche scarsa attenzione a comprendere il pensiero degli altri. Da qui, forse, il problema a cui mi riferivo all'inizio di questo post.

Invito tutti a riflettere su quanto sopra.

giovedì 16 novembre 2017

Provetta 1 2017/2018: Errori

(post costruito in modo incrementale; i nuovi errori saranno aggiunti in coda alla lista)

(in molti commenti faccio analogie tra pere e scarpe; non vogliono assolutamente essere commenti "offensivi"; scelgo volutamente analogie facilmente comprensibili per cercare di essere più chiaro)

Considerazione sull'importanza di distinguere tra pere e scarpe, di sapere leggere il testo, di rispondere alla domanda fatta e non a un'altra etc. Durante la correzione delle provette è venuto a trovarmi uno studente di molti anni fa, almeno 10. Adesso lavora in Inghilterra. Mi ha detto che continua a ricordarsi spessissimo delle mie lezioni: "non so come spiegarmi, ma lavorando da loro alla fine ho capito davvero quello che ci diceva ogni volta: le parole contano".
  1. Esercizio zero: "...richieste e risposte DNS inviate o ricevute da org1.com/orgC.uk". Moltissimi hanno detto che mancava l'indicazione di cosa intendessi per org1.com/orgC.uk. Ciò significa non distinguere tra pere e scarpe. Il testo conteneva la stringa org1.com/orgC.uk in tre posti: dopo la @ in un indirizzo email, dopo il // in due URL. Dopo la @ in un indirizzo email c'è il nome di un dominio email. Un dominio email non genera traffico DNS (il mail server di quel dominio può generarlo, ma non il dominio). Dopo il // in un URL c'è un nome di server. Un server può generare traffico DNS. Quindi è evidente a cosa si riferisse la domanda.
  2. Esercizio zero: prelievo documento su orgC.uk. Browser invia request "orgC.uk NS ?". Vedi slide 77 in DNS-A. orgC.uk è un nome di server; non è un nome di zona; più precisamente, non ci sono elementi sufficienti per sapere se sia anche un nome di zona. In ogni caso, per trovare l'indirizzo IP associato a un nome di server si deve fare una request di tipo A per quel nome. Più facile impossibile. Anche in questo caso non si distingue tra pere e scarpe.
  3. Esercizio zero: "descrivere la sequenza di richieste e risposte DNS inviate e ricevute dal proxy". Svolgimento "le connessioni non web rimangono uguali". Questo significa non avere svolto l'esercizio (problema frequente: lo studente risponde ad una domanda che si è inventato da solo e che non c'entra con quella dell'esercizio).
  4. Esercizio zero: "...richieste e risposte DNS inviate o ricevute da org1.com/orgC.uk". Qualcuno ha incluso le richieste DNS inviate da ns.uk (che non si capisce chi sia) e dirette a ns.orgC.uk. Immagino che qui si sia considerato orgC.uk come il nome di una zona. Da quando una zona genera traffico DNS? Scarpe vs pere (vedi item 1 di questa lista).
  5. Esercizio zero. Quando il traffico web passa attraverso il proxy, il traffico DNS necessario per risolvere i nomi dei web server viene generato dal proxy, non da PC1. Quindi la situazione con proxy è radicalmente diversa da quella senza proxy (come fa il proxy a collegarsi con un server web? deve conoscerne l'indirizzo IP; e come lo trova? traducendo da nome a indirizzo IP; e come può tradurre un nome senza generare traffico DNS?).
  6. Esercizio zero: "Org1 permette ogni tipo di traffico entrante o uscente" non significa che i mail client contattino direttamente i mail server di destinazione. Ogni mail client contatta sempre il proprio mail server (slide da 22 a 24).
  7. Esercizio zero: prelevare un email inviato da p@orgA.uk non significa collegarsi con il mail server del dominio di email orgA.uk. Significa collegarsi con il proprio mail server e fare una interazione POP. Quando mai per prelevare un email ci si collega con il mail server del mittente?
  8. Esercizio zero: il proxy serve solo per il traffico HTTP. Cosa c'entra il traffico POP/SMTP che passa dal proxy???
  9. Esercizio zero: 6 connessioni con numeri di porta identici alle due estremità; connessione a http://mail.google.com con numeri di porta 25 ad entrambe le estremità; connessione verso lo stesso URL con numeri di porta 110 ad entrambe le estremità. Io davvero non capisco come si possa presentarsi ad un esame e poi anche consegnare con una preparazione di questo genere.
  10. Esercizio zero: "elencare...inviate e ricevute da org1.com". Svolgimento: traffico DNS del mail server dell'org1. Confusione tra pere e scarpe. Vedi item 1 di questa lista.
  11. Esercizio zero: "descrivere la sequenza di richieste e risposte DNS inviate e ricevute dal proxy". Svolgimento: "il proxy non riceve richieste e risposte DNS". A parte il fatto che la logica dello svolgimento è completamente sbagliata (come fa il proxy a collegarsi con un server web? deve conoscerne l'indirizzo IP; e come lo trova? traducendo da nome a indirizzo IP; e come può tradurre un nome senza generare traffico DNS?), ma è anche l'interpretazione del testo che è carente: il testo parla di "inviate e ricevute" e lo svolgimento solo di ricevute; e quelle inviate?
  12. Esercizio zero: invio di email verso z@org3.net usando GMail; non capisco quale sia la logica che porta ad avere una connessione verso la porta 80 del web server org3.net. GMail è un applicativo web; questo applicativo è come se fosse una interfaccia grafica verso un mail client; le connessioni SMTP/POP partiranno da quel mail client, non dal PC collegato a GMail.
  13. Esercizio zero: "con il proxy le connessioni TCP sono le medesime". Quindi senza proxy PC1 si collega con i server web e con proxy PC1 si collega ancora con i server web?
  14. Esercizio zero: "il proxy avrà richieste e risposte uguali all'esercizio 3 (NB aveva appena scritto che non cambiava nulla, punto 13; ma se non cambiava nulla come fa adesso il traffico a passare dal proxy?) con in più anche proxy.org1.com A ? / proxy.org1.com A IP-7". Poiché il testo chiedeva il traffico DNS inviato e ricevuto dal proxy, il lettore non può che dedurre che il proxy sta chiedendo l'indirizzo IP di sé stesso. Perché? Forse la richiesta di risolvere il nome del proxy era originata dal PC1, ma in questo caso lo studente non avrebbe neanche letto il testo dell'esercizio in quanto era richiesto il traffico DNS inviato e ricevuto dal proxy.
  15. Quando il nome del sito web passa da suarez.misterdomain.eu a www.suarez.se, il browser invierà HTTP request con header Host: www.suarez.se (e non Host: suarez.misterdomain.eu); il web server deve essere configurato per sapere che www.suarez.se equivale a suarez.misterdomain.eu. Pertanto dire che nel web server non c'è nulla da configurare è sbagliato.
  16. Come fa un browser ad avere una connessione con mail.google.com sulla porta 80 ed un'altra con mail.google.com sulla porta 25? un browser parla http, non parla smtp; e l'accesso mail via web è via web (slide numero 9).
  17. Esercizio zero: Cosa c'entra il traffico DNS (generato dai nodi interni o diretto verso i nodi interni) che passa dal proxy??? il proxy serve solo per il traffico HTTP. 
  18. Esercizio zero: supponiamo di volerci collegare con il mail server del dominio email org2.com (cosa che nell'esercizio sarebbe sbagliatissima, ma lasciamo perdere). Dovrei inviare "org2.com MX ?", ricevere un nome in risposta e poi fare una request di tipo A per quel nome. Che senso ha fare invece una request "org2.com NS ?"? Se mi occorre il nome del mail server del dominio org2.com, per quale caspita di motivo dovrei essere interessato al nome del name server della zona org2.com? Ancora il problema delle pere e delle scarpe. (idem per il collegamento con un web server invece che con un mail server)
  19. "Bisogna mettere www.suarez.se CNAME wsrv.misterdomain.eu nella zona di wsrv.misterdomain.eu" il CNAME va messo nella zona di ww.suarez.se (è in quella zona che arriveranno le richieste DNS di tradurre quel nome).
  20. Esercizio zero: MC1 ottiene indirizzo IP del proprio mail server dal DNS. Per quale caspita di motivo poi MC1 invia richieste DNS al mail server???? e per quale caspita di motivo MC1 dovrebbe risolvere il nome dei domini email a cui invia e, peggio ancora, da cui riceve???? e come si può risolvere il nome di un dominio email (pera) con una richiesta di tipo A (scarpa)????
  21. Esercizio zero: MC1 si collega con il proprio mail server per inviare email. Perché le richieste DNS di tipo MX per i domini email di destinazione vengono inviate da MC1???? Sono inviate dal mail server.
  22. Esercizio zero: "Ripetere i punti 1,2,3". Svolgimento: "il proxy fa da intermediario durante le azioni svolte da PC1". Fine svolgimento. Analogia: domanda: che ore sono? risposta: ho una maglia verde. 
  23. Quando si preleva l'URL http://somesite/ dal web server di nome somename, la richiesta HTTP ha uno header di nome Host e di valore somesite. Non di valore somename. Scambio tra pere e scarpe.
  24. Domanda: "Descrivere la sequenza di richieste e risposte DNS inviate e ricevute dal proxy". Svolgimento: "Le richieste/risposte saranno le stesse del name server dell'organizzazione. Il proxy agirà solo da controllore". Analogia: domanda: che ore sono? risposta: ho una maglia verde.
  25. "B si collega con il mail server di GMail sulla porta 80": ma che senso ha collegarsi con un mail server sulla porta 80? Su quella porta si parla HTTP; se si parla HTTP allora non è un mail server. E poiché l'URL era http://mail.google.com, che senso ha fare una DNS request "google.com MX ?"
  26. Esercizio zero: supponiamo di volerci collegare con il mail server del dominio email org2.com (cosa che nell'esercizio sarebbe sbagliatissima, ma lasciamo perdere). Invio DNS request "MSORG2.COM A ?". E dove ho trovato il nome MSORG2.COM ?
  27. Domanda: "descrivere i RR da modificare". Svolgimento: "Aggiunta dei RR: www.suarez.se A ? www.suarez.se CNAME wsrv.misterdomain.eu....". Domanda "...indicando in quale zona devono essere apportate le modifiche". Svolgimento: "Modifiche apportate nello zone file." Se uno non dimostra di sapere leggere il testo come allora non può superare l'esame. 
  28. Esercizio zero: "Tutte le request HTTP vengono inviate al proxy quindi in tutti i request header Host: viene specificato il nome del proxy". Quindi quando PC1 deve collegarsi con http://orgC.uk/1 il proxy capisce tramite telepatia che tra tutti i web server del mondo occorre collegarsi con quello di nome orgC.uk?
  29. Com'è possibile vedere traffico HTTP che non preleva immagini e script? Quante volte è scritto nelle slide che sono prelevate automaticamente?
  30. Esercizio zero: Invio di due email e prelievo di un email. Svolgimento: disegno con freccia da client a server "rich 1 messaggio", freccia da server a client "1 messaggio", ripetuto per 3 volte. Quindi per inviare o prelevare un email è sufficiente 1 messaggio? Anche trascurando questo punto, "come minimo 1, come massimo 3 connessioni TCP": quindi POP e SMTP viaggiano sulla stessa connessione????
  31. Esercizio zero: disegno di traffico DNS con browser a sinistra e "server di OrgC.uk" a destra; più sotto disegno analogo con browser a sinistra e "server google" a destra; testo che dice "poiché c'è ricorsione il browser ottiene l'informazione con una sola richiesta". E come caspita fa il browser a sapere a chi deve inviare la richiesta???? Perché invia ogni volta a un server diverso???
  32. Esercizio zero: se l'URL è http://orgC.uk/... allora il server si chiama orgC.uk. Perché scrivere server.orgC.uk?
  33. Posso arrivare a capire che uno scriva cache-validation invece di cache-control. Ma se il testo dice "caching basato su scadenza temporale di una settimana", come caspita si può fare uno svolgimento con l'etag? Risposta inconsapevole a domanda inventata? Oppure risposta consapevole perché non si sa come gestire la scadenza temporale?
  34. Esercizio zero: ci sono alcune persone che hanno dimostrato di avere compreso cosa succede quando c'è il proxy; ma alla domanda "ripetere i punti 1,2,3" dove 1 è "elencare la sequenza di connessioni TCP utilizzata da PC1 specificando per ognuna il server all'altra estremità..." rispondono "stessa sequenza precedente". Come caspita fa ad essere la stessa sequenza precedente se adesso PC1 si collega con il proxy? Provate a pensare di essere in un ambiente lavorativo e di dovere collaborare con altri; dovete spiegare una cosa e gli spiegate l'esatto contrario; quale reazione vi aspettereste???
  35. Altro elemento su cui riflettere. Se viene chiesto di indicare la sequenza di richieste e risposte DNS perché fornire un elenco di RR??? Immaginate di essere in un ambiente di lavoro; vi viene assegnato di realizzare il modulo X e voi fate il modulo Y; è ovvio che vi sparano; il fatto che se avete realizzato Y allora siete in grado sicuramente di realizzare anche X è irrilevante; quello che serve ai vostri colleghi è X; non è Y.
  36. Esercizio zero: "descrivere la sequenza di richieste e risposte DNS inviate e ricevute dal proxy". Svolgimento "nessuna perché le richieste DNS non sono reindirizzate verso il proxy".
  37. Testo esame: "...accessibili con FORM authentication". Svolgimento: HTTP response con header "Autentication: Basic-Realm". Cosa si deve pensare?
  38. HTTP Response che contiene un documento contenente un form. Come fa il content-type ad essere "formURLencoded"? Il content-type sarà "text-html", il valore "formURLencoded" (tralasciamo il valore esatto) c'è nelle richieste contenenti dati inseriti nel form; non nelle risposte contenenti documenti html che contengono form.
  39. Esercizio zero: "ripetere i punti 1,2,3" dove 1 è "elencare la sequenza di connessioni TCP utilizzata da PC1 specificando per ognuna il server all'altra estremità..." mentre 3 chiede traffico DNS. Svolgimento: "il PC effettua connessioni solo col proxy, che quindi farà cambiare l'indirizzo IP da IP-1 a IP-X". Tralasciamo il fatto che chiunque legga questa risposta non può che pensare che anche le connessioni SMTP e POP passano dal proxy (il che non ha alcun senso), questo è un altro esempio di domanda "che ore sono?" con risposta "indosso una maglia verde". E poi chi è "cambia" l'indirizzo IP? PC1? e perché mai PC1 cambia l'indirizzo IP? e come fa un proxy a fare cambiare l'indirizzo IP di un altro nodo? 
  40. Esercizio HTTP richiede autenticazione. Io non capisco come si possa decidere non solo di presentarsi ma addirittura di consegnare senza avere svolto l'autenticazione ("nel momento che provo a collegarmi mi rimanda al form di autenticazione che sarà postato con gli stessi header + user e pass"). Capisco ancora meno come lo si possa fare quando ci si è già presentati più volte all'esame. Forse è il caso di sottolineare che non ho l'abitudine di promuovere gli studenti perché si sono presentati all'esame molte volte. Al momento il record è 28 tentativi (poi lo studente ha cambiato ateneo). In seconda posizione c'è un superamento dell'esame al tentativo numero 12.
  41. "ci sarà una richiesta di tipo A verso il proxy", seguito da "proxy A ? / proxy A IP-x". Che vuol dire? Invio al proxy una richiesta per tradurre il nome del proxy in indirizzo IP? e come faccio ad inviargliela?
  42. "Sequenza di connessioni TCP utilizzate da PC1: 2". Questa non è la sequenza, è la lunghezza della sequenza (lunghezza sbagliata ma questo è un altro problema). Possibile che non si sappia distinguere una banana da una televisione?
  43. Esercizio zero-4 "Ripetere i punti 1-2-3 con il proxy". Svolgimento: "Le connessioni DNS passano prima per il proxy e sarà lui a comunicare con i rimanenti NS. Per quanto riguarda 1 la cosa rimane immutata." Fine svolgimento. A parte le enormi lacune sui contenuti del corso, anche in questo caso, come in moltissimi altri, ci sono problemi basilari di comprensione del testo. "Per quanto riguarda 1 la cosa (?) rimane immutata" (bene, quindi le connessioni HTTP non passano dal proxy): e per 2? e per 3?
  44. Esercizio zero-5 "Descrivere richieste e risposte DNS inviate e ricevute dal proxy". Svolgimento "Il proxy si colloca tra PC1 e DNS (!) quindi tutte le richieste e risposte che riceve PC1 le riceve pure lui". Fine svolgimento. A parte le enormi lacune sui contenuti del corso, anche in questo caso, come in moltissimi altri, ci sono problemi basilari di logica e di comprensione del testo. Primo, quali richieste riceve PC1? PC1 trasmette richieste, non le riceve. Secondo, si parla di ciò che "riceve" e non si dice nulla su ciò che trasmette. Terzo, si parla di ciò "che riceve PC1" ma questo coincide con l'universo di tutto il possibile traffico DNS o no? In parole povere, ci sono altre richieste o risposte DNS che non c'entrano nulla con quelle che prima coinvolgevano PC1 o no? La risposta è no, ma sfido chiunque a capirlo da quanto scritto sopra.
  45. D'accordo non ricordare a memoria tutti i nomi degli header HTTP; ma scrivere HTTP response con header "timetolive: 1 settimana", poi "local: \login.html", poi "set-auth: yes" supera ogni possibile soglia.
  46. Esercizio zero. Disegno di browser collegato con "ns.org1.com ---> name server dell'org1" sulla porta 80 di quest'ultimo. Idem per "ns.mail.google.com". Da dove cominciare? Un browser che deve prelevare http://org1.com/... si deve collegare con il web server org1.com sulla porta 80 di quest'ultimo; per ottenere l'indirizzo IP associato al nome org1.com deve inviare una DNS request (sulla porta 53) al proprio name server; poiché la risoluzione è ricorsiva, quel name server risponderà con l'indirizzo IP richiesto. Cosa caspita c'entra un collegamento con la porta 80 del name server di org1.com????
  47. Altro problema frequentissimo. Testo: "descrivere le configurazioni da modificare nel browser". Svolgimento: nessun cenno al browser. Questo si può interpretare in tre modi:
    1. lo studente non ha la minima idea di quale sia la risposta e spera che il lettore si accontenti di una mancata risposta (quando il lettore sono io è molto improbabile avere successo; può accadere, specie in casi come questo in cui ci sono 90 e passa scritti; ma è improbabile);
    2. lo studente si rende conto che la domanda è banalissima, la risposta sarebbe "non c'è nulla da modificare nel browser" ma ritiene che la domanda sia talmente ovvia da non valere la pena di scrivere la risposta;
    3. lo studente ha notato la domanda ma si è dimenticato di rispondere.
    4. lo studente ha interpretato la domanda come "dimmi più o meno cosa succede".

      Indipendentemente da quale sia l'interpretazione corretta, non fornire nessuna risposta è un indice molto negativo. Bisogna dimostrare di sapere leggere e di sapere comprendere un testo scritto. Quando un testo scritto è un esame, la dimostrazione è ancora più importante.
  48. "Nel primario della zona www.suarez.se bisogna inserire la coppia NS/A del nuovo documento". Quindi www.suarez.se è una zona? Quindi un documento necessita di coppie NS/A? 
  49. Svolgimento esercizio 4: "Non cambia con la presenza del proxy." Fine. Svolgimento esercizio 5: "fa le stesse richieste e risposte che faceva prima PC1". Fine. Leggere due brevissime frasi consecutive in cui la seconda è in palese conflitto logico con la prima mi fa davvero cadere le braccia. Se non cambia con la presenza del proxy allora a che serve il traffico DNS generato dal proxy?
  50. Per prelevare un documento protetto di URL X invio le credenziali a X???



martedì 24 ottobre 2017

Domande SMTP (e risposte)

  1. Il protocollo SMTP richiede di identificarsi tramite il comando HELO prima di poter usare qualsiasi altro comando. Non mi è chiaro quale sia l’argomento da fornire al comando. Nell’esempio delle slide, viene eseguito il comando HELO abc.com seguito da MAIL FROM: <elinor@abc.com>. Posso concludere che l’argomento del comando sia equivalente al dominio e-mail dell’indirizzo e-mail elinor@abc.com?
Ogni mail client è associato ad un dominio email. Se è un mail client in esecuzione su un dispositivo dell'utente, allora è il dominio email in cui si trova la mailbox dell'utente; se invece è un mail server che opera da client, allora è il dominio email di cui il mail server è responsabile.

L'argomento del comando HELO è il dominio email con cui è associato il mail client.

Nell'esempio a cui si riferisce l'argomento di HELO è identico al dominio email del mittente, ma in molti casi pratici (che non abbiamo approfondito) non è così. Ad esempio nel caso delle mailing list: l'argomento di HELO sarà il dominio email a cui appartiene la mailing list ma il mittente dell'email può essere diverso da quel dominio (è esattamente ciò che accade per questo email che state leggendo).
  1. Abbiamo detto che di rado il proprio mail client invia un’e-mail direttamente al mail server del destinatario. Invece, il mail client invia l’e-mail in questione al mail server dell’organizzazione, il quale la inoltra al mail server del destinatario. Ho però provato ad usare un client SMTP per mandare un’e-mail a me stesso; ero in università e non ho utilizzato il mail server universitario, ho invece inviato l’e-mail direttamente e non ho avuto problemi. Più in specifico, ho inviato un’e-mail alla mia mailbox di dominio e-mail gmail.com, utilizzando la configurazione consigliata da Google su https://support.google.com/a/answer/176600, cioè host smtp.gmail.com, porta 465, con SSL ed autenticazione. Come mai l’invio della mail ha funzionato senza problemi?
Se ho capito bene ha usato un mail client dall'interno dell'università.

Se è così allora significa che l'università permette il collegamento verso la porta 465 da parte di qualsiasi indirizzo IP interno (cosa che non sapevo). Mi confermi per favore.
  1. Qualora dovessi mandare l’e-mail tramite il mail server dell’organizzazione, l’argomento del comando HELO cambierebbe? E qualora dovessi mandare l’e-mail utilizzando i server di Google?
In entrambi i casi lei dovrebbe utilizzare come argomento il dominio email a cui appartiene la sua mailbox.
  1. Perché Google consiglia di utilizzare smtp.gmail.com come server SMTP? Facendo una richiesta DNS di tipo MX per gmail.com, smtp.gmail.com non è tra la lista di nomi di mail server restituito dalla risposta DNS (https://www.digwebinterface.com/?hostnames=gmail.com&type=MX&colorize=on&ns=resolver&useresolver=8.8.4.4&nameservers=). Non porei inviare e-mail direttamente usando questi ultimi mail server o, al limite, utilizzando il mail server dell’organizzazione il quale reindirizzerà le e-mail a questi server?
Complicato.

Per quello che abbiamo visto noi, il mail server è il server che contiene le mailbox ed il server al quale si collegano i mail client dell'organizzazione. Nella realtà questi due ruoli potrebbero essere realizzati da due server diversi (rifletteteci un momento e ve ne rendete conto abbastanza facilmente: il DNS deve contenere un record MX che identifica il mail server dove stanno le mailbox e i mail client dell'organizzazione devono essere configurati per collegarsi con l'altro server). Il motivo per cui ciò può accadere lasciamolo perdere.

Google è un caso di questi.
  1. Ho qualche dubbio sulla differenza tra programma client SMTP e programma server SMTP. Mi è ben chiara la differenza tra client e server, nonostante ciò mi è sorto questo dubbio, svolgendo entrambi il compito di inviare e-mail. Chiaramente, il server SMTP memorizza le e-mail fino a quando non vengono prelevate tramite POP o IMAP, ed inoltre effettua l’inoltro quando e-mail quando dovuto. A parte questi due fattori, ci sono altre differenze?
La differenza è enorme. Un programma client SMTP è un programma concepito per essere usato da un utente per gestire la propria mailbox. Quindi ha un'interfaccia grafica per gestire e comporre i messaggi etc etc etc. Le app sui cellulari sono programmi client SMTP. Sui PC non si vedono quasi più; questo è un esempio: https://www.pcmag.com/article2/0,2817,2488072,00.asp

Un programma server SMTP invece è concepito per scopi completamente diversi. La sua interfaccia grafica serve all'amministratore del server per configurarlo, non per gestire una particolare mailbox.
  1. Senza considerare l’obbligatoria autenticazione, cosa dovrei fare se volessi inviare un’e-mail tramite il mail server dell’organizzazione, specificando però di utilizzare il mail server smtp.google.com?
Non può farlo. Se si collega al mail server dell'organizzazione allora lui inoltrerà l'email secondo le informazioni che trova nei record MX del DNS.
  1. Meta-domanda: la terminologia utilizzata nelle domande precedenti è corretta? Se non lo fosse, o non lo fosse in parte, quale sarebbe stato il modo corretto per porle?
Lo stile è perfetto (niente mescolanza tra motivazioni, esempi etc e testo limitato a cosa vuole sapere; quando ho scritto https://bartoli-alberto.blogspot.it/2016/10/come-si-formula-una-domanda.html volevo incoraggiare proprio questo stile).

La terminologia mi pare ok ma non escludo mi sia scappato qualcosina...la cosa fondamentale è evitare ambiguità o errori macroscopici, poi nella pratica è inevitabile introdurre piccole ambiguità o imprecisioni che si capiscono dal contesto (ad esempio io ho scritto che l'argomento di HELO è un dominio email, in realtà è il nome di un dominio email).


giovedì 19 ottobre 2017

Tentare l'esame più e più volte

Premessa: non leggete questo post con l'atteggiamento "il solito docente noiosissimo che ci dice cose inapplicabili e lontanissime dal modo con il quale ragionano gli studenti"; leggetelo con l'atteggiamento "se questa persona che fa questo lavoro da più di vent'anni ed il cui stipendio non dipende dal tempo che sta impiegando nello spiegare gli errori agli studenti, allora forse ha ragione lui e dovrei cercare di capire cosa intende dirmi".

Alcuni studenti si presentano all'esame senza avere studiato tutto il programma approfonditamente, sperando in un colpo di fortuna o una amnistia generale. Altri studenti studiano in maniera pattern-based: prendono gli esercizi svolti, studiano le soluzioni, di fronte ad un nuovo esercizio cercano di ricondurlo ad uno degli esercizi già visti.

Sconsiglio fortemente di usare approcci di questo genere perché la probabilità di successo è molto bassa.

In Reti di Calcolatori basta modificare di un epsilon la formulazione di un esercizio per ottenere uno scenario radicalmente diverso da quello originario. Di conseguenza, cercare di applicare una soluzione già vista in precedenza per un esercizio apparentemente simile, comporta l'enorme rischio di scrivere una stupidaggine. Costruire la soluzione richiesta nel caso specifico senza avere capito la cosiddetta "teoria" è molto difficile.

Inoltre, in Reti di Calcolatori ci sono forti dipendenze tra numerosi argomenti diversi. Lo svolgimento di un esercizio tipicamente richiede la conoscenza di molti argomenti. Riuscire a svolgere gli esercizi proposti avendo buio completo su alcuni argomenti è possibile ma occorre davvero molta fortuna.

Oltre ad avere bassa probabilità di successo, l'approccio "studio un pò e provo / studio sugli esami precedenti" ha il rischio di entrare in una spirale dalla quale è molto difficile uscire:
  1. si fraintendono alcuni concetti di base, si fraintende il modo di ragionare richiesto dalla materia, si fraintende l'approccio da usare negli esercizi;
  2. l'esito dell'esame è fortemente negativo;
  3. la materia diventa sempre più noiosa e studiarla diventa sempre più faticoso;
  4. i fraintendimenti si consolidano e diventano sempre più difficili da rimuovere;
  5. si prova e si riprova l'esame senza successo: talvolta senza avere studiato molto e tanto per provare, ogni volta facendo sempre più fatica.
Purtroppo ho visto molti casi di persone entrate in questa spirale: il superamento dell'esame ha richiesto molti tentativi ed un grande dispendio di tempo ed energie.

Quando un esame non viene superato dopo un certo numero di tentativi, bisogna modificare radicalmente il modo di studiare o la preparazione; provare e riprovare senza modifiche radicali è una strategia sbagliata.

Suggerimenti di una studentessa che ha avuto difficoltà con l'esame di Reti di Calcolatori sono disponibili a questo link. 

Questi suggerimenti possono essere utili per tentare di risolvere il problema. Ma la cosa di gran lunga migliore è cercare di prevenirlo. Quindi, ripeto, sconsiglio caldamente l'approccio "studio un pò e provo / studio sugli esami precedenti".

Suggerimento specifico per chi si presenta alla prima provetta avendo seguito e studiato assiduamente ma ha avuto un esito insufficiente: non smettere di seguire e studiare.

Se uno non è riuscito a superare la provetta nonostante abbia studiato molto allora significa che questo insegnamento, per qualche motivo, gli crea problemi particolari. E' proprio in questi casi che bisogna persistere nell'impegno e non mettere da parte questa materia. Se un esame su parte del programma ha creato problemi pur avendo frequentato le lezioni, è ovvio che un esame su tutto il programma senza avere frequentato tutte le lezioni creerà ancora più problemi. Il rischio di entrare nella spirale sopra descritta, tra l'altro, diventa più grande.