venerdì 13 giugno 2008

Problema con TCP/IP

L'altro giorno mi sono imbattuto in un malfunzionamento abbastanza grave del mio computer.

Ho un windows XP, home edition, aggiornato a meno di un mese fa come livello di patch (non installo mai le ultimissime patch se non dopo qualche giorno dal il rilascio: è uno dei miei sacri principi).
Dopo aver digitato la password, sono entrato nel desktop e tutto sembrava regolare.....tranne il fatto che non si poteva in nessun modo accedere alla rete!

Si verificavano numerosi comportamenti anomali:

1) L'icona sul tray icon mostrava la presenza del cavo di rete, ma il computer, di fatto, non acquisiva nessun indirizzo IP (e pertanto non poteva accedere ad internet). Togliendo il cavo, alle volte l'icona sul tray icon segnalava il distacco, alle volte no.

2) Cercando di disattivare la scheda di rete (da Panello di controllo --> Sistema --> Gestione Periferiche) la finestra si bloccava, ed era necessario un kill del processo.

3) Cercando di disabilitare la connessione alla rete, stesso blocco. E se poi, dopo il kill, la connessione alla rete risultava effettivamente disabilitata, era impossibile riabilitarla: la finestra rimaneva sempre bloccata.

4) Idem se si cercava di disbilitare il protocollo TCP/IP dalle proprietà della connessione, togliendo il flag in corrispondenza di "Protocollo Internet (TCP/IP)": tutto bloccato!

5) Qualunque comando ipconfig (renew, all, release) aveva come risultato un laconico "Configurazione IP di windows" e nient'altro.

6) Tutte le schede, LAN o wireless, mostravano lo stesso comportamento.

7) La reinstallazione dei driver delle schede non portava a nessun miglioramento.

8) Facendo partire Win XP in modalità provvisoria non cambiava le cose.

Insomma, come se si fosse corrotto qualcosa legato alla gestione delle connessioni, e non alla singola scheda di rete: sembrava qualcosa di trasversale, più legato al protocollo o al winsock.

In realtà, anche se ora la faccio un po' facile, è stato necessario un po' di tempo per trovare la soluzione evitando così di reinstallare windows......

Dal momento che siamo di fronte ad un problema di connessione dove, dato il comportamento anomalo, si è corrotto qualcosa, la cosa migliore sarebbe poter re-installare solo il protocollo o in qualche modo resettare tutto ciò che è legato al winsock.

Ebbene, in Win XP si possono fare entrambe le cose! Dal momento che non sono un esperto di amministrazione, per cui non entrerò troppo in dettaglio, ma almeno i passi eseguiti per risolvere il problema sono interessanti da far conoscere.

Per reinstallare e resettare il cosiddetto TCP/IP stack (i componenti software che definiscono il protocollo internet), esiste un comando, da lanciarsi da prompt:

netsh int ip reset log_file.txt

Con questo la configurazione TCP/IP torna ad essere quella presente in windows subito dopo l'installazione del sistema operativo.


E' possibile anche fare il reset del Winsock Catalog (cioè l'insieme dei cosiddetti Layered Service Provider: quei componenti che, utilizzati nelle applicazioni, possono intercettare e modificare il traffico di rete): per fare questo è sufficiente lanciare il comando

netsh winsock reset

In questo modo il catalogo viene azzerato e la configurazione diventa quella di un windows appena installato.

Eseguendo entrambe queste operazioni, il sistema chiede di fare un reboot, ed il problema si è risolto.....evitandomi una reinstallazione completa del sistema operativo!


Una referenza di cui consiglio la lettura a chi è interessato è:
http://www.mydigitallife.info/2007/06/19/reinstall-and-reset-
tcpip-internet-protocol-in-windows-vista-2003-and-xp/