<sect id="s-samba-s-nameresolv">Resolução de nomes de máquinas no samba
 <p>
O Samba pode utiliza os seguintes métodos para resolução de nomes de 
máquinas na rede (<ref id="s-samba-nome">). Eles estão listados em 
ordem de prioridade do mais para o menos recomendável:
<list compact> 
 <item>
<tt>lmhosts</tt> - Pesquisa primeiro o arquivo <file>/etc/samba/lmhosts</file> 
(veja <ref id="s-samba-s-nameresolv-lmhosts"> para detalhes sobre este arquivo). 

 <item>
<tt>host</tt> - Faz a pesquisa no arquivo <file>/etc/hosts</file> e no DNS em 
busca do nome da máquina.

 <item>
<tt>wins</tt> - Pesquisa no servidor WINS especificado pelo parâmetro <em>
wins server</em> do <file>smb.conf</file> (veja <ref id="s-samba-s-nameresolv-wins">).

 <item>
<tt>bcast</tt> - 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.
</list>
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 (ex. <tt>name resolve order = lmhosts host wins bcast</tt>).


<sect1 id="s-samba-s-nameresolv-lmhosts">Arquivo <file>/etc/samba/lmhosts</file>
 <p>
Este arquivo é um banco de dados que mapeia o endereço IP com o nome NetBIOS 
de uma máquina, semelhante ao formato do <file>/etc/hosts</file>. 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 
<file>lmhosts</file> em sua máquina, digite <tt>smbclient -d 3 -L localhost</tt> 
e veja o diretório de pesquisa deste arquivo. Veja um exemplo de arquivo 
<file>lmhosts</file> em <ref id="s-samba-s-nameresolv-lmhosts-unix-ex">.
 <p>
O uso do arquivo <file>lmhosts</file> evita o excesso de broadcasting na 
rede, pois a ordem padrão usada para a resolução de nomes do <prgn>samba</prgn>, 
procura primeiro resolver o nome procurando em arquivos lmhosts, depois 
usando <em>dns</em>, <em>wins</em> e <em>broadcast</em>. 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, veja 
<ref id="s-samba-dom-config">).
<![ %OBS [
 <p>
<strong>OBS:</strong> Note que em clientes <prgn>Windows</prgn> que 
estejam em outra subrede, é necessário o arquivo <file>\windows\lmhosts</file> 
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.
 <p>
O formato do arquivo <file>lmhosts</file> do <prgn>Windows</prgn> é mais 
complexo do que o do <prgn>Linux</prgn> pois o sistema precisa de mais 
detalhes para resolver os nomes e tipos de máquinas no domínio. Veja o 
modelo <file>lmhosts.sam</file> em seu sistema <prgn>Windows</prgn> para
compreender seu funcionamento.
]]>

<sect2 id="s-samba-s-nameresolv-lmhosts-unix-ex">Exemplo de <file>lmhosts</file> do UNIX
 <p>
O exemplo abaixo mapeia o endereço IP das máquinas (primeira coluna) com o 
respectivo nome de máquina (segunda coluna):
<example>
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

</example>

<sect2 id="s-samba-s-nameresolve-lmhosts-windows-ex">Exemplo de <file>lmhosts</file> do Windows
 <p>
O arquivo possui uma sintaxe idêntica a do <file>lmhosts</file> do UNIX, mas 
alguns parâmetros especiais são especificados para ajudar o <prgn>Windows</prgn>
resolver algumas coisas que não consegue fazer sozinho (principalmente com relação
a identificação de função de máquinas em redes segmentadas):
<example>
192.168.0.5 servarq
192.168.0.1 serverpdc #PRE #DOM:dominio
192.168.0.2 "serverwins    \0x1e" #PRE
#INCLUDE \\serverpdc\lmhosts
</example>
A primeira entrada do arquivo é a tradicional, onde o nome da máquina 
NetBIOS é associada ao IP. A segunda utiliza dois parâmetros adicionais:
<list compact>
 <item><tt>#PRE</tt> - Faz a entrada ser carregada logo na inicialização e 
 se tornando uma entrada permanente no cache NetBIOS.
 <item><tt>#DOM</tt> - 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á.
</list>
Note que ambos <tt>#PRE</tt> e <tt>#DOM</tt> devem ser especificados em 
maiúsculas. O terceiro exemplo faz uma referência permanente (#PRE) a 
máquina servidora WINS <em>serverwins</em>. Neste exemplo é usada uma 
característica especial para especificar a ID hexadecimal da máquina 
na rede <em>1e</em>. O quarto utiliza um include para associar outro 
arquivo ao atual, útil quando temos um compartilhamento que 
distribui um arquivo <file>lmhosts</file> para diversas máquinas na 
rede. De preferência, utilize sempre uma diretiva <em>#PRE</em> para todas 
as máquinas especificadas na diretiva <em>#INCLUDE</em> em seu 
arquivo de configuração.
 <p>
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 (veja <ref id="s-samba-c-workgroup-linux-nmblookup"> 
para ver a lista de serviços e sua respectiva função).
<![ %OBS [
 <p>
<strong>OBS:</strong> Caso crie este arquivo em um editor de textos do 
<prgn>Linux</prgn>, não se esqueça de converter o arquivo para que contenha
o CR+LF no final das linhas.
]]>

<sect1 id="s-samba-s-nameresolv-wins">WINS
 <p>
Este é um serviço de resolução de nomes que funciona de forma semelhante ao
DNS, só que voltado para o NetBIOS. Quando uma máquina cliente NetBIOS entra 
na rede, o servidor WINS pega seu nome e IP e inclui em uma tabela para futura 
consulta pelos clientes da rede.
 <p>
Esta tabela consultada toda vez que um cliente NetBIOS solicita um nome de 
máquina, componentes do grupo de trabalho ou domínio na rede. Uma outra 
aplicação importante de um servidor WINS é permitir a resolução de nomes em pontos 
de redes que requerem roteamento, a simplicidade de um protocolo não roteável 
como o NetBIOS fica limitada a simplicidade das instalações de rede. Um servidor 
WINS pode ser instalado em cada ponta da rede e eles trocarem dados entre si e 
atualizar suas tabelas de nomes/grupos de trabalhos/IPs. 
 <p>
A resolução de nomes de máquinas será feita consultando diretamente a máquina 
WINS ao invés de broadcasting (que geram um tráfego alto na rede).


<sect2 id="s-samba-s-nameresolv-wins-s">Configurando o servidor WINS
 <p>
Para ativar o servidor WINS no <prgn>samba</prgn>, inclua as seguinte linha
na seção <tt>[global]</tt> do seu arquivo <file>/etc/samba/smb.conf</file>:
<example>
[global]
wins support = yes
wins proxy = no
dns proxy = no
max wins ttl = 518400

</example>
O parâmetro <tt>wins proxy</tt> pode ser necessário para alguns clientes antigos que 
tenham problemas no envio de suas requisições WINS. O <tt>dns proxy</tt> permite 
que o servidor WINS faça a pesquisa no DNS para localização de nomes de máquinas
caso não exista no cache. Ambas as opções <tt>wins support</tt>, <tt>wins proxy</tt> 
e <tt>dns proxy</tt> tem como valor padrão <tt>não</tt>.

Pronto, seu servidor samba agora suporta WINS. Fácil, prático e rápido :-)
 <p>
Se estiver configurando uma subrede com masquerade para acesso a um PDC ou
um servidor WINS, você terá que mexer no gateway central para apontar uma 
rota para o gateway masquerade. O motivo disto é porque o masquerade do 
<prgn>Linux</prgn> atua somente nos cabeçalhos, mas o IP da estação é 
enviada e processada pelo PDC para retornar uma resposta. 
Da mesma forma, este IP é registrado no servidor WINS para uso das estações 
de trabalho. Isto só vai ser resolvido quando for escrito um módulo de 
conntrack para conexões SAMBA (até o lançamento do kernel <tt>2.4.22</tt>,
isso ainda não ocorreu).
<![ %OBS [
 <p>
<strong>OBS1: </strong> NUNCA configure mais de um servidor WINS em uma mesma 
rede.
 <p>
<strong>OBS2: </strong> NÃO especifique o parâmetro <tt>wins server</tt> caso
esteja usando o suporte a WINS.

]]>

<sect2 id="s-samba-s-nameresolv-wins-c">Configurando o Cliente WINS
 <p>
Para os clientes da rede (<prgn>Linux, Windows, OS/2, etc. </prgn>) fazer 
uso das vantagens da resolução de nomes usando o WINS, é necessário configurar
para que eles o utilizem para resolver os nomes de máquinas. Isto é feito da 
seguinte forma em cada um dos sistemas operacionais:
<taglist compact>
 <tag>Linux</tag>
  <item>
Adicione a linha <tt>wins server = ip_do_servidor_WINS</tt> 
na seção global do arquivo <file>/etc/samba/smb.conf</file>:
<example>
[global]
wins server = 192.168.1.1

</example>
Após isto, reinicie o servidor <prgn>samba</prgn>. Caso esteja executando
o servidor via <tt>inetd</tt>, digite: <tt>killall -HUP nmbd</tt>. Se 
estiver rodando através de daemons: <tt>/etc/init.d/samba restart</tt>.
Não é necessário reiniciar o computador!

 <tag>Windows 9x</tag>
  <item>
Clique com o botão direito sobre o ícone <em>Ambiente de Rede</em> e 
selecione propriedades. Na janela de configuração de rede clique na aba 
<em>Configuração</em>. Na lista que aparece selecione o protocolo TCP/IP 
equivalente a sua placa de rede local e clique em <em>Propriedades</em>.
 <p>
Na tela de <em>Propriedades TCP/IP</em> clique em <em>Configurações WINS</em> 
e marque a opção <em>Ativar resolução WINS</em>. Digite o endereço do servidor 
WINS e clique em <em>Adicionar</em>.

<![ %OBS [
 <p>
<strong>OBS:</strong> Se utilizar um servidor DHCP em sua rede local e o 
endereço do servidor WINS também é oferecido através dele, você poderá 
marcar a opção <em>Usar DHCP para resolução WINS</em>. Note que esta 
opção somente estará disponível se escolher a opção <em>Obter um endereço IP 
automaticamente</em> na tab <em>Endereços IP</em>.
]]>

Clique em OK até fechar todas as telas e reinicie quando
o computador perguntar :-)
</taglist>

