Protocolos SMB vs NFS: Uma Comparação Detalhada

Compartilhar arquivos entre computadores e usuários ajuda a comunicar e trocar dados de forma mais eficiente e conveniente. Você pode compartilhar arquivos pela rede de diferentes maneiras, por exemplo, usando o protocolo SMB ou NFS em servidores e computadores. Dispositivos NAS (armazenamento conectado à rede) também são usados para compartilhar arquivos via SMB e NFS.

Leia a comparação NFS vs SMB para entender o que usar no seu caso e qual protocolo escolher.

O que é o protocolo SMB?

O SMB (Server Message Block) é um protocolo de compartilhamento de arquivos que fornece acesso a dados compartilhados pela rede. É amplamente utilizado em ambientes Windows para acessar arquivos pela rede local (LAN). Desenvolvido pela IBM em 1983, a Microsoft adotou esse protocolo posteriormente e agora oferece suporte SMB integrado no Windows. O protocolo continua a evoluir, e a versão mais recente do SMB é a v.3.1.1.

Às vezes, o termo CIFS é confundido com SMB. CIFS é um dialeto do SMP, ou seja, uma implementação do SMB v1 pela Microsoft. Leia esta comparação CIFS vs SMB para saber mais.

O que é o protocolo NFS?

O NFS (Network File System) é um protocolo de compartilhamento de arquivos para sistemas operacionais baseados em UNIX e Linux. Apesar do nome, NFS não é um sistema de arquivos. O protocolo NFS foi originalmente desenvolvido pela Sun Microsystems em 1984.

  • A versão 1 do NFS foi usada pela Sun para fins internos e nunca foi lançada.
  • O NFS v2 forneceu funcionalidade básica de compartilhamento de arquivos.
  • O NFS v3 suporta manipulação de tamanho variável e relatórios de erros aprimorados, mas não é compatível com clientes NFS v2.
  • NFS v4 é a última versão do NFS que foi desenvolvida com o Internet Engineering Task Force (IETF). Ele suporta acesso de arquivo paralelo, e a segurança foi melhorada nesta versão. A compatibilidade com versões anteriores do NFS v2 e NFS v3 está presente. NFS v4 suporta autenticação Kerberos.

NFS vs Samba – Principais Diferenças

O Samba é uma implementação de software livre para instalar um servidor SMB no Linux. Note que o Samba não inclui o cliente SMB. Você deve instalar o pacote cifs-utils para obter um cliente SMB no Linux.

O NFS, um protocolo de rede, não deve ser comparado com um pacote de software (Samba). No entanto, se estamos falando sobre a implementação do NFS para o Windows, o servidor NFS apropriado e/ou o papel do cliente NFS (dependendo de nossas tarefas) precisam ser instalados no Windows para usar o NFS.

NFS vs SMB – Visão Geral de Recursos

Nesta seção, comparamos os recursos do SMB e do NFS em 7 categorias diferentes.

1. Conexão de rede/portas utilizadas

  • Ambos os protocolos de compartilhamento SMB e NFS funcionam na camada de aplicação do modelo OSI (camada 7) e usam a arquitetura cliente-servidor.
  • O SMB requer o estabelecimento de sessões (não necessário com o NFS).
  • O SMB também pode usar a camada de apresentação para sua operação (camada 6).
  • Esses dois protocolos são otimizados para funcionar na rede local (LAN) em vez de na internet. Os protocolos de compartilhamento SMB e NFS não são adequados para tradução de endereços de rede e roteamento para serem usados na internet.
  • NFS usa as portas 2049 (TCP e UDP) e a porta 111 (TCP e UDP). O TCP 111 é usado pelo mapeador de portas. O TCP 1110 e o UDP 1110 são usados para status de cluster e cliente. O gerenciador de bloqueio do NFS usa TCP 4045 e UDP 4045.
  • O SMB usa a porta TCP 445 sem o transporte NetBIOS, usando TCP/IP diretamente (é assim que o SMB funciona a partir do Windows 2000, incluindo as últimas versões do SMB usadas hoje em dia). O SMB usa as portas TCP 139, UDP 137 e UDP 138 para funcionar em cima do NetBIOS sobre TCP/IP. O NetBIOS é um protocolo da camada de sessão (funciona na camada 5 do modelo OSI) que era usado para implementações SMB mais antigas antes do Windows 2000.

2. Compartilhamento de impressoras

O SMB suporta o compartilhamento de impressoras, o que permite que usuários remotos usem uma impressora conectada a uma máquina específica para imprimir arquivos pela rede. O protocolo NFS não oferece o recurso de compartilhamento de impressoras – o Linux tem outros mecanismos para impressão em rede.

3. Autenticação

A major difference between the NFS vs SMB protocols is how they authenticate.

  • O SMB usa o conceito de ACL (lista de controle de acesso) com usuários e grupos. O SMB fornece acesso aos arquivos compartilhados para usuários e grupos selecionados (autenticação baseada em usuário). Você pode configurar permissões de forma flexível. Para configurar o acesso para os hosts permitidos, você pode usar o firewall.
  • O NFS tradicionalmente fornece acesso a endereços IP permitidos. O NFS usa o sistema de autenticação baseado em host – você pode habilitar os endereços IP dos hosts que estão autorizados a acessar o compartilhamento NFS. Nesse caso, todo usuário da máquina autorizada pode acessar o compartilhamento NFS.

A propriedade e as permissões no estilo Linux são um recurso do protocolo NFS. O Linux opera com UID (identificador de usuário) e GID (identificador de grupo), enquanto o Windows opera com SID (identificador de segurança).

O suporte Kerberos no NFS v4 melhora o sistema de autenticação (para aprimorar a funcionalidade de fornecer acesso para usuários selecionados).

4. Acessando compartilhamentos de arquivos

As travas de arquivos são obrigatórias para SMB e consultivas para NFS. Os mecanismos de travamento de arquivos são usados para garantir a consistência de arquivos abertos por um usuário. Com uma trava, outros usuários não podem gravar dados em arquivos abertos até que sejam fechados.

Você pode acessar um compartilhamento de arquivos SMB usando o caminho UNC

no Windows:

\\servidor\compartilhamento\diretório1\diretório2

no Linux:

smb://servidor/compartilhamento/diretório1/diretório2

Você pode acessar compartilhamentos NFS usando o caminho Export File System (EFS) e este formato:

servidor:/diretório1/diretório2

5. Suporte e integração em sistemas operacionais

O protocolo NFS é otimizado para o Linux. O SMB é otimizado para o Windows e é um protocolo nativo de compartilhamento de arquivos no Windows com excelente integração.

No entanto, ambos os protocolos podem ser usados no Windows e no Linux. Você precisa instalar um cliente SMB (cifs-utils) ou um servidor SMB (Samba) no Linux para usar o protocolo SMB. Você precisa instalar um cliente e/ou servidor NFS no Windows como componentes adicionais (funções) para usar a configuração NFS do Windows.

O NFS diferencia maiúsculas de minúsculas ao acessar arquivos, enquanto o SMB não diferencia maiúsculas de minúsculas. Isso afeta como você pesquisa arquivos e como insere nomes de arquivos.

O protocolo NFS é um padrão aberto e pode ser implementado por qualquer pessoa.

6. Segurança/criptografia

  • Comunicações NFS baseadas no protocolo de solicitação-resposta (RPC) são arriscadas sem um firewall. Quando o NFS trabalha usando o protocolo UDP subjacente, que não é seguro, o nível de segurança geral é reduzido. O NFS suporta criptografia usando TLS (o protocolo de Segurança da Camada de Transporte baseado em SSL).
  • O SMB suporta criptografia de ponta a ponta com padrões criptográficos AES-256 que são mais fortes do que a criptografia Kerberos para NFS. Enquanto o SMB 1 é considerado um protocolo vulnerável, as últimas versões do SMB 3 são seguras, tornando o nível de segurança com o SMB melhor do que com o NFS.

7. Desempenho do NFS vs. SMB

O NFS é a melhor escolha para transferência de arquivos pequenos e médios pela rede (por exemplo, arquivos de cerca de 1 MB e menos em tamanho). O desempenho de ambos os protocolos é semelhante ao transferir arquivos grandes (por exemplo, arquivos de 500 MB).

O NFS é mais rápido que o SMB ao usar criptografia. As transações de leitura são mais rápidas no SMB com a taxa de 4 MB. Cargas de tráfego elevadas podem retardar o procedimento de transferência de dados. Podemos observar que a largura de banda máxima foi aumentada com o NFS v.4.2.

SMB vs NFS: Tabela de Comparação

Podemos resumir as principais diferenças em nossa comparação NFS vs SMB na tabela.

SMB NFS
Ambiente Usado nativamente no Windows Mais utilizado em sistemas Linux
Autenticação Autenticação conveniente baseada em usuário A autenticação baseada em host é o método principal
Portas utilizadas TCP 445; TCP 139, UDP 137, 138 TCP 2049, UDP 2049, TCP 111 e UDP 111; TCP 1110, UDP 1110, TCP 4045, UDP 4045.
Encriptação e segurança Sim – Kerberos, AES-256 Sim – Kerberos e TLS
Ambiente multiplataforma Suportado Suportado
Bloqueio de arquivos Obrigatório Consultivo
Compartilhamento de impressoras Sim Não
Acessando recursos \\servidor\diretório1\diretório2 servidor:/diretório1/diretório2

Conclusão

A escolha entre NFS e SMB como protocolo de compartilhamento de arquivos depende principalmente do sistema operacional usado nos computadores da rede e de outros fatores. Ambos os protocolos são confiáveis e podem ser usados em diferentes sistemas operacionais e dispositivos NAS. Independentemente do que você escolher, é importante fazer backup dos seus dados ao usar compartilhamento de arquivos na rede. O NAKIVO Backup & Replication é uma solução de proteção de dados completa que pode ser usada para proteger dados de compartilhamento SMB e NFS, bem como dados em máquinas virtuais, servidores físicos e no Microsoft 365.

Source:
https://www.nakivo.com/blog/nfs-vs-smb/