O que o Samba faz?
O Samba possui quatro funções, especificadas abaixo:
- Serviços de Compartilhamento de Arquivos e Impressoras;
- Autenticação e Autorização;
- Resolução de Nomes;
- Anúncio de Listas (Browsing).
Estas funções são executadas por dois programas:
smbd e
nmbd. O primeiro é responsável pela autenticação/autorização e o carro-chefe do Samba - compartilhamento de arquivos/impressoras. O nmbd cuida da resolução de nomes e anúncio de listas.
O compartilhamento dispensa comentários. Já autenticação/autorização possui dois modos: O seguro e confiável "
user mode", em que são dados um nome de usuário e uma senha a cada utilizador para ter acesso aos compartilhamentos; e o menos seguro e não muito confiável "
share mode", onde só existe uma senha, distribuída a todos os usuários do serviço de compartilhamento. Não precisamos ir tão longe para crermos que a primeira opção é a melhor e amplamente utilizada em relação a segunda.
Ainda quanto a autenticação, o Samba implementa, a partir da versão Samba-2.0, o Windows NT Domain System, um sistema de autenticação mais refinado para o CIFS que consiste em um único evento de login para acesso a todos os serviços autorizados. O responsável por tal autenticação é chamado Domain Controller. Um NT Domain é basicamente um grupo de computadores que compartilham o mesmo Domain Controller.
A resolução de nomes pode ser feita por broadcast ou por peer-to-peer. A resolução por broadcast é feita da seguinte forma: um cliente que procura por um serviço "Linux" irá enviar o requisito via broadcast ("Linux, onde está você?") e esperar a resposta de
Linux, que responderá com seu endereço IP ("Sou Linux e meu IP é 192.168.0.1").
Já a resolução por peer-to-peer utiliza o servidor NBNS (NetBIOS Name Service), comumente conhecido por WINS (Windows Internet Name Service), já que a Microsoft preferiu chamar sua implementação do NBNS desta forma. A transação ocorre da seguinte forma: O servidor NBNS cataloga os computadores que querem participar do compartilhamento. Tais computadores se comunicam com o NBNS por mensagens do tipo "Olá! Sou Linux. Se quiser, estou disponível para compartilhamento em 192.168.0.1".
Desta forma, o computador Linux agora está disponível para compartilhamento. O NBNS faz tal catalogação por um banco de dados com Nome e IP dos compartilhamentos que entraram em contato com o mesmo. Para o acesso, o cliente faz a requisição ao NBNS como "Quero falar com Linux, posso?", e o NBNS responde "Sim! O IP é 192.168.0.1".
Devemos levar em conta que, numa resolução P2P (peer-to-peer) existe a possibilidade de compartilhamento entre subnets, visto que várias subnets podem compartilhar o mesmo NBNS.
Anúncio de Listas, ou browsing é uma lista, com serviços oferecidos pelos respectivos computadores da rede. Aqui entram as definições de
LMB (Local Master Browser) e
DMB (Domain Master Browser). O LMB é um computador que guarda a lista de serviços, e é tal lista que aparece no Ambiente de Rede do Windows. O LMB é eleito pelos computadores da LAN. Já o DMB é um computador que combina listas de LMBs para fornecer o serviço através de LANs distintas (subnets), com um porém: A combinação das listas ocorre demasiadamente lenta, e pode levar horas para que uma subnet apareça na lista de subnets no Ambiente de Rede do Windows.
Obs.: Ao dar o primeiro clique no Ambiente de Rede, temos uma lista com todas as subnets existentes, ou seja, para cada subnet existe um LMB. O DMB é então responsável por nos fornecer esta primeira lista. Ao escolher uma subnet para navegar (clicando em qualquer um dos ícones de subnets), todos os computadores e compartilhamentos existentes naquela subnet são gerenciados pelo LMB.