Alcuni software particolari, come i software di Teaming ed Antivirus, per funzionare correttamente hanno bisogno di intercettare il traffico di rete prima che venga processato dalle applicazioni e dal sistema operativo. Per ottenere questo comportamento hanno la necessità di lavorare ad un livello inferiore del driver che implementa il protocollo di trasporto (es: TCP).

Per questo motivo questi software aggiungono al sistema operativo dei driver specifici, che implementando alcune particolari specifiche NDIS, si posizionano al di sotto del generico livello TCP/IP. Questo genere di driver è chiamato generalmente Filter Driver (o Intermediate Filter Driver (IM), Lightweight Filter Driver (LWF)).

clip_image002

Come si può vedere dalla figura la loro posizione li mette in una condizione privilegiata rispetto al sistema operativo, in quanto essi sono “attraversati” da tutto il traffico in ingresso ed in uscita dalla specifica scheda di rete.
Generalmente il driver in questione analizza tutto il traffico ed in base al suo specifico ruolo esegue le operazioni più consone (es: NLB, Intrusion Detection, Firewalling...etc..)

Con la presenza di questo tipo di driver il sistema operativo non possiede il controllo esclusivo dello stack di rete, in quanto nel percorso verso la NIC esiste un componente di terze parti di cui non si ha il controllo.
Se un tale driver introduce un problema o anomalia le nostre tecniche di analisi non sono affidabili, in quanto il problema avviene al di fuori della nostra tecnologia e non abbiamo i dettagli delle operazioni effettuate sui singoli pacchetti.

I problemi noti introdotti da questi componenti sono i più vari, in particolare:

  • pacchetti persi/ritrasmessi
  • pacchetti scartati
  • performance degradate (ogni filter driver introduce potenzialmente calcolo computazionale)
  • problemi con risorse clusterizzare
  • unexpected shutdown/blue screen
  • etc.

Va notato che la sola disabilitazione dell’applicativo corrispondente al driver (software user-mode) non rimuove il driver (modulo kernel-mode), che rimarrebbe comunque caricato in memoria e potenzialmente attivo.
Per questo motivo come Supporto Tecnico molto spesso chiediamo, per il solo periodo di troubleshooting, di disinstallare questo driver; ovvero eliminare il componente dal percorso verso la scheda di rete.
Solo con la disinstallazione di questi driver e quindi con nessun componente di terze parti che interferisce nella comunicazione, sia ha la certezza che un determinato problema sia legato alla tecnologia Microsoft.

Se anche dopo la disinstallazione del driver il problema iniziale persiste allora si potrà procedere con un analisi accurata della causa.

Al termine dell’analisi se il problema non sarà imputato a questo genere di software/driver esso potrà essere installato nuovamente.
In caso contrario il supporto dovrà essere fornito dal venditore del software stesso.

Alcuni documenti utili:

Gianluca Bertelli
Support Engineer
Microsoft Enterprise Platforms Support