English version available here → [EN]
Nota dell’autore
Questo non è il Capitolo 6 di Legacy Things.
Sono consapevole di uscire dal tracciato, ma in Italia agosto è un mese diverso da tutti gli altri. Le infrastrutture IT continuano a fare il loro lavoro, i ticket continuano ad arrivare, salvo rare eccezioni i server non vanno in ferie, ma gran parte di chi li gestisce sì. E, come è giusto che sia, anche chi scrive si assenterà per ricaricare le batterie.
Non volevo interrompere la serie. Mi sono quindi chiesto cosa valesse davvero la pena pubblicare in un mese in cui molti IT admin hanno già la testa in vacanza.
Questo mese ho quindi pensato a qualcosa di diverso: uno speciale fuori numerazione, una piccola deviazione estiva rispetto al percorso principale della serie: una storia inventata, dichiaratamente inventata, ma costruita intorno a comportamenti tecnici plausibili, reali e verificabili da chi lavora con i sistemi legacy.
Una specie di “Romanzo Harmony” da nerd 😊
L’idea è semplice: questa prima parte racconta un caso IT da investigare e lascia aperto l’enigma. La seconda parte arriverà più avanti con la soluzione tecnica completa.
Vorrei stimolare chi legge a formulare un’ipotesi e scriverla nei commenti. Non serve indovinare tutto. A volte basta guardare nel punto giusto.
27 luglio 2026, la porta di un autobus si apre e scende un signore apparentemente distinto, ma a guardarlo bene aveva qualcosa di stravagante. Forse le Nike Air Jordan indossate sotto un completo di lino non erano la scelta stilistica più azzeccata, ma le portava con grande disinvoltura.
Sid Historia viveva a Londra da abbastanza tempo da lamentarsi della pioggia come un inglese. Ma aveva ancora origini argentine sufficienti per non restare composto quando una situazione gli sfuggiva di mano. In quei casi, di solito, imprecava in maniera colorita.
Quel giorno stava raggiungendo l’agognata meta della sua vacanza. Dopo mesi in cui il sole lo aveva visto con il contagocce, aveva scelto di passare una settimana in un bellissimo resort su un’isola caraibica. Solo lui, la sua valigia e un piccolo paradiso da scoprire.
Relax, mare, brezza, al massimo un buon libro, ma non voleva toccare una tastiera o un mouse per l’intera durata del soggiorno, anche lo smartphone sarebbe rimasto in camera durante la giornata.
Aveva bisogno di disintossicarsi dal suo mondo, fatto di sistemi IT complessi che molto spesso si ribellavano alle intenzioni dei clienti. Era un consulente, di quelli bravi, con una lunga esperienza alle spalle, di quelli che chiami quando non sai più che pesci pigliare.
Ma c’era qualcosa che non aveva previsto: la tempesta era arrivata la sera prima.
Una di quelle tempeste estive brevi e rabbiose, capaci di trasformare in pochi minuti una costa da cartolina in uno scenario da fine del mondo. Vento, pioggia orizzontale, fulmini sul mare e un blackout durato qualche ora, abbastanza da lasciare la struttura con una sensazione molto fastidiosa.
Quando Sid arrivò al banco della reception, captò subito quella sensazione, il sopracciglio sinistro si alzò come un’antenna.
Davanti a lui c’era una piccola coda di ospiti in attesa, trolley sparsi, bambini che saltavano sui divanetti con l’energia residua di chi aveva già finito i cartoni sul tablet e adulti che iniziavano a perdere la pazienza.
Dietro il bancone, il personale sorrideva. Ma più che un sorriso sembrava lo spot di un dentifricio sbiancante, si vedeva benissimo che era falso.
La sua “antenna” captò qualcosa, il monitor dell’addetto di fronte a lui mostrava una schermata bianca con una finestra di errore al centro.
Database non raggiungibile.
Tre semplici parole, ma aveva già intuito la portata della situazione.
Sid lesse il messaggio, guardò la fila, poi guardò il receptionist che gli chiedeva il nome con la voce stanca.
A quel punto esclamò: “Holy Token, qué desastre!”
Non avrebbe dovuto dirlo ad alta voce. Ma faceva parte del suo modo di essere e non cercava di nasconderlo, era la solita espressione che gli usciva quando la situazione era fuori controllo, a volte era finita anche scritta in qualche articolo che aveva pubblicato.
Da una porta laterale si affacciò un ragazzo con un badge consumato e le occhiaie di chi aveva dormito poco. Sul badge, scritto in lettere blu, Sid riuscì a leggere un nome: Mateo.
Mateo si fermò. Lo guardò meglio.
“Aspetti un attimo… lei è Sid Historia?”
Sid alzò gli occhi al cielo e fece quella faccia che fanno i consulenti quando vengono riconosciuti fuori dal proprio habitat naturale. In lui un forte desiderio di sparire all’istante si stava facendo strada.
“Dipende da cosa è successo,” rispose Sid.
Il ragazzo sorrise appena, come se quella fosse già una conferma.
“Leggo sempre i suoi articoli. Quelli sulle faccende da “vecchio IT” che sembrano assurde finché non scopri perché esistono.”
Sid abbassò lo sguardo verso il monitor e chiese: “Questa è abbastanza assurda?”
“Da dodici ore,” rispose Mateo.
Sid fece un mezzo passo indietro, l’istinto di fuga stava emergendo. Era appena arrivato. Aveva promesso a sé stesso una settimana senza mani nei sistemi degli altri, senza riunioni improvvisate, senza frasi come “ha sempre funzionato”.
“Mi dispiace per voi, davvero. Ma io sarei in ferie...”
Il ragazzo annuì e il sorriso si spense. Non sembrava sorpreso. Sembrava uno che quella risposta l’aveva già messa in conto prima ancora di fare la domanda.
“Lo so. Ma se ci potesse dare solo un’occhiatina…?”
A quel punto Mateo si voltò verso la reception, poi verso la piccola folla in attesa. Raggiunse il direttore, che fino a quel momento aveva osservato la scena da lontano, e scambiarono due parole sottovoce.
Il direttore si avvicinò con molta cautela, come si fa con gli animali selvatici o con i consulenti senior fuori orario.
“Signor Historia, non vogliamo rovinarle la vacanza. Ma se ci aiutasse almeno a capire dove guardare, potremmo sistemarle la suite panoramica. La migliore della struttura. Vista mare, terrazza privata, accesso spa. Per tutto il soggiorno.”
Sid restò in silenzio.
La parte razionale della sua mente gli ricordò che era una trappola. La parte stanca gli ricordò che aveva prenotato una camera standard con vista parcheggio. La parte peggiore, quella che lui cercava sempre di tenere a bada, aveva già iniziato a chiedersi come mai un database “irraggiungibile” stava bloccando un resort.
“Solo un’occhiata,” disse Sid.
Mateo sorrise per la prima volta con qualcosa che assomigliava alla speranza.
“Solo un’occhiata,” ripeté Mateo.
Sid sapeva che quella frase, in informatica, era una delle bugie più antiche del mestiere. Ma ormai aveva già accettato e non poteva più tirarsi indietro.
Mateo era il responsabile IT del resort, titolo che in quel momento significava soprattutto essere la persona con un bersaglio appiccicato sulla schiena.
Accompagnò Sid in un piccolo ufficio dietro la reception. Sul tavolo c’erano un portatile aperto, due telefoni, un energy drink ormai terminato e l’espressione universale del troubleshooting notturno: appunti scritti in fretta, cancellati, pasticciati.
“Ieri sera tempesta forte. Blackout. Al ripristino sembrava tutto ok. Poi il gestionale ha smesso di aprire le prenotazioni. Da allora abbiamo questo errore,” spiegò Mateo.
“Database non raggiungibile,” aggiunse Mateo, indicando il monitor.
“L’avevo già notato,” rispose Sid.
La prima ipotesi era talmente naturale da sembrare già una diagnosi affrettata: durante la tempesta era saltato un apparato di rete, oppure uno storage aveva troncato una transazione, o un server aveva avuto una corruzione. Mateo e i suoi colleghi avevano controllato switch, firewall, link verso l’esterno, macchina virtuale del gestionale, snapshot, servizi, riavvii.
Tutto sembrava indicare il temporale, ma i controlli sul campo sembravano scagionarlo. Il sesto senso di Sid gli diceva di diffidare del temporale.
“Il database è stato controllato?” chiese Sid.
Mateo girò il portatile verso di lui.
“Da locale sì. Dal server applicativo anche. La porta è aperta, la connessione parte. Se entro con il vecchio tool amministrativo, le tabelle le vedo.”
“Quindi il database locale non è proprio morto,” disse Sid osservando una console che sembrava arrivare da un’altra epoca dell’IT.
“No. Ma quando il componente locale prova a parlare con il database centrale, il gestionale mostra ancora lo stesso errore.”
Sid strinse gli occhi e annuì. I gestionali datati avevano una capacità quasi poetica di usare un solo messaggio di errore per descrivere dieci problemi diversi.
“Il servizio applicativo?”
“Parte. Non crasha. Se lavoriamo su funzioni locali, tipo anagrafiche interne o l’elenco delle stanze, sembra vivo. Ma quando il componente locale deve recuperare dati delle prenotazioni da BIGDB, il database centrale della catena, si ferma.”
“Dati dalla catena?” chiese Sid, sorpreso.
Mateo aprì uno schema disegnato male, ma sufficiente a raccontare la storia. Sembrava il disegno di un bambino e con quello sottomano iniziò a spiegare.
Il resort faceva parte di una catena più grande. La casa madre aveva un dominio Active Directory centrale. Il resort, acquisito qualche anno prima, manteneva ancora un proprio dominio locale, separato, con diversi sistemi nati molto prima dell’acquisizione. Tra i due mondi esisteva una trust cross-forest, creata in fretta e furia un mese dopo l’acquisizione.
“La trust funziona?” chiese Sid.
Mateo fece la faccia di chi aveva già risposto troppe volte a quella domanda. Aprì la console Active Directory Domain and Trusts.
“Secondo gli strumenti standard, sì. La relazione c’è, non vedo errori evidenti. Se provo un ping verso un FQDN del dominio centrale, il nome viene risolto e risponde correttamente. Anche i colleghi IT della catena mi dicono che, dal loro lato, vedono i nostri sistemi. Il gestionale però continua a morire quando deve parlare con i servizi centrali.”
Sid si appoggiò allo schienale della sedia. All’inizio aveva ancora l’aria di uno che stava facendo un favore controvoglia. Poi, quasi senza accorgersene, iniziò a inclinarsi verso lo schermo. Il caso aveva smesso di essere un fastidio da vacanza ed era diventato un piccolo enigma. E Sid, davanti agli enigmi, aveva sempre avuto un pessimo autocontrollo.
Fu a quel punto che smise di pensare di potersela cavare con poco. Anzi, era proprio il tipo di situazione che lo intrigava: quella in cui tutti vedono qualcosa, ma nessuno vede il legame che ci sta dietro.
“Curiosità, ma è solo il gestionale a essere così vecchio o c’è altro?” chiese Sid.
“Beh… tutti i sistemi qui hanno almeno quindici anni. I Domain Controller però sono Windows Server 2012 R2!” rispose Mateo, con l’aria di chi sperava fosse una buona notizia.
Sid pensò al vecchio mantra del “quel che funziona non si tocca”, ma si limitò a chiedere: “Fammi vedere i log applicativi.”
Mateo aprì un file con decine di righe ripetute. La maggior parte era rumore tutto uguale. Tentativi, timeout, retry, errori secondari generati dall’errore principale.
Sid lesse in silenzio. Poi indicò alcune righe quasi consecutive.
Opening booking session...
Local context initialized.
Central session validation failed.
Unable to establish secure session with BIGDB.hugechain.local.
Database unreachable.
“Interessante sequenza di eventi,” disse Sid.
“Perché?” chiese Mateo, avvicinandosi allo schermo.
“Perché dice database irraggiungibile dopo aver fallito la sessione sicura con i servizi centrali. Non prima,” rispose Sid.
Il silenzio che seguì fu breve, ma sufficiente. Ogni tecnico conosce quel momento. Quello in cui un errore inizia ad avere un significato.
Sid chiese di ripetere un test semplice. Avvio del gestionale. Login con un utente locale del resort. Accesso a una funzione che non usciva dal dominio locale. Tutto funzionava. Poi accesso alle prenotazioni sincronizzate dalla casa madre. Attesa. Rotellina. Errore.
Database non raggiungibile.
Stesso messaggio. Ma adesso raccontava una storia diversa.
“Quindi il problema non è qui?” chiese Mateo.
“Forse no,” rispose Sid.
“Non è il database!” insistette Mateo.
“Non lo assolverei ancora. Ma il test appena fatto dice che non è il primo sospettato,” precisò Sid.
“La rete?” chiese Mateo.
“La rete è sempre la prima indiziata. Ma abbiamo già visto che i sistemi centrali rispondono,” rispose Sid.
Mateo si lasciò sfuggire una risata stanca.
“E allora cosa guardiamo?”
Sid tornò allo schema. Dominio locale. Dominio centrale. Trust cross-forest. Gestionale vecchio. Resort acquisito. Servizi centrali. Database locale vivo. Appena entra in gioco BIGDB, tutto si ferma.
“Osserviamo meglio il perimetro,” disse Sid.
“Il firewall?” chiese Mateo.
“Sì, ma non solo. Esistono diversi tipi di perimetro,” affermò Sid.
Fu in quel momento che la vacanza di Sid Historia venne ufficialmente sospesa. La sua mente ormai era immersa in uno schema disegnato male e in un errore troppo superficiale per essere preso alla lettera.
Il temporale restava lì, ingombrante, comodo, perfetto per prendersi la colpa. Ma qualcosa non tornava. Il blackout avrebbe potuto spiegare un disco corrotto, uno switch bloccato, una macchina virtuale rimasta a metà. Non spiegava perché il gestionale funzionasse finché restava dentro casa e morisse miseramente appena doveva chiedere qualcosa alla casa madre.
I due mondi sembravano sani, presi singolarmente.
Il dominio locale del resort rispondeva. Il dominio centrale era raggiungibile. La trust esisteva. Il database locale non era morto. Il servizio applicativo non era fermo. BIGDB, almeno da fuori, sembrava raggiungibile.
Eppure, nel momento in cui il perimetro veniva superato, qualcosa smetteva di funzionare come aveva sempre fatto.
Sid guardò Mateo.
“Prima di toccare altro, voglio capire una cosa: sappiamo se è cambiato qualcosa dall’altra parte?”
Mateo rimase fermo qualche secondo.
“Dall’altra parte?” chiese Mateo.
“Casa madre,” rispose Sid.
Sid si sporse verso lo schema disegnato male, la penna di Mateo ancora in mano.
“Se il problema non è qui, e non è nemmeno là...” iniziò, tracciando una linea tra i due domini.
Non fece in tempo a finire la frase. La porta dell’ufficio si aprì di scatto. Il direttore, con la camicia chiazzata di sudore, non guardò nemmeno Sid.
“Mateo, il WiFi degli ospiti è ancora giù. Dopo il blackout qualcosa non è tornato su come doveva e nessuno riesce a ricollegarsi. Ho tre famiglie in hall che minacciano di scrivere pessime recensioni.”
Mateo chiuse gli occhi per un secondo, come se stesse facendo la somma di quante cose potessero andare storte in una notte sola.
“Arrivo,” disse, alzandosi.
Sid restò seduto, la penna ancora sospesa sulla linea appena tracciata. Guardò la porta richiudersi, poi tornò a fissare lo schema.
Il blackout aveva lasciato dietro di sé un problema vero. Solo che non era quello che spiegava davvero l’enigma.
E adesso?
Per adesso, il caso resta aperto.
Un resort isolato solo a metà. Un gestionale che accusa il database. Una tempesta perfetta. Una trust cross-forest che sembra esserci. Un database locale che risponde. E un errore che appare solo quando il sistema deve attraversare il confine verso BIGDB, il database centrale della casa madre.
Gli indizi sono pochi, ma non casuali.
Se avete lavorato con Active Directory multi-forest, trust e sistemi sopravvissuti a troppe acquisizioni, questo è il momento di fermarvi.
Voi dove guardereste?
La soluzione arriverà nella Parte 2.


