ID do artigo: 150800 - Última revisão: terça-feira, 14 de junho de 2005 - Revisão: 3.0

Localização de domínio com TCP/IP e arquivos LMHOSTS

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Geralmente recomendamos a implementação do WINS para resolução de nomes e suporte de localização em redes com base em TCP/IP que envolvem roteadores e vários segmentos. Porém, como uma alternativa ao WINS, é possível ter acesso à localização completa de domínios usando-se somente arquivos LMHOSTS em todos os computadores, apesar de algumas limitações que serão abordadas nesse artigo.

Em ambos os casos, é importante notar que um cliente somente participa da localização de domínio quando usa um nome de grupo de trabalho equivalente ao nome de domínio (Nome_do_grupo_de_trabalho = Nome_de_domínio). Computadores com Windows NT também podem "juntar-se" ao domínio para obter essa funcionalidade, em vez de participarem de um grupo de trabalho.

Esta funcionalidade de localização de domínio com base em LMHOSTS (por meio de roteadores) não foi formalmente documentada ou testada pela Microsoft e pode não estar disponível em versões futuras de sistemas operacionais do cliente e do servidor. Use essas informações com discrição.

Mais Informações

A "localização" em uma rede Microsoft deve ser considerada um serviço distribuído fornecido por um ou mais computadores. Cada computador pode executar muitas funções de localização; porém, esse artigo se concentra nas duas mais importantes:

  • Localizador de segmento mestre (SegMB): Pode ser qualquer Windows NT Server, Workstation ou controlador de domínio. Também pode ser um computador com Windows 95 ou Windows for Workgroups 3.11. O SegMB é responsável por manter uma lista de localização dos computadores em seu segmento local, encaminhar a lista para o localizador de domínio mestre e solicitar dele a lista de localização de domínio. O SegMB mescla a lista de domínio com sua lista local e a coloca à disposição de qualquer cliente local que a solicite.
  • Localizador de domínio mestre (DomMB): É o controlador de domínio primário do Windows NT (PDC). O DomMB é responsável por manter a lista de localização em seu segmento local (como um SegMB), como também por coletar listas de localização de outros localizadores de segmento mestres (remotos) com o mesmo nome de domínio (ou Nome_do_grupo_de_trabalho = Nome_de_domínio). O DomMB mescla as listas que coleta juntamente com a lista local e depois redistribui a lista combinada para todos os SegMBs remotos. Portanto, ele é o concentrador central para a manutenção da lista de localização de domínio abrangente.
OBSERVAÇÃO: O localizador do Windows para Workgroups requer arquivos atualizados.

Para obter informações adicionais, leia o seguinte artigo na Base de Dados de Conhecimento da Microsoft:
102878  (http://support.microsoft.com/kb/102878/EN-US/ ) Informações sobre a operação do localizador
Para que o serviço de localização distribuída funcione, os SegMBs precisam determinar exatamente de quem é o DomMB. Eles podem determinar isso localizando o computador que registrou o nome de NetBIOS "Domínio<1b>", porque ele é registrado apenas pelo PDC (que também é o DomMB, como indicado acima).

Para obter informações adicionais, leia o seguinte artigo na Base de Dados de Conhecimento da Microsoft:
119495  (http://support.microsoft.com/kb/119495/EN-US/ ) Lista de nomes registrados com o serviço WINS

Localização de domínio com WINS

Em um ambiente WINS, um SegMB consulta o WINS para determinar quem registrou Domínio<1b>. Neste caso, o WINS age como um conveniente recurso central para essas informações. Há um benefício adicional na ajuda do WINS à localização: a localização de vários domínios.

Localização de vários domínios com o WINS

Um PDC configurado para consultar o WINS periodicamente solicita a lista de todos os domínios que estão registrados no banco de dados. (Um domínio é identificado por um registro "Domínio<1b>" no banco de dados, e o endereço IP associado do PDC que o registrou.) O PDC combina essa lista com sua própria lista de localização de domínio e, assim, obtém uma lista completa dos computadores em seu domínio e também uma lista de outros domínios, todas pela WAN. Então, quando o PDC interage com seus SegMBs dá a eles essa lista completa. Depois você sente o efeito disso quando localiza a rede usando o Gerenciador de arquivos ou Ambiente de rede.

OBSERVAÇÃO: Esse é o alcance do envolvimento do WINS com a localização. Ele não está envolvido com o processo de seleção do localizador, nem ajuda o cliente a determinar seu localizador de segmento mestre, nem tampouco ajuda o DomMB a determinar de quem são os SegMBs; isso é feito quando o SegMB entra em contato com o DomMB pela primeira vez.

Em certas redes o uso do WINS pode não ser útil; isso somente pode ser determinado analisando-se caso a caso. Você pode usar o LMHOSTS ou DNS para resolver nomes de computador; porém, os LMHOSTS são necessários para a localização de domínio, como também para outros problemas de gerenciamento de domínio como duplicação de banco de dados e canais de segurança de domínio.

Localização de domínio com LMHOSTS

Sem o WINS, você precisa de entradas LMHOSTS especiais que determinam de quem são todos os controladores de domínio. Isso é feito de acordo com a seguinte convenção:
199.199.199.1  Nome_do_computador #PRE  #DOM:Nome_do_domínio
					
Quando um computador é inicializado, ele lê essas entradas e as armazena permanentemente no cache do nome NetBIOS até que o computador seja desligado. (Por causa disso, é melhor que essas entradas permaneçam no arquivo LMHOSTS para uma análise eficiente do LMHOSTS.) Todos os computadores no domínio precisam de uma dessas entradas para cada controlador de domínio (no domínio local), assim como uma para o PDC. Observe também a ordem exata do #PRE #DOM e repare que estão em letras maiúsculas. Os outros nomes não diferenciam maiúsculas de minúsculas.

Localizadores de segmento mestres do Windows NT

As entradas citadas acima são suficientes para um computador com Windows NT: Depois de se tornar um Localizador de segmento mestre, um computador com Windows NT determina de quem é o PDC enviando uma consulta (usando a API NetGetDcName) para todas as entradas LMHOSTS com a designação #DOM:<domínio_local>. Somente o PDC responde. Depois, o computador com o Windows NT entra em contato com o PDC e informa a ele que é um localizador mestre e, em seguida, continua o processo de obtenção da lista de localização de domínio. O PDC então entra em contato com o computador com Windows NT para obter sua lista de localização de segmento local. Esse processo se repete a cada 12 a 15 minutos.

Localizadores de segmento mestres do Windows 95 e Windows para Workgroups

Eles não executam a API NetGetDcName, assim, precisam de entradas no arquivo LMHOSTS que indiquem de quem é o PDC. Supondo que o exemplo acima é o PDC do domínio, você teria duas entradas para um cliente com Windows 95 ou com Windows para Workgroups:
   199.199.199.1  controlador1   #PRE  #DOM:nome_do_domínio
   199.199.199.1  "nome_do_domínio,,,,,\0x1b"  #PRE
A primeira entrada permite que o PDC aja como um controlador de domínio de logon para o cliente, a segunda entrada permite que o serviço do localizador do cliente encontre explicitamente o PDC. Lembre-se que provavelmente você terá várias linhas similares à primeira (para controladores de vários domínios), mas somente uma linha com a diretiva \0x1b (para designar o PDC). Observe que o nome de domínio deve estar entre aspas e deve ser preenchido com espaços para completar o total de 15 caracteres antes da parte \0x1b. (O exemplo acima mostra vírgulas para espaços reservados virtuais, porém, em um arquivo LMHOSTS real essas vírgulas devem ser substituídas por espaços). Esteja ciente também de que mover a função PDC para outro Windows NT Server (via promoção) invalidará sua entrada \0x1b. Opções para corrigir isso:

  • Alterne os endereços de IP nos controladores para que o PDC efetivamente sempre tenha o mesmo endereço. Você não precisa mudar nada no arquivo LMHOSTS.
  • Mude o endereço de IP \0x1b em todos os arquivos LMHOSTS nos clientes, ou no arquivo LMHOSTS centralmente distribuído (caso esteja implementando-o).

Observação sobre os nomes NetBIOS

Cada nome NetBIOS tem 16 caracteres; os primeiros 15 são definidos pelo usuário (ou preenchidos com espaços), e o décimo sexto caractere é reservado para identificar o serviço de rede que registrou o nome. O exemplo mais familiar de um nome NetBIOS é o Nome_do_computador em qualquer cliente de rede da Microsoft. Quando o cliente é inicializado, vários serviços de rede de cliente registrarão o Nome_do_computador juntamente com as extensões únicas, como Nome_do_computador<00> (serviço de estação de trabalho) e Nome_do_computador<20> (serviço de servidor). Nesse caso, a única diferença entre esses dois nomes é o décimo sexto caractere - e isso os torna individualmente identificáveis. Um cliente pode registrar todos esses nomes por transmissão e por meio de datagrama direto para o WINS, dependendo do tipo de nó do cliente. Outras empresas também podem registrar extensões NetBIOS que não são reservadas pela Microsoft.

Para obter informações adicionais, leia o seguinte artigo na Base de Dados de Conhecimento da Microsoft:
119493  (http://support.microsoft.com/kb/119493/PT-BR/ ) NetBIOS sobre solução de nome TCP/IP e WINS
119495  (http://support.microsoft.com/kb/119495/EN-US/ ) Lista de nomes registrados com o serviço WINS

Exemplo de LMHOSTS

O seu nome de domínio é "Globo", o nome NetBIOS de PDC é "Mongo", e você tem vários outros controladores de domínio de backup. Seu arquivo LMHOSTS se pareceria com o seguinte:
   199.199.199.1   "globo       \0x1b"  #PRE
   199.199.199.1   mongo      #PRE  #DOM:globo
   199.199.199.2   otherdc1   #PRE  #DOM:globo
   199.199.199.3   otherdc2   #PRE  #DOM:globo
Para verificar se os dados foram inseridos corretamente, abra uma janela de comando (prompt do MS-DOS) e exiba o cache de NetBIOS:
   c:\> nbtstat -c

   NetBIOS Remote Cache Name Table

   Name           Type  Host          Address        Life [sec]
   ------------------------------------------------------------
   globo          <1B>  UNIQUE        199.199.199.1       -1
   MONGO          <03>  UNIQUE        199.199.199.1       -1
   MONGO          <00>  UNIQUE        199.199.199.1       -1
   MONGO          <20>  UNIQUE        199.199.199.1       -1
   OTHERDC1       <03>  UNIQUE        199.199.199.2       -1
   OTHERDC1       <00>  UNIQUE        199.199.199.2       -1
   OTHERDC1       <20>  UNIQUE        199.199.199.2       -1
   OTHERDC2       <03>  UNIQUE        199.199.199.3       -1
   OTHERDC2       <00>  UNIQUE        199.199.199.3       -1
   OTHERDC2       <20>  UNIQUE        199.199.199.3       -1
DICA: a entrada <1B> não será exibida se o nome não tiver exatamente 15 caracteres, não estiver entre aspas ou se a barra estiver na posição invertida "/0x1b" (oposto a "\0x1b").

Localização de vários domínios com LMHOSTS

É importante observar que a principal desvantagem da localização de LMHOSTS é não fornecer a habilidade automática de localização de vários domínios. Como mencionado anteriormente, o PDC consultará uma lista de domínios remotos no WINS e incluirá essas informações em sua lista de localização. Porém, o PDC não analisará o arquivo LMHOSTS quanto às mesmas informações, nem incluirá outras entradas \0x1b com a diretiva do #PRE (cache). Na verdade, se o seu PDC não consultar o WINS, você não verá outros domínios com o Gerenciador de arquivos ou Ambiente de rede. Porém, você também pode localizar outros domínios manualmente (desde que saiba o nome de domínio e que tenha entradas especiais em seu arquivo LMHOSTS) e ainda ter a chance de localizar domínios remotos com base em transmissões.

Método manual: é realizado incluindo-se uma entrada \0x1b para o PDC de qualquer domínio remoto a ser localizado. Esta técnica aplica-se ao Windows NT, ao Windows 95 e ao Windows para Workgroups. Ela é eficaz devido à seguinte seqüência de eventos, necessária para a localização de domínio remoto:
  1. O cliente determina de quem é o PDC do domínio remoto através do nome <1b> de domínio (para LMHOSTS isso é feito com a entrada \0x1b; para WINS isso é feito por meio de consulta).
  2. O cliente envia uma solicitação API GetBackupList para o PDC remoto
  3. O PDC remoto responde com uma lista de até três localizadores mestres, potencialmente incluindo ele mesmo.
  4. O cliente envia uma solicitação de API NetServerEnum para um dos localizadores mestres
  5. O localizador mestre responde com a lista de localização de domínio abrangente.
A "maneira manual" de obter essa lista de localização é por meio de uma janela de comando:
Para computadores com WinNT: c:\net view /domínio:<nome_do_domínio>
Para Win95 e WFW: c:\net view /grupo_de_trabalho:<nome_do_domínio>
Método de Transmissão: Funciona no caso de qualquer segmento de rede que tenha membros de vários domínios. Existe um SegMB de cada domínio no segmento "mútuo" e cada SegMB anuncia seu domínio por meio de transmissão para um nome NetBIOS especial<01><02>_MSBROWSE_<02><01>. O pacote de transmissão inclui o nome de domínio e o nome do computador do SegMB que o anunciou.

Os SegMBs de outros domínios (nesse segmento mútuo) escutam essas informações e as acrescentam à lista de localização local. Agora, um SegMB nesse segmento "descobre" outros domínios e envia as informações descobertas para: o DomMB de seu domínio e para clientes locais (em seu domínio) que solicitam uma lista de localização.

Um cliente solicita a lista de localização de domínio local (de um SegMB local) e exibe os domínios descobertos no Gerenciador de arquivos e Ambiente de rede. Quando o cliente seleciona o domínio descoberto, na verdade, ele solicita uma lista de localização diretamente do SegMB que fez o anúncio no pacote<01><02>_MSBROWSE_<02><01>. Além disso, como as informações também foram enviadas para o DomMB do cliente, elas são propagadas para os SegMBs em outros segmentos que fazem parte desse domínio.

Agora, clientes em um segmento remoto podem aproveitar essas informações e localizar o domínio remoto mesmo que não haja nenhum membro do domínio remoto no segmento dos clientes. Porém, o uso de arquivos LMHOSTS torna o processo muito volátil, pois depende que os "SegMBs remotos descobertos" ainda estejam ativos. Em um ambiente WINS, esse recurso de localização remota é muito mais estável porque o WINS fornece as informações sobre os domínios remotos para o seu PDC.

Aspectos que devem ser considerados:
  1. Para que a localização de domínio e de logon de domínio funcionem por meio do LMHOSTS, todos os computadores solicitam um arquivo LMHOSTS que inclua entradas para todos os controladores de domínio e entradas \0x1b adequadas, e o PDC solicita uma entrada para cada localizador de segmento mestre remoto (se ainda não estiverem listados).
  2. Muito provavelmente cada computador WAN está listado. Isso pode ser feito de maneira mais eficiente com um arquivo LMHOSTS comum distribuído para todos os clientes e servidores; porém, você deve mantê-lo atualizado com todas as mudanças de endereço de IP adequadas e isso pode se tornar um volume administrativo.
  3. Visualizar um computador na lista de localização não significa que você pode se conectar a ele. Se ele estiver em seu segmento local, você poderá se conectar por meio de transmissão. Se ele estiver em um segmento remoto, você precisará de uma entrada LMHOSTS para fazer isso.

A informação contida neste artigo aplica-se a:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Server 3.5
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows 95
  • Microsoft Windows for Workgroups 3.11
  • Microsoft TCP/IP-32 para Windows para Workgroups 1.0
Palavras-chave: 
kbapi kbnetbios kbnetwork KB150800