Estou trabalhando na criação de uma intranet doméstica para mim e meus colegas de quarto. Minha idéia é que poderemos armazenar coisas como contas de serviços públicos anteriores em um local mais acessível do que uma gaveta na cozinha etc. De qualquer forma, tenho o Apache 2 rodando em um Raspberry Pi, na minha LAN e se eu usar seu endereço IP, eu posso acessar as páginas servidas no Pi. Como estou fazendo esse projeto mais para aprender sobre redes e fornecer um serviço ao meu apartamento, pensei que seria legal se minha rede pudesse fornecer resolução de nome de host para minha LAN. Então, em vez de apontar meu navegador para 192.168.1.151
o endereço IP do Pi, eu poderia apontá-lo para oberon
(seu nome de host) e visualizar as páginas da web servidas pelo Pi.
Agora eu sabia que não era a primeira pessoa a querer fazer isso, então comecei pesquisando no Google. Esta pergunta, também no Unix e Linux, me ajudou imensamente: Como tornar uma máquina acessível a partir da LAN usando seu nome de host . Neste ponto, eu tentei de tudo na resposta verificada. Pensei em usar o hosts
arquivo, mas isso significaria que eu teria que dizer aos meus colegas de quarto para configurar suas máquinas, o que eu não quero que eles façam. Tentei reservar uma concessão de DHCP para o Pi no meu roteador (um NETGEAR WNR1000v2 (também conhecido como N150)) e, enquanto a reserva funcionava, a resolução do nome do host não. Isso me frustra porque eu disse ao meu roteador o IP do Pi e seu nome de host, mas ele ainda não fornece essas informações aos clientes na minha LAN.
Com esses dois métodos não funcionando, decidi instalar dnsmasq
no Pi. Parecia simples de configurar e eu ficaria feliz em aprender uma nova ferramenta. Eu instalei e ele está funcionando muito bem (parece). Eu posso dig
ou nslookup
apelidos do Pi (que eu definidos em /etc/hosts
a oberon
e homenet
) e obter os resultados corretos. Posso fazer o mesmo com nomes da Internet como yahoo.com
e obter respostas corretas porque configurei o Google 8.8.8.8
e 8.8.4.4
como servidores de backup /etc/dnsmasq.conf
. Veja isso:
me@oberon~$ dig oberon
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> oberon
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10787
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;oberon. IN A
;; ANSWER SECTION:
oberon. 0 IN A 192.168.1.151
;; Query time: 10 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Oct 6 18:59:18 2013
;; MSG SIZE rcvd: 40
Observe que o SERVER
is 127.0.0.1
: oberon
está pesquisando seu próprio endereço IP por conta própria. Isto é o que eu esperava ver. Saída é a mesma se eu fizer dig oberon @localhost
. Por causa dessa saída, estou pensando que dnsmasq
está funcionando bem. Portanto, para elevar o nível a outro nível, desejo que todos os clientes na minha LAN possam digitar oberon
seu navegador e serem levados para oberon
a página de índice. Por isso, sei que preciso configurar meu roteador (desculpas se isso se afastar do território estritamente Unix e Linux).
Eu tenho um Netgear WNR1000v2 com o qual estou bastante familiarizado. Eu configurei o encaminhamento de porta para que eu possa fazer o SSH no Pi e também procurei em outras configurações. Sei que antes de iniciar este projeto, eu estava recebendo meus servidores DNS do meu ISP, mas agora quero usá-los principalmente, mas também 192.168.1.151
como última verificação. Então, mudei a configuração de DNS do meu roteador para o seguinte:
Portanto, com essa configuração, eu esperava poder fazer nslookup oberon
no meu desktop (Windows) e obter um resultado de 192.168.1.151
. Mas isso não acontece. Isto é o que acontece:
C:\Users\me>nslookup oberon
Server: UnKnown
Address: fe80::226:f2ff:fefa:bea
*** UnKnown can't find oberon: Non-existent domain
A redefinição ou dnsflushing
o adaptador de rede na minha máquina Windows não altera nada.
Agora, aqui está o porquê de eu arrancar meu cabelo aqui:
C:\Users\me>nslookup oberon 192.168.1.151
Server: oberon.lan
Address: 192.168.1.151
Name: oberon
Address: 192.168.1.151
Claramente, dnsmasq
está funcionando muito bem. Se eu disser à minha caixa do Windows 192.168.1.151
para resolver o nome oberon
, tudo estará bem (o .lan
domínio fazia parte da configuração de dnsmasq
, então esperava vê-lo lá). Se eu conseguir que meu roteador diga à minha máquina Windows para usar 192.168.1.151
quando fizer consultas de DNS, eu devo ser bom!
Portanto, parece-me que o problema está no meu roteador, mas não consigo descobrir o que fazer além de alterar os servidores DNS para incluir 192.168.1.151
como já tenho. Alguém pode me ajudar aqui? Vou tentar fornecer qualquer informação adicional desejada.
fonte
Respostas:
Seu problema está no seu entendimento equivocado da maneira como esses servidores DNS são usados. Não sei os detalhes exatos do método que o Windows usa para escolher qual servidor DNS consultar, mas aposto que é o primário> secundário> terciário / sempre /. E mesmo que não fosse e tenha sido de rodízio, você ainda estará consultando um servidor inútil 2 das 3 vezes.
O que acontecerá é que o servidor principal será consultado. Se atingir o tempo limite, que pode ser um ou dois segundos, o próximo servidor será consultado. O DNS não é um sistema de "consenso". Se um dos servidores remotos estiver sendo consultado, ele descobrirá o resultado de que seu nome de host com autoridade NÃO existe, da perspectiva dele como um servidor DNS da Internet.
Você precisa de seu próprio DNS da LAN como servidor DNS primário. Os outros formariam servidores de backup adequados, mas eu consideraria simplesmente abandoná-lo completamente.
Além disso, seu DNS reverso (pesquisa de IP para nome) é resolvido como "hostname.lan", mas seus testes de resolução direta são apenas com o nome do host. Você também deve ter a resolução de encaminhamento para hostname.lan configurada em algum lugar. Embora possa haver muitas pesquisas futuras de "nome a endereçar" para um host, há uma expectativa de que haja uma pesquisa inversa do IP em um nome, que por sua vez tenha um nome correspondente ao registro IP. Nem sempre é crítico e apenas faz com que os arquivos de log se lamentem às vezes, mas algumas coisas são mais sensíveis a isso do que outras.
Além disso, não se esqueça de remover qualquer bodgery de arquivo de hosts que você colocou no lugar depois de fazer tudo funcionar (não sei se isso é relevante para o dnsmasq, nunca usei, tenho uma configuração semelhante, mas mais complicada, usando o nome ISC-BIND servidor, que você pode configurar o encaminhamento para outros servidores, como você está usando, ou simplesmente usá-lo como um servidor DNS sem encaminhamento, com a resolução completa de nomes - que é o que eu configurei).
Desnecessário dizer que, como você primeiro especulou que está muito longe de fazer isso, quase todas as LANs corporativas razoavelmente desenvolvidas e muitas LANs domésticas super-desenvolvidas terão esse tipo de configuração.
fonte
nslookup oberon
ainda não funciona. Uma coisa que não mencionei no texto da minha postagem original foi que, quandonslookup
falha, ele diz que o servidor usado era umfe80
endereço IPv6 - que eu sei que é um endereço de link-local reservado. Mas não sei o que isso significa para o DNS. Minha caixa do Windows está se consultando?dnsflush
não altera esse comportamento..lan
domínio, configureidnsmasq
para expandir automaticamente nomes de host simples a serem adicionados.lan
. Runningnslookup oberon.lan 192.168.1.151
retorna o resultado esperado deName: oberon.lan Address: 192.168.1.151
ipconfig /all
se o servidor DNS correto está sendo usado; se estiver certo, talvez seja necessário fazer o flushdns. Mas não consigo pensar em mais nada, deve funcionar.Talvez um pouco tarde, mas desativar o ipv6 no meu adaptador sem fio fez o truque.
fonte