Supporto Knowledge Base Configurazioni di rete avanzate

Configurazioni di rete avanzate

Visualizza la guida in formato PDF

Introduzione

SMB (Server Message Block) è un protocollo di rete, utilizzato principalmente in ambiente Windows, il cui scopo è fornire un accesso condiviso a diverse risorse del computer. In precedenza l’impostazione consigliata per Gestionale 1 è stata quella di adottare la prima versione di SMB (SMB1); con l’aggiornamento “Fall Creators Update” di Windows 10 e Windows Server 2016 (corrispondente alla versione 1709 rilasciata nell’autunno 2017) si ha ora l’opportunità, sotto determinate condizioni e mediante una adeguata configurazione, di salvaguardare le funzionalità di rete offerte dall’ultima versione di SMB evitando l’utilizzo del vecchio protocollo SMB1.

Come vedremo nel seguito del documento, in presenza dei nuovi sistemi operativi, è possibile impostare la condivisione dei dati di Gestionale 1 in modo ottimale intervenendo solo sulla cartella condivisa in cui risiedono tali dati (impostazione del Directory Leasing Mode).

Si segnala inoltre che la versione 1709 di Windows implica un’altra novità: la fine della presenza di SMB1. Sulle nuove installazioni di Windows infatti (ovvero tutte quelle installazioni che partiranno dalla versione 1709 di Windows 10 o Windows Server 2016), il supporto a SMB1 risulterà disattivato. Le installazioni precedenti potrebbero invece subire la disinstallazione del supporto a SMB1.

Cos’è il protocollo SMB

SMB (Server Message Block) è un protocollo di rete, utilizzato principalmente in ambiente Windows, il cui scopo è fornire un accesso condiviso a file, cartelle e altri tipi di risorse all’interno della rete locale (LAN). Si tratta quindi di una componente del sistema operativo Windows, presente in esso fin dalle prime versioni e che nel corso del tempo ha subito diverse modifiche, anche per adattarsi a scenari di rete in continua evoluzione. La prima versione del protocollo, SMB1, è stata infatti realizzata pensando ad ambienti con un numero ridotto di client in rete (non più di 20), ma con il passare del tempo le infrastrutture di rete si sono sempre più diffuse e si sono introdotte nuove funzionalità al protocollo, migliorandone anche le performance. Di seguito riportiamo una tabella riepilogativa delle versioni di SMB successive a SMB1:

Periodo Versione SMB

Versione Windows

Gennaio 2007 2 Vista
Ottobre 2009 2.1 7 / Server 2008R2
Ottobre 2012 2.2 8 / Server 2012
Ottobre 2013 3.0.2 8.1 / Server 2012R2
Luglio 2015 3.1.1 10 / Server 2016

A partire dalla versione 2 SMB ha adottato l’utilizzo di meccanismi di caching, ovvero la possibilità di mantenere in memoria, sul client, dei dati senza dover necessariamente rileggerne la “copia” su server, al fine di rendere più veloce il reperimento delle informazioni. Con questa versione e le successive implementazioni sono stati introdotti l’uso di lock opportunistici (oplock) ed il “lease”, delle politiche di caching che consentono ai client di mantenere e lavorare su di una propria copia del dato in memoria, contattando il server solo quando strettamente necessario. Queste tecniche migliorano effettivamente le performance per gli applicativi che realizzano una comunicazione client/server (es. SQLServer), ma possono penalizzare, in termini di integrità dei dati, le soluzioni con database basate su file system/ISAM, come Gestionale 1.

Le successive versioni di SMB hanno aggiunto poi ulteriori migliorie relative alla sicurezza per lo scambio dei dati, fino ad arrivare alla versione 3.1.1 (SMB3) distribuita con i più recenti Windows 10 e Windows Server 2016.

Gestionale 1 e SMB

Come noto, Gestionale 1 gestisce i propri dati tramite il BDE, memorizzandoli in tabelle come file in formato .DBF, e per poter accedere rapidamente alle informazioni, sfrutta dei file di indice .MDX. L’indice memorizzato in questo file, ed aggiornato quando si modifica il contenuto di particolari campi in tabella, permette di accedere in modo quasi immediato ai singoli record. Si tratta quindi di un tipico caso in cui entra in gioco il file system e viene adottato un metodo di accesso sequenziale indicizzato (ISAM, Indexed Sequential Access Method).

A causa di ciò, i dati di G1 possono risultare soggetti a problemi di integrità quando, lavorando in rete locale, si utilizza il protocollo SMB2. Per gli utenti questo può tradursi in una richiesta frequente di “Recupero Indici”: quando occorre un problema sull’integrità del file indice, Gestionale 1 chiede in pratica all’utente di ricostruire questo file per una o più tabelle, in modo tale da evitare disallineamenti più gravi sui dati contenuti nelle tabelle (ad esempio anomalie in fase di lettura o scrittura delle informazioni).

Per questo motivo, onde evitare continue richieste di ricostruzione degli indici o la persistenza/lettura di dati incoerenti, è stato sempre consigliato di operare in rete locale utilizzando il protocollo SMB1, dando priorità alla coerenza dei dati rispetto alle performance. Sebbene difficilmente gli ambienti di rete nei quali è installato G1 superino il numero di client tale per cui le prestazioni di SMB1 diventano critiche, questo aspetto è diventato sempre più sentito a causa dell’aumento delle possibilità di utilizzo della rete locale e delle tipologie di dispositivi connessi.

SMB3 e Windows 10/Server 2016 ver.1709: cosa cambia

La versione 1709 dei più recenti S.O. Microsoft (Windows 10 e Windows Server 2016) introduce una ulteriore, preziosa funzionalità che permette di disattivare i meccanismi di caching che fanno uso di lock opportunistico e lease limitatamente ad una cartella condivisa in rete, in modo tale da non compromettere l’integrità dei dati per le applicazioni che utilizzano le tipologie di database descritte in precedenza. La disattivazione richiede l’utilizzo di un particolare parametro, “LeasingMode”; in seguito si farà riferimento all’uso di tale parametro come “disattivazione dei lease”. Tale configurazione è da applicarsi sulla macchina che funge da server dati, relativamente alla condivisione nella quale sono presenti i dati di Gestionale 1. La possibilità di applicare questa impostazione solo ad una specifica condivisione implica che il resto delle applicazioni e condivisioni possano continuare ad utilizzare appieno le funzionalità di SMB3; si tratta di un grosso passo avanti rispetto alle precedenti versioni, per cui SMB2 doveva essere adottato “integralmente” oppure era necessario passare a SMB1, con un impatto su tutti gli applicativi.

Oltre alla disattivazione dei lease tuttavia, la versione 1709 di Windows implica un’altra importante novità: la fine della presenza di SMB1. Sulle nuove installazioni di Windows infatti (ovvero tutte quelle installazioni che partiranno dalla versione 1709 di Windows 10 o Windows Server 2016), il supporto a SMB1 risulterà preinstallato parzialmente. Le installazioni precedenti invece, ovvero quelle che hanno già SMB1 installato, dopo aver aggiornato alla versione 1709 subiranno la disinstallazione del supporto a SMB1, nel momento in cui verrà raggiunta la soglia di 15 giorni complessivi di funzionamento del pc senza utilizzo di questa versione del protocollo. La disinstallazione viene applicata una sola volta; è comunque possibile in qualunque momento provvedere alla reinstallazione manuale di SMB1, come verrà poi descritto in seguito.

Configurare l’ambiente di lavoro per G1 con SMB3

Al fine di poter sfruttare le nuove caratteristiche di SMB3 e gestire il passaggio da SMB1, è necessario in primo luogo capire in quale contesto ci si trova, per effettuare le dovute configurazioni. Il primo requisito, imprescindibile, per poter beneficiare dei vantaggi di SMB3, è ovviamente il seguente: avere in dotazione una macchina con sistema operativo Windows 10 o Windows Server 2016 aggiornato alla versione 1709. In assenza di ciò, non è possibile applicare alcuna delle configurazioni di seguito descritte.

Verificare la versione di MS Windows installata è piuttosto semplice: dal menu Start selezionare “Esegui” o premere simultaneamente da tastiera + R. Nella finestra di “Esegui”, digitare poi il comando “winver” (senza doppi apici) e premere Invio o confermare con il pulsante OK. Comparirà una finestra come quella di seguito riportata, in cui è visibile sia il tipo di sistema operativo installato (Windows 10) che la versione (evidenziata nel riquadro rosso):

Coloro che attualmente utilizzano dei PC con installato una versione di Windows precedente alla 1709, anche fosse Windows 10 (fino alla versione 1703), non sono interessati dalle novità trattate. In assenza di un PC Windows 10/Server 2016 1709 in rete, il suggerimento rimane quello di continuare a lavorare utilizzando il protocollo SMB1 come in passato.

In presenza anche di un solo sistema Windows aggiornato alla versione 1709, valgono le indicazioni riportate di seguito. Sempre a proposito dei sistemi operativi Windows, si precisa che nel seguente documento vengono considerate solo le versioni di Windows attualmente supportate da Microsoft. Sono da considerarsi come non più supportate:

  • Windows XP, il cui supporto è terminato ad aprile 2014;
  • Windows Vista, il cui supporto è terminato ad aprile 2017;
  • Windows 7 senza Service Pack 1, il cui supporto è terminato ad aprile 2013.

Oltre a quelli sopra elencati, non sono più supportati i sistemi Windows Server 2003 (tutte le versioni) ed alcune versioni di Windows Server 2008. È possibile verificare se il proprio sistema operativo è ancora supportato, utilizzando il seguente URL: https://support.microsoft.com/it-it/lifecycle/search.

Di seguito viene riportato uno schema riassuntivo delle possibili combinazioni tra client e server, con le relative versioni di SMB da adottare per l’utilizzo di Gestionale 1. Lo schema comprende sia le configurazioni consigliate per l’utilizzo del programma prima dell’avvento della possibilità di disattivazione dei lease, sia le nuove “combinazioni”.

  S.O. CLIENT
S.O. SERVER Windows 7 sp1, Windows 8/8.1 Windows 10 Windows 10 senza supporto SMB1
Windows Server 2008 SMB1 SMB2 SMB1 SMB2 NO
SMB2 SMB1 SMB3 SMB1 NO
Windows Server 2012 SMB1 SMB2 SMB1 SMB2 NO
SMB2 SMB1 SMB3 SMB1 NO
Windows 7 sp1, Windows 8/8.1 SMB1 SMB2 SMB1 SMB2 NO
SMB2 SMB1 SMB3 SMB1 NO
Windows 10, Windows Server 2016 (versione 1709) SMB3 no lease SMB3 no lease SMB3 no lease
SMB1, SMB2 SMB1, SMB3 SMB3
Windows 10, Windows Server 2016 senza supporto SMB1 SMB3 no lease SMB3 no lease SMB3 no lease
SMB2 SMB3 SMB3

Si supponga ora di introdurre una nuova postazione Windows nella propria infrastruttura di rete; è possibile ricondursi a due casistiche distinte, quella in cui la nuova postazione è un client che va a connettersi su un server dati esistente e lo scenario in cui la nuova macchina ospiterà invece i dati del gestionale. A seconda del ruolo, variano le considerazioni e quindi le impostazioni applicabili.

SMB3 su postazione client Windows 10 aggiornato alla versione 1709

Nel caso in cui sia un nuovo client (o un client aggiornato) ad adottare un S.O. Windows 10 ver.1709, SMB3 entra in gioco in un contesto in cui le altre postazioni potrebbero non supportare tutte le funzioni di tale protocollo, in particolare per quanto riguarda il server.

Qualora il server dati fosse già aggiornato alla versione 1709 di Windows, e sia stata messa in atto la configurazione riportata nell’apposito paragrafo “SMB3 su postazione server Windows 10/Server 2016 aggiornato alla versione 1709”, non è necessario alcun accorgimento: è sufficiente assegnare una lettera di unità alla condivisione creata, come avviene normalmente per i client in rete.

La necessità di intervenire sul client nasce invece nel momento in cui il server opera con SMB1, ad esempio per garantire la compatibilità con i client già esistenti. In questo caso è necessario verificare la presenza del supporto per SMB1 sulla nuova macchina, seguendo le indicazioni contenute nel paragrafo “Installare/disinstallare SMB1 da Windows 10 o Windows Server 2016”, ed assicurarsi che sia presente la spunta sulla funzionalità “Client SMB 1.0/CIFS”. Se presente, è anche possibile rimuovere direttamente la funzione “SMB 1.0/CIFS Automatic Removal” così da evitare futuri interventi di manutenzione (come indicato in precedenza, SMB1 potrebbe venir rimosso automaticamente dopo un certo lasso di tempo).

All’avvio di Gestionale 1 comparirà in seguito il consueto messaggio di richiesta di impostazione SMB1 al quale si dovrà dare conferma ed in seguito riavviare la postazione per rendere effettiva la modifica.

Il protocollo SMB1 dovrà essere utilizzato su queste postazioni fintanto che la versione di SMB3 introdotta con l’aggiornamento alla versione 1709 (o successiva) di Windows 10/Server 2016, non sarà disponibile anche sul server dati. Una volta adottata tale versione sul server ed eseguita la configurazione descritta di seguito, sarà possibile abbandonare l’utilizzo di SMB1 anche sul client: per farlo sarà sufficiente lanciare l’esecuzione dell’applicativo “SMB Version Manager” (sga_smbManager.exe) di Gestionale 1 presente nella cartella BIN di installazione (C:\AZW32\BIN), ripristinando l’utilizzo di SMB2 o superiore.

SMB3 su postazione server Windows 10/Server 2016 aggiornato alla versione 1709

I benefici dell’aggiornamento alla versione 1709 di Windows 1/Server 2016, con le migliorie legate a SMB3, sono fruibili principalmente quando la postazione aggiornata ricopre il ruolo di server dati. In questo caso infatti, è possibile configurare opportunamente la condivisione dati sfruttando il nuovo parametro “LeasingMode” e procedere con la disattivazione dei lease, in modo tale da non dover forzare l’utilizzo di SMB1 sulla rete locale.

Essendo la disattivazione dei lease applicabile su una specifica condivisione di rete, sarà quindi necessario creare una nuova condivisione, su una cartella già esistente, da utilizzare come “contenitore” per i dati di Gestionale 1. Qualora la condivisione sui dati sia già stata creata in precedenza, ma non faccia uso della disattivazione dei lease, sarà possibile terminare questa condivisione prima di creare la nuova, oppure intervenire sulle proprietà della stessa per disattivare i lease. La modalità di realizzazione di queste configurazioni è molto simile.

Nuova installazione

Si supponga inizialmente di non avere condivisioni in essere sulla cartella dati di Gestionale 1 e di voler creare una nuova condivisione che faccia uso della disattivazione dei lease. La nuova funzionalità è fruibile operando attraverso Windows PowerShell, un’interfaccia a riga di comando che costituisce una sorta di “prompt dei comandi” potenziato, disponibile nelle ultime versioni di Windows. Windows PowerShell è richiamabile direttamente dal menu Start di Windows, sotto l’omonimo gruppo “Windows PowerShell”. Alternativamente è richiamabile digitandone il nome direttamente nella barra di ricerca di Windows (accanto al pulsante Start).

Una volta individuata, la creazione della nuova condivisione richiede che PowerShell venga lanciata con privilegi amministrativi. È quindi necessario effettuare un click destro del mouse sulla voce “Windows PowerShell” e selezionare “Esegui come amministratore”. Sarà possibile operare con PowerShell quando comparirà una schermata blu con il percorso “C:\Windows\system32>” seguito da un cursore.

In questa schermata sarà necessario digitare il comando di seguito riportato, adattandone i “parametri” tra parentesi quadre [] in base alla propria installazione.

New-SmbShare -Name [NOME_CONDIVISIONE] -Path [PERCORSO_CARTELLA_DA_CONDIVIDERE] -FullAccess Everyone -LeasingMode none

Ad esempio, supponendo di voler creare una condivisione con nome “DBG1” sulla cartella C:\AZW32\DB, il comando da digitare diverrà:

New-SmbShare -Name DBG1 -Path C:\AZW32\DB -FullAccess Everyone -LeasingMode none

Nel dettaglio, la sintassi utilizzata specifica i seguenti elementi:

  • New-SmbShare è il comando che indica di creare una nuova condivisione di rete;
  • -Name [NOME_CONDIVISIONE] indica quale nome adottare per tale condivisione, ovvero il nome con il quale la cartella condivisa verrà identificata dai client. Ad esempio, creando una condivisione su un computer chiamato PC-SERVER e indicando nel comando DBG1 come nome condivisione, il client “vedrà” tale condivisione come \\PC-SERVER\DBG1 (questo percorso potrà poi essere associato ad una lettera di unità);
  • -Path [PERCORSO_CARTELLA_DA_CONDIVIDERE] indica qual è la cartella da condividere in rete;
  • -FullAccess Everyone indica che il percorso condiviso sarà accessibile con controllo completo (quindi lettura e scrittura) per tutti gli utenti;
  • -LeasingMode none rappresenta infine il “cuore” del comando relativamente a SMB3 ed è la parte che specifica di disattivare i lease per la condivisione.

Nota

Una volta creata la nuova condivisione, è sempre possibile intervenire sulle sue proprietà attraverso la normale interfaccia di Windows (da server, click destro sulla cartella condivisa, “Proprietà” e operando nella scheda “Condivisione”), così da impostare i diritti ed i permessi per gli utenti in modo più preciso. L’unica impostazione non modificabile dalle consuete finestre di dialogo, è la disattivazione dei lease.

Il comando New-SmbShare sopra illustrato è in realtà una versione semplificata dello stesso, che presenta una notevole quantità di varianti e possibilità; quella riportata è una parametrizzazione che dovrebbe consentire di soddisfare le esigenze più comuni. Per impostazioni avanzate, ad esempio se dovesse risultare necessaria una profilazione più puntuale degli utenti, è possibile consultare la documentazione Microsoft a riguardo, che viene costantemente aggiornata; in particolare si rimanda alla consultazione:

Una volta che la configurazione della nuova condivisione è stata approntata sul server, si dovrà provvedere a mappare la cartella condivisa come unità di rete sui singoli client, secondo le consuete modalità.

Installazione già esistente

Nel caso in cui invece la condivisione di rete sia già esistente, ovvero ci si trova nella situazione in cui il sistema che ospita i dati è stato aggiornato alla versione 1709 di Windows 10/Server 2016, è possibile intervenire su di essa disattivando i leasing. Per procedere in questo modo, è necessario conosce il nome logico della condivisione di rete (quello “visto” dal cliente) ed assicurarsi che sulla macchina non sia stato forzato l’uso di SMB1.

Sempre avviando PowerShell in modalità amministatore, il comando da eseguire in questo caso sarà:

Set-SmbShare -Name [NOME_CONDIVISIONE] -LeasingMode none

i cui parametri assumono il medesimo significato illustrato in precedenza. Anche in questo caso, qualora fossero necessarie maggiori informazioni in merito al comando, si rimanda alla documentazione Microsoft:

Si precisa che con la versione 6.0.0 di Gestionale 1, avviando il programma verrà comunque notificata la presenza di SMB2 e richiesto di effettuare il passaggio a SMB1. In questo contesto, solo dopo aver disattivato i lease grazie a SMB3, sarà possibile ignorare tale messaggio.

Trattandosi di un messaggio disattivabile, si consiglia di accedere alla scelta “Base \ Menu Utilità \ Menu di Sistema \ Attiva Messaggi” e togliere la spunta da “Avviso di incompatibilità del protocollo di rete corrente” per evitarne la comparsa ad ogni accesso al programma.

La configurazione della condivisione di rete con disattivazione dei lease, consentirà ai dispositivi in rete di continuare a lavorare con SMB2 godendo di tutti i vantaggi derivanti da tale protocollo; la cartella dei dati di Gestionale 1 tuttavia, sarà “al riparo” dalle problematiche di corruzione che rappresenta il principale svantaggio legato a questo protocollo.

Installare/disinstallare SMB1 da Windows 10 o Windows Server 2016

Qualora sia necessario utilizzare ancora SMB1 (nell’impossibilità di realizzare le configurazioni descritte in precedenza), anche se dalla versione 1709 di Windows 10/Server 2016 questo non è presente o è stato disinstallato automaticamente, è possibile reinstallarlo seguendo le indicazioni qui riportate.

Windows 10

Accedere al “Pannello di Controllo” di Windows, ad esempio digitandone il nome nella barra di ricerca di Windows. Selezionare la voce “Programmi e funzionalità” e successivamente, nella parte sinistra della schermata, “Attivazione o disattivazione delle funzionalità di Windows”; per fare ciò è necessario disporre dei diritti amministrativi per l’utente in uso.

La schermata “Programmi e funzionalità” può essere richiamata anche premendo il pulsante “Impostazioni” dal menu Start di Windows, selezionando la voce “App” e cliccando poi su “Programmi e funzionalità” sotto la voce “Impostazioni correlate”.

Nella finestra che compare, individuare la voce “Supporto per condivisione file SMB 1.0/CIFS”.

Espandendo la voce “Supporto per condivisione file SMB 1.0/CIFS” sono presenti 3 voci distinte:

  • Client SMB 1.0/CIFS
  • Server SMB 1.0/CIFS
  • SMB 1.0/CIFS Automatic Removal

È possibile spuntare (ed installare) solo la funzionalità strettamente necessaria, client o server. L’ultima voce fa riferimento invece alla rimozione automatica di SMB1 dopo 15gg di inutilizzo; per evitare tale comportamento automatico, è possibile disattivare questa voce specifica.

Applicare la spunta sulla/e funzionalità che di desidera installare per SMB1 (o togliere la spunta per disinstallarlo) e confermare con “OK”. Anche se non esplicitamente richiesto, l’operazione necessita di un riavvio del PC per il completamento dell’installazione o disinstallazione.

Windows Server 2016

L’analoga procedura di installazione/disinstallazione vista per Windows 10, può essere eseguita in Windows Server 2016 accedendo alla “Dashboard” del “Server Manager” e avviando la procedura di aggiunta o rimozione di ruoli o feature del sistema operativo.

Configurazione di SMB con versioni precedenti di Windows

Nota

Le seguenti informazioni sono relative ai sistemi operativi Windows 7 sp1, Windows 8/8.1, Windows 10 fino a versione 1703 (“Creators Update”) e sistemi server precedenti Windows Server 2016 ver.1709.

In assenza della possibilità di disabilitare i lease, ovvero in quei contesti tali per cui il server dati non è aggiornato (o successivo) alla versione 1709 di Windows 10/Server 2016, rimane valida l’indicazione di utilizzare SMB1 nelle comunicazioni tra client e server. La logica relativa all’utilizzo di una determinata versione di SMB consiste nel fatto che in un colloquio di rete tra macchine che ne utilizzano una differente versione, il PC che lavora con la versione più recente si adatti ai dispositivi con installata la versione più vecchia. Ad esempio, avendo un client con SMB2 che dialoga con un server SMB1, il client si adatterà ad utilizzare la versione 1 del protocollo; viceversa, se fosse il client ad avere installato SMB1 ed il server SMB2, sarà quest’ultimo ad adoperare il protocollo nella sua versione precedente (SMB1). Questa impostazione impatta sull’intera infrastruttura di rete, non essendo possibile configurare una condivisione di rete in modo mirato come con SMB3. Significa cioè che in un contesto in cui un server ed N client comunicano fra di loro simultaneamente, è sufficiente che una sola delle postazioni utilizzi SMB1 per far sì che tutte le altre si adattino a questa versione del protocollo. Vi sono tuttavia due scenari in cui si può scegliere una diversa strategia di configurazione, al fine di evitare di penalizzare inutilmente le prestazioni di rete.

Il primo caso è quello di una rete “aperta”, in cui vi sono dei dispositivi personali (come ad esempio PC portatili di agenti o lavoratori part-time) che usufruiscono di servizi offerti dalla rete locale. In questo caso, venendo meno un concetto di standardizzazione dei dispositivi aziendali, ma avendo la necessità anche per questi dispositivi di utilizzare Gestionale 1, l’approccio più prudente è quello di impostare SMB1 direttamente sul server. In tal modo i dispositivi in rete locale sono forzati automaticamente all’utilizzo di questa versione del protocollo, e non è necessario configurare singolarmente i dispositivi che interagiscono con la rete in maniera saltuaria.

L’altra situazione è quella di una rete “chiusa”, nella quale le postazioni che usufruiscono della base dati del gestionale sono sempre le medesime e sulle quali si ha quindi un controllo maggiore a livello di configurazione. In questo caso è preferibile impostare SMB1 direttamente sui client, lasciando così attivo SMB2 sul server. Con questo approccio, il server può sfruttare le caratteristiche di SMB2 su eventuali altre macchine della rete che non fanno uso della base dati di G1 e che eseguono ad esempio attività differenti.