Protocolli SMB e NFS: un confronto approfondito
La condivisione di file tra computer e utenti aiuta a comunicare e scambiare dati in modo più efficiente e comodo. È possibile condividere file sulla rete in diversi modi, ad esempio utilizzando il protocollo SMB o NFS su server e computer. Anche i dispositivi NAS (network-attached storage) vengono utilizzati per condividere file tramite SMB e NFS.
Leggi il confronto tra NFS e SMB per capire quale utilizzare nel tuo caso d’uso e quale protocollo scegliere.
Che cos’è il protocollo SMB?
SMB (Server Message Block) è un protocollo di condivisione file che fornisce l’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 ad evolversi e l’ultima versione SMB è la v.3.1.1.
A volte il termine CIFS viene confuso con SMB. CIFS è un dialetto SMP, ovvero un’implementazione di SMB v1 da parte di Microsoft. Leggi questo CIFS vs SMB Confronto per scoprire di più.
Che 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 file system. 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 base per la condivisione di file.
- NFS v3 supporta la gestione di dimensioni variabili e una segnalazione degli errori migliorata, ma non è compatibile con i client NFS v2.
- NFS v4 è l’ultima versione di NFS sviluppata con Internet Engineering Task Force (IETF). Supporta l’accesso parallelo ai file e in questa versione è stata migliorata la sicurezza. È presente la retrocompatibilità con NFS v2 e NFS v3. NFS v4 supporta l’autenticazione Kerberos.
NFS vs Samba – Differenze principali
Samba è un’implementazione software gratuita per installare un server SMB su Linux. Si noti 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 deve essere confrontato con un pacchetto software (Samba). Tuttavia, se parliamo dell’implementazione NFS per Windows, per utilizzare NFS è necessario installare in Windows il ruolo del server NFS e/o del client NFS appropriato (a seconda delle nostre attività).
NFS vs SMB – Panoramica delle funzioni
In questa sezione, confrontiamo le funzioni di SMB e NFS in 7 diverse categorie.
1. Connessione di rete/porte utilizzate
- Entrambi i protocolli di condivisione SMB e NFS funzionano sul livello applicativo del modello OSI (livello 7) e utilizzano l’architettura client-server.
- SMB richiede la creazione di sessioni (non obbligatoria con NFS).
- SMB può anche utilizzare il livello di presentazione per il suo funzionamento (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 alla traduzione degli indirizzi di rete e al routing da utilizzare su Internet.
- NFS utilizza le porte 2049 (TCP e UDP) e la porta 111 (TCP e UDP). TCP 111 è utilizzato dal port mapper. TCP 1110 e UDP 1110 sono utilizzati per lo stato del cluster e del client. Il gestore di blocchi NFS utilizza TCP 4045 e UDP 4045.
- SMB utilizza la porta TCP 445 senza il trasporto NetBIOS, utilizzando direttamente TCP/IP (è così che funziona SMB a partire da Windows 2000, comprese le ultime versioni SMB utilizzate oggi). SMB utilizza le porte TCP 139, UDP 137 e UDP 138 per funzionare su NetBIOS su TCP/IP. NetBIOS è un protocollo a livello di sessione (funziona sul livello 5 del modello OSI) che veniva utilizzato per le implementazioni SMB precedenti a Windows 2000.
2. Condivisione delle stampanti
SMB supporta la condivisione delle stampanti, che consente agli utenti remoti di utilizzare una stampante collegata a un determinato computer per stampare file in rete. Il protocollo NFS non fornisce la funzione di condivisione delle stampanti: Linux dispone di altri meccanismi per la stampa in rete.
3. Autenticazione
Una differenza fondamentale tra i protocolli NFS e SMB è il modo in cui effettuano l’autenticazione.
- SMB utilizza il concetto di ACL (access control list) con utenti e gruppi. SMB fornisce l’accesso ai file condivisi per utenti e gruppi selezionati (autenticazione basata sull’utente). È possibile configurare le autorizzazioni in modo flessibile. Per configurare l’accesso per gli host consentiti, è possibile utilizzare il firewall.
- NFS fornisce tradizionalmente l’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 autorizzata può accedere alla condivisione NFS.
La proprietà e le autorizzazioni in stile Linux sono una funzione del protocollo NFS. Linux funziona con UID (user id) e GID (group id), mentre Windows funziona con SID (security identifier).
Il supporto Kerberos in NFS v4 migliora il sistema di autenticazione (per migliorare la funzionalità di fornitura dell’accesso a utenti selezionati).
4. Accesso alle condivisioni file
I blocchi dei file sono obbligatori per SMB e consigliati per NFS. I meccanismi di blocco dei file vengono utilizzati per garantire la coerenza dei file aperti da un utente. Con un blocco, gli altri utenti non possono scrivere dati nei file aperti finché questi non vengono chiusi.
È possibile accedere a una condivisione file SMB utilizzando il percorso UNC
in Windows:
serversharedirectory1directory2
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 di condivisione file nativo in Windows con un’integrazione eccellente.
Tuttavia, entrambi i protocolli possono essere utilizzati su Windows e Linux. Per utilizzare il protocollo SMB è necessario installare un client SMB (cifs-utils) o un server SMB (Samba) su Linux. Per utilizzare la configurazione NFS di Windows è necessario installare un client e/o un server NFS in Windows come componenti aggiuntivi (ruoli).
NFS distingue tra maiuscole e minuscole durante l’accesso ai file, mentre SMB non fa distinzione tra maiuscole e minuscole. Ciò influisce sul modo in cui si cercano i file e si immettono 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 è attivo utilizzando il protocollo UDP sottostante, che non è sicuro, il livello di sicurezza complessivo si riduce. 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, 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 rispetto a NFS.
7. Prestazioni NFS vs SMB
NFS è la scelta migliore per il trasferimento di file di piccole e medie dimensioni sulla rete (ad esempio, file di circa 1 MB e meno). Le prestazioni di 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 una velocità di 4 MB. Carichi di traffico elevati possono rallentare la procedura di trasferimento dei dati. Si può notare che la larghezza di banda massima è stata aumentata con NFS v.4.2.
SMB vs NFS: Tabella comparativa
Possiamo riassumere le principali differenze nel nostro confronto tra NFS e SMB nella tabella.
| SMB | NFS | |
| Ambiente | Utilizzato in modo nativo in Windows | Utilizzato principalmente nei sistemi Linux |
| Autenticazione | Comoda autenticazione basata sull’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. |
| Crittografia e sicurezza | Sì – Kerberos, AES-256 | Sì – Kerberos e TLS |
| Ambiente multipiattaforma | Supportato | Supportato |
| Blocco file | Obbligatorio | Consigliato |
| Condivisione stampante | Sì | No |
| Accesso alle risorse | serverdirectory1directory2 | server:/directory1/directory2 |
Conclusione
La scelta tra NFS e SMB come protocollo di condivisione file dipende principalmente dal sistema operativo utilizzato sui computer della rete e da altri fattori. Entrambi i protocolli sono affidabili e possono essere utilizzati in diversi sistemi operativi e dispositivi NAS. Qualunque sia la vostra scelta, è importante eseguire il backup dei dati quando si utilizzano condivisioni file nella rete. NAKIVO Backup & Replication è una soluzione di protezione dei dati all-in-one che può essere utilizzata per proteggere i dati condivisi SMB e di condivisione NFS, nonché i dati su VM, server fisici e in Microsoft 365.