Como os nomes são resolvidos em redes locais modernas? [fechadas]

2

Em redes locais modernas, os dispositivos usam algumas técnicas diferentes para resolver nomes. Especificamente, apenas para nomear algumas coisas, como DNS, Avahi, zeroconf, mDNS, Bonjour, NetBIOS, WINS ou até mesmo arquivos de hosts manuais. Alguns deles são, creio eu, termos diferentes para basicamente a mesma coisa. Alguns usam tecnologias descentralizadas, outros confiam no DHCP para distribuir endereços centrais.

Como os atuais sistemas operacionais comuns passam por essas diferentes técnicas de resolução de nomes, possivelmente conflitantes? Que ordem eles usam? Os sistemas operacionais diferentes têm comportamentos diferentes?

Quando alguém solicita o IP de foobar , quando o domínio de pesquisa local é anexado ao nome - depois que a resolução inicial do nome falha, antes de perguntar algo na rede ou outra hora? Os resolvedores de DNS podem (e / ou fazer) adicionar domínios de pesquisa ao tentar encontrar uma entrada em suas tabelas?

Por que o comportamento de meus clientes mudou quando eu especifiquei um domínio de pesquisa local (em oposição a em branco) no meu roteador?

Alguns desses métodos suportam e / ou usam o domínio .local tld / search. Isso é apenas uma coisa Avahi?

Como adicionar um . no final de um domínio muda as coisas? Isso simplesmente impede a busca de "domínio local"? Quando procuro google.com , por que não preciso do . ?

Por que meu resolvedor de DNS não pesquisa google.com.local ou google.com.MyLocalSearchDomain ?

Você pode ter domínios de pesquisa aninhados?

O NetBIOS e o WINS são a mesma coisa? E quanto a avahi, bonjour e outros?

Pergunta de acompanhamento: como cada um desses serviços funciona? Eu entendo que o DNS usa um estilo mais convencional de (essencialmente) um servidor central que cada cliente está configurado para usar. No entanto, os métodos descentralizados devem usar algumas outras técnicas para descobrir nomes automaticamente. Como isso funciona?

    
por Cameron Tacklind 20.09.2018 / 03:28

2 respostas

3

Em suma, é uma mistura muito confusa de diferentes conjuntos de protocolos de resolução de nome usados por diferentes sistemas operacionais, produtos, aplicativos, serviços e APIs.

O IETF ZeroConf define o protocolo mDNS (multicast DNS) e também o protocolo DNS-SD (descoberta de serviço DNS). Bonjour (née Rendezvous, a.k.a. mDNSResponder) e Avahi são duas implementações do ZeroConf. Ouvi dizer que há também uma implementação da comunidade OpenWrt que simplesmente se chama "mDNS". Como a Apple criou isso, os produtos da Apple se concentram nisso, embora os Macs também possam usar o NetBIOS Name Service e o WINS para resolução de nomes, especialmente ao usar o cliente SMOS do macOS para se conectar a servidores de arquivos SMB (Windows Server, servidores Linux SaMBa).

Os protocolos de serviço de nomes de propriedade da Microsoft iniciam com o Serviço de Nomes de NetBIOS que foi baseado em difusões locais (não roteáveis) de LAN. Eu digo "Microsoft proprietária", mas tecnicamente ela originou-se com a IBM como parte dos protocolos SMB (Server Message Block). Como o serviço de arquivos SMB tornou-se um padrão de fato da indústria, muitos sistemas operacionais tiveram que adotar o NetBIOS Name Service em seus clientes e servidores SMB, no mínimo. Mais tarde, a Microsoft criou o WINS para fornecer uma solução unicast baseada em servidor para esse mesmo tipo de resolução de nomes de propriedade da Microsoft. Quando a Apple criou o mDNS com o nome "Rendezvous" (mais tarde renomeado Bonjour) e o levou para o IETF para se tornar IETF ZeroConf, a Microsoft decidiu fazer seu próprio mDNS semelhante, diferente e incompatível, que eles chamavam de "Link-Local Multicast". Resolução de nomes "(LLMNR). No mundo da Microsoft, as requisições de hosts ".local" normalmente vão para o LLMNR, como se para evitar o uso padronizado de ".local" do ZeroConf. A Microsoft também usa o UPnP para descobrir algumas coisas em LANs, como roteadores (APs Wi-Fi e gateways NAT).

O Linux, incluindo o Google Android, parece estar gravitando em direção ao ZeroConf para resolução de nomes sem servidor baseado em LAN agora. O Google portou o daemon open source "mDNSResponder" da Apple compatível com POSIX para Linux para uso no Android; é o que implementa as APIs do "Network Service Discovery" (NSD) do Android.

Como o macOS, o Linux usa o NetBIOS Name Service e o WINS para se conectar a servidores SMB.

É uma grande bagunça, e qual (is) protocolo (s) usado (s) para uma determinada coisa depende de qual SO você está, quais APIs seu software chama, e muitas outras coisas.

    
por 20.09.2018 / 04:25
1

Outra parte do quebra-cabeça é o arquivo /etc/nsswitch.conf . Este é o “switch de serviço de nome”, que está presente em muitos sistemas baseados em Unix; Ele informa ao sistema como converter nomes em valores numéricos e vice-versa. Contém cerca de uma dúzia de linhas que se parece com

(database):   (source)
Descrito em detalhes aqui .

Uma linha de exemplo seria

hosts:        files dns
, o que significa que sempre que algum programa * quer traduzir um host / nome de domínio em um endereço IP (ou vice-versa), deveria
  1. Procure em /etc/hosts e, se não encontrar um resultado,
  2. consulte o DNS.

Portanto, os sistemas podem ser configurados individualmente como resolver nomes de host (incluindo a ordem de pesquisa).

por 09.10.2018 / 08:15