Configurei um servidor DNS na minha LAN doméstica. Ele serve alguns nomes de domínio extras, como foo
. Observe que foo
está configurado para retornar 404s para todas as solicitações. (Eu não consegui fazê-lo para fazer o que eu quero fazer.) Além disso, observe que foo
é um nome de domínio de nível único , ou seja, foo.
é o FQDN. Espero que seja óbvio, este não é um nome que espero resolver em qualquer lugar, exceto na minha rede doméstica.
Uma máquina Windows solitária na rede parece estar com problemas com solicitações de DNS - não sei por quê.
Topologia de rede, apenas para referência:
^ out to Comcast
|
* Comcast modem
|
+-* 10.1.10.2, a server, hosting a webserver and a DNS server.
+-* 10.1.10.3/192.168.2.1, a wireless router.
|
(via WiFi)
|
+-* an Android phone
+-* a Windows laptop.
+-* a Linux laptop.
O roteador sem fio está configurado para usar 10.1.10.2 para DNS. No entanto, ele envia 192.168.2.1 como o servidor DNS em sua resposta DHCP (verificada com o Wireshark).
O telefone Android, se solicitado a fazer http://foo/
no Chrome, obtém o 404. (que está correto.)
A máquina do Windows, se for solicitada a fazer o mesmo no Chrome, falha, com a página "Ops! Google Chrome não encontrou". Usando nslookup
na máquina e dando a ela foo
no prompt, parece não conseguir encontrar foo
. Ele afirma estar usando 192.168.2.1 como um servidor DNS. Se eu nslookup
foo.
(note o ponto), eu recebo o endereço IP correto de volta. Se eu solicitar http://10.1.10.2
, obtenho o 404.
Na máquina Linux, um dig @10.1.10.2 foo
fornece a resposta correta. Além disso, dig @192.168.2.1 foo
também fornece o resultado correto.
O que diabos está acontecendo? Por que a máquina do Windows está retornando não encontrada para as respostas do DNS, enquanto todas as outras máquinas parecem ter a resposta correta?
Edit: Eu tenho o Python na máquina do Windows. Na verdade, tenho dois domínios, foo
e bar
. O socket.gethostbyname
do Python pode ver foo
, mas não bar
. (Eles estão sendo atendidos pelo mesmo servidor DNS - os registros são idênticos, exceto pelo nome.) nslookup
não pode ver o agachamento, exceto aquele com ponto. Nada funciona no Chrome.