Condividere file tra computer e utenti aiuta a comunicare e scambiare dati in modo più efficiente e conveniente. È possibile condividere file sulla rete in modi diversi, ad esempio, utilizzando il protocollo SMB o NFS su server e computer. Anche i dispositivi NAS (archiviazione collegata in rete) vengono utilizzati per condividere file tramite SMB e NFS.
Leggi il confronto NFS vs SMB per capire cosa utilizzare nel tuo caso e quale protocollo scegliere.
Cos’è il protocollo SMB?
SMB (Server Message Block) è un protocollo di condivisione file che fornisce accesso ai dati condivisi sulla rete. È ampiamente utilizzato negli ambienti Windows per accedere ai file sulla rete locale (LAN). Sviluppato da IBM nel 1983, Microsoft ha successivamente adottato questo protocollo e ora offre il supporto SMB integrato in Windows. Il protocollo continua a evolversi, e l’ultima versione di SMB è la v.3.1.1.
A volte il termine CIFS viene confuso con SMB. CIFS è un dialetto SMP, cioè un’implementazione di SMB v1 da parte di Microsoft. Leggi questo confronto CIFS vs SMB per saperne di più.
Cos’è il protocollo NFS?
NFS (Network File System) è un protocollo di condivisione file per sistemi operativi basati su UNIX e Linux. Nonostante il nome, NFS non è un sistema di file. Il protocollo NFS è stato originariamente sviluppato da Sun Microsystems nel 1984.
- La versione 1 di NFS è stata utilizzata da Sun per scopi interni e non è mai stata rilasciata.
- NFS v2 forniva funzionalità di condivisione file di base.
- NFS v3 supporta la gestione delle dimensioni variabili e il miglioramento della segnalazione degli errori ma non è compatibile con i client NFS v2.
- NFS v4 è l’ultima versione di NFS sviluppata con l’Internet Engineering Task Force (IETF). Supporta l’accesso parallelo ai file, e la sicurezza è stata migliorata in questa versione. La compatibilità con le versioni precedenti NFS v2 e NFS v3 è presente. NFS v4 supporta l’autenticazione Kerberos.
NFS vs Samba – Differenze Chiave
Samba è un’implementazione software gratuita per installare un server SMB su Linux. Nota che Samba non include il client SMB. È necessario installare il pacchetto cifs-utils per ottenere un client SMB in Linux.
NFS, un protocollo di rete, non dovrebbe essere paragonato a un pacchetto software (Samba). Tuttavia, se stiamo parlando dell’implementazione di NFS per Windows, è necessario installare il server NFS e/o il ruolo client NFS (a seconda dei nostri compiti) in Windows per utilizzare NFS.
NFS vs SMB – Panoramica delle Caratteristiche
In questa sezione, confrontiamo le caratteristiche SMB e NFS in 7 categorie diverse.
1. Connessione di rete/porti utilizzati
- Sia i protocolli di condivisione SMB che NFS funzionano sul livello applicativo del modello OSI (livello 7) e utilizzano l’architettura client-server.
- SMB richiede di stabilire sessioni (non richiesto con NFS).
- SMB può anche utilizzare il livello di presentazione per la sua operazione (livello 6).
- Questi due protocolli sono ottimizzati per funzionare nella rete locale (LAN) piuttosto che su Internet. I protocolli di condivisione SMB e NFS non sono adatti per la traduzione degli indirizzi di rete e l’instradamento da utilizzare su Internet.
- NFS utilizza le porte 2049 (TCP e UDP) e la porta 111 (TCP e UDP). TCP 111 è utilizzato dal mapper di porta. TCP 1110 e UDP 1110 sono utilizzati per lo stato del cluster e del client. Il gestore di blocco NFS utilizza TCP 4045 e UDP 4045.
- SMB utilizza la porta TCP 445 senza il trasporto NetBIOS, utilizzando direttamente TCP/IP (così funziona SMB a partire da Windows 2000, inclusa l’ultima versione di SMB utilizzata al giorno d’oggi). SMB utilizza le porte TCP 139, UDP 137 e UDP 138 per funzionare sopra NetBIOS su TCP/IP. NetBIOS è un protocollo di livello di sessione (funziona al livello 5 del modello OSI) che veniva utilizzato per le implementazioni SMB più vecchie prima di Windows 2000.
2. Condivisione di stampanti
SMB supporta la condivisione di stampanti, che consente agli utenti remoti di utilizzare una stampante collegata a una macchina particolare per stampare file sulla rete. Il protocollo NFS non fornisce la funzionalità di condivisione delle stampanti: Linux dispone di altri meccanismi per la stampa di rete.
3. Autenticazione
A major difference between the NFS vs SMB protocols is how they authenticate.
- SMB utilizza il concetto di ACL (lista di controllo degli accessi) con utenti e gruppi. SMB fornisce accesso ai file condivisi per utenti e gruppi selezionati (autenticazione basata su utente). È possibile configurare le autorizzazioni in modo flessibile. Per configurare l’accesso per gli host consentiti, è possibile utilizzare il firewall.
- NFS tradizionalmente fornisce accesso agli indirizzi IP consentiti. NFS utilizza il sistema di autenticazione basato sull’host: è possibile abilitare gli indirizzi IP degli host che sono autorizzati ad accedere alla condivisione NFS. In questo caso, ogni utente della macchina consentita può accedere alla condivisione NFS.
Il possesso e le autorizzazioni in stile Linux sono una caratteristica del protocollo NFS. Linux opera con UID (identificatore utente) e GID (identificatore di gruppo), mentre Windows opera con SID (identificatore di sicurezza).
Il supporto di Kerberos in NFS v4 migliora il sistema di autenticazione (per migliorare la funzionalità di fornire accesso per utenti selezionati).
4. Accesso alle condivisioni di file
Le chiusure dei file sono obbligatorie per SMB e consigliate per NFS. I meccanismi di chiusura dei file sono utilizzati per garantire la coerenza dei file aperti da un utente. Con una chiusura, altri utenti non possono scrivere dati nei file aperti fino a quando non vengono chiusi.
È possibile accedere a una condivisione di file SMB utilizzando il percorso UNC
in Windows:
\\server\share\directory1\directory2
in Linux:
smb://server/share/directory1/directory2
È possibile accedere alle condivisioni NFS utilizzando il percorso Export File System (EFS) e questo formato:
server:/directory1/directory2
5. Supporto e integrazione nei sistemi operativi
Il protocollo NFS è ottimizzato per Linux. SMB è ottimizzato per Windows ed è un protocollo nativo di condivisione file in Windows con un’eccellente integrazione.
Tuttavia, entrambi i protocolli possono essere utilizzati su Windows e Linux. È necessario installare un client SMB (cifs-utils) o un server SMB (Samba) su Linux per utilizzare il protocollo SMB. È necessario installare un client e/o server NFS in Windows come componenti aggiuntivi (ruoli) per utilizzare la configurazione NFS di Windows.
NFS è sensibile alle maiuscole e minuscole durante l’accesso ai file, mentre SMB non lo è. Questo influisce su come si cercano i file e su come si inseriscono i nomi dei file.
Il protocollo NFS è uno standard aperto e può essere implementato da chiunque.
6. Sicurezza/crittografia
- Le comunicazioni NFS basate sul protocollo richiesta-risposta (RPC) sono rischiose senza un firewall. Quando NFS funziona utilizzando il protocollo sottostante UDP, che non è sicuro, il livello di sicurezza complessivo è ridotto. NFS supporta la crittografia utilizzando TLS (il protocollo Transport Layer Security basato su SSL).
- SMB supporta la crittografia end-to-end con standard crittografici AES-256 che è più forte della crittografia Kerberos per NFS. Mentre SMB 1 è considerato un protocollo vulnerabile, le ultime versioni SMB 3 sono sicure, rendendo il livello di sicurezza con SMB migliore che con NFS.
7. Prestazioni NFS vs SMB
NFS è la scelta migliore per trasferire file di piccole e medie dimensioni sulla rete (ad esempio, file di circa 1 MB e meno). Le prestazioni per entrambi i protocolli sono simili quando si trasferiscono file di grandi dimensioni (ad esempio, file da 500 MB).
NFS è più veloce di SMB quando si utilizza la crittografia. Le transazioni di lettura sono più veloci in SMB con un tasso di 4 MB. Carichi di traffico elevati possono rallentare la procedura di trasferimento dei dati. Possiamo notare che la larghezza di banda massima è stata aumentata con NFS v.4.2.
Confronto SMB vs NFS: Tabella di confronto
Possiamo riassumere le principali differenze nel nostro confronto NFS vs SMB nella tabella.
SMB | NFS | |
Ambiente | Utilizzato nativamente in Windows | Principalmente usato nei sistemi Linux |
Autenticazione | Conveniente autenticazione basata su utente | L’autenticazione basata sull’host è il metodo principale |
Porte utilizzate | TCP 445; TCP 139, UDP 137, 138 | TCP 2049, UDP 2049, TCP 111 e UDP 111; TCP 1110, UDP 1110, TCP 4045, UDP 4045. |
Encryption e sicurezza | Sì – Kerberos, AES-256 | Sì – Kerberos e TLS |
Ambiente cross-platform | Supportato | Supportato |
Blocco file | Obbligatorio | Consultivo |
Condivisione stampanti | Sì | No |
Accesso alle risorse | \\server\directory1\directory2 | server:/directory1/directory2 |
Conclusione
La scelta tra NFS e SMB come protocollo di condivisione file dipende principalmente dal sistema operativo utilizzato principalmente sui computer in rete e da altri fattori. Entrambi i protocolli sono affidabili e possono essere utilizzati su diversi sistemi operativi e dispositivi NAS. Qualunque cosa tu scelga, è importante eseguire il backup dei tuoi dati quando si utilizzano condivisioni file in rete. NAKIVO Backup & Replication è una soluzione di protezione dati all-in-one che può essere utilizzata per proteggere i dati delle condivisioni SMB e NFS così come i dati delle macchine virtuali, dei server fisici e di Microsoft 365.