Samba e seu processo de resolução de nomes

srf

Neste artigo descobriremos como o Samba resolve os nomes das máquinas na rede e aprenderemos a configurar suas prioridade de modo a tornar o serviço o mais rápido e seguro possível.

[ Hits: 30.377 ]

Por: Sandro Roberto Ferrari em 18/08/2007


Resolvendo nomes de máquinas



O princípio de resolução de nomes existe certamente porque é difícil relembrar números IP quando trabalhamos com diversas máquinas em uma rede. De qualquer forma, máquinas podem ser conhecidas por um nome em especial, como Gerente1 ou Gerente2. Desta forma é transferida para a aplicação a tarefa de encontrar o endereço IP correspondente ao nome informado. Este processo é chamado de resolução de nomes de máquinas. Uma aplicação que deseja encontrar um endereço IP de uma determinada máquina não necessita ter as suas próprias rotinas de pesquisa de máquinas e endereços IP.

O Samba utiliza os seguintes métodos para resolução de nomes de máquinas na rede. Eles estão listados em ordem de prioridade do mais para o menos recomendável:
  • lmhosts: Pesquisa primeiro o arquivo /etc/samba/lmhosts.
  • host: Faz a pesquisa no arquivo /etc/hosts e no DNS em busca do nome da máquina.
  • wins: Pesquisa no servidor WINS especificado pelo parâmetro wins server do smb.conf.
  • bcast: Envia um pacote para o endereço de broadcast de sua configuração de rede. Este geralmente deve ser o último método por gerar tráfego excessivo em uma rede com um considerável número de computadores.

A ordem que a resolução de nomes é feita pelo Samba pode ser modificada usando o parâmetro "name resolve order = [ordem]" no arquivo de configuração do Samba (smb.conf). Ex.:

name resolve order = lmhosts host wins bcast.

Arquivo /etc/samba/lmhosts

Este arquivo é um banco de dados que mapeia o endereço IP com o nome NetBIOS de uma máquina, semelhante ao formato do /etc/hosts. Este arquivo é útil quando temos servidores que são acessados com freqüência, quando servidores de rede estão em segmentos separados e não temos um servidor WINS entre os dois pontos para resolução de nomes para definir máquinas WINS que serão acessados pela internet, etc. Para ter certeza da localização do arquivo lmhosts em sua máquina, digite o comando:

$ smbclient -d 3 -L localhost

e veja o diretório de pesquisa deste arquivo.

A utilização do arquivo lmhosts evita o excesso de broadcasting na rede, pois a ordem padrão usada para a resolução de nomes do Samba, procura primeiro resolver o nome procurando em arquivos lmhosts, depois usando dns, wins e broadcast. Dependendo do projeto de sua rede e como as máquinas resolvem os nomes, ele pode ser uma camada a mais de segurança contra um simples hijacking de servidor através de NetBEUI ou WINS, isso é evitado com o uso de domínios.

Obs.: Note que para os clientes Windows que estão em outra subrede é necessário o arquivo \windows\lmhosts apontando para um servidor PDC mesmo que ele esteja apontando para o servidor WINS, caso contrário a máquina não efetuará o logon.

O formato do arquivo lmhosts do Windows é mais complexo do que o do Linux, pois o sistema precisa de mais detalhes para resolver os nomes e tipos de máquinas no domínio. É importante ver o modelo lmhosts.sam em seu sistema Windows para compreender seu funcionamento.

O do arquivo lmhosts no Linux

O exemplo abaixo mapeia o endereço IP das máquinas (primeira coluna) com o respectivo nome de máquina (segunda coluna):

172.16.0.34 servarq
172.16.0.30 serverdom
192.168.5.2 servwins
172.16.0.3 servpdc
172.16.0.1 gateway

O arquivo lmhosts no Windows

Este arquivo contém os mapeamentos de endereços IP para os nomes NetBIOS dos computadores. Cada entrada deve estar em uma linha separada. O endereço IP deve ser colocado na primeira coluna seguido pelo nome do computador correspondente. O endereço IP e o nome do computador devem estar separados por pelo menos um espaço ou caractere de tabulação. O caracter "#" é usado geralmente para indicar o início de um comentário. Seguem as exceções:

192.168.8.1 servarq
192.168.8.2 serverpdc #PRE #DOM:dominio
192.168.8.3 "serverwins \0x1e" #PRE
#INCLUDE \\serverpdc\lmhosts

A primeira entrada do arquivo é a tradicional, onde o nome da máquina NetBIOS é associada ao IP. A segunda utiliza dois parâmetros adicionais:
  • #PRE

    Faz a entrada ser carregada logo na inicialização e se tornando uma entrada permanente no cache NetBIOS.

  • #DOM

    Especifica que a máquina é um controlador de domínio. A máquina deverá ter sido configurada para a função de domínio, pois caso contrário isso simplesmente não funcionará.

Note que ambos #PRE e #DOM devem ser especificados em maiúsculas.

O terceiro exemplo faz uma referência permanente (#PRE) à máquina servidora WINS serverwins. Neste exemplo é usada uma característica especial para especificar a ID hexadecimal (\0x1e) da máquina na rede 1e.

O quarto utiliza um include para associar outro arquivo ao atual, útil quando temos um compartilhamento que distribui um arquivo lmhosts para diversas máquinas na rede. De preferência, é importante utilizar sempre uma diretiva #PRE para todas as máquinas especificadas na diretiva #INCLUDE em seu arquivo de configuração.

Para a especificação de ID de serviço manual é necessário manter os 15 caracteres no nome da máquina (preenchendo os restantes com espaços, caso seja preciso). O último caracter é o código hexadecimal que identifica o serviço de rede.

   

Páginas do artigo
   1. Resolvendo nomes de máquinas
Outros artigos deste autor

Wireshark - Artigo

IPTABLES - Conceitos e aplicação

Sobre WINS (Windows Internet Name Service)

NTop - Configurações gerais

Linux para sua empresa

Leitura recomendada

Samba 4 - Compartilhamento de Arquivos

Administrando seu servidor Samba com o User Manager

Tutorial completo de implementação de LDAP + Samba + Squid

Inserindo o recurso de LIXEIRA nos compartilhamentos Samba

Slackware como controlador de domínio

  
Comentários
[1] Comentário enviado por juninho (RH.com) em 18/08/2007 - 11:38h

?comentario=Muito Bom seu artigo, inclusive bateu em uma dúvida minha.

Tenho um servidor Samba ( Debian )e máquinas XP clientes, mas sem PDC, é ncessário um servidor WINS ( ou outro ) para funcionar melhor.

Se sim, seria possível me dar alguma dica de como faze-lo?

No mais, tenho acompanhado o VOL, e você está sempre presente, ajudando, escrevendo e respondendo ao amigos.

Parabéns!!!!

[2] Comentário enviado por srf em 19/08/2007 - 09:44h

Veja sem você definir que é seu Servidor Wins, nas máquinas Windows faz uma eleição para fazê-lo... Tem um outro artigo que esta na fila de espera que mostra como criar um servidor Wins no linux.

[3] Comentário enviado por exercitobr em 20/08/2007 - 18:01h

Ótimo, parabéns! Aguardarei seu próximo artigo.

[4] Comentário enviado por gerusso em 21/08/2007 - 08:26h

Alguem ai sabe qual o serviço que posso para para que as estacoes win200 XP parem de ficar fazendo eleicao para determinar o PDC da REDE. Pois de tempos em tempos o Samba tem que ficar forcando a eleicao na rede para se afirmar o PDC sempre ganha e claro de acordo com a onf mas sera que tem como evitar isso a todo momento.....

[5] Comentário enviado por srf em 21/08/2007 - 16:07h

Primeiro tens que informar as estações que elas devem fazer pesquisa em um Servidor Wins... podes configurar o IP do teu servidor Samba nas máquinas Windows como Servidor Wins ou configurar o DHCP para fazer isso para você...

[6] Comentário enviado por adrianoturbo em 22/08/2007 - 11:13h

Show de bola seu artigo brother .


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts