Primeiro, perdoe minha ignorância, pois ainda estou me acostumando a trabalhar com o DNS. Eu sou um novato em rede.
A questão básica:
Como determino a fonte de um registro DNS? Ou, pode ser mais preciso perguntar: como eu determino onde na minha rede um nome de host está sendo traduzido em um IP?
Específicos:
- Actiontek MI424WR-GEN3I (fornecido como parte do serviço FiOS)
- MacBookPro executando o OS X Yosemite
- VMWare Fusion
- Ubuntu 14 Server em execução na máquina virtual VMWare
Cenário:
Eu estou em um Mac rodando o OS X Yosemite com o Ubuntu 14 rodando em uma máquina virtual VMWare. Eu estou aprendendo as dificuldades na criação de um site Drupal (não especificamente relevante para o problema), e eu configurei hosts virtuais no servidor Ubuntu. Tomando isso como um processo baby-steps, eu primeiro criei uma entrada no meu arquivo hosts:
192.168.1.22 cwb1.local
Isso funcionou bem, então eu fiquei um pouco mais ambicioso e removi esta entrada do arquivo hosts e criei uma entrada DNS no meu roteador, apontando o nome do host cwb1.local para o IP 192.168.1.22. Isso parecia ter funcionado muito bem também. O mistério é que, desde então, eu removi essa entrada de DNS e agora, até onde posso dizer, não tenho nenhum registro associando esse nome de host e IP entre si, ainda assim duas coisas estranhas acontecem:
- Eu posso pingar o nome do host e retornar com sucesso o IP
- posso navegar para o link no meu navegador e acessar meu Drupal
site.
Limpei o cache do meu navegador e executei dscacheutil -flushcache no meu mac, até mesmo redefini meu servidor, e ainda não consigo determinar como / porque meu mac sabe associar esse nome de host e o IP juntos.
Diagnóstico:
* note que a VM que executa este servidor está listada nas conexões DHCP do meu roteador como 'ubuntu'
MAC:~ me$ nslookup 192.168.1.22
Server: 192.168.1.1
Address: 192.168.1.1#53
22.1.168.192.in-addr.arpa name = ubuntu.home.
MAC:~ me$ nslookup cwb1.local
Server: 192.168.1.1
Address: 192.168.1.1#53
** server can't find cwb1.local: NXDOMAIN
MAC:~ me$ dig cwb1.local
; <<>> DiG 9.8.3-P1 <<>> cwb1.local
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 53342
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;cwb1.local. IN A
;; Query time: 49 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sat Jan 17 20:53:36 2015
;; MSG SIZE rcvd: 28
MAC:~ me$ dig 192.168.1.22
; <<>> DiG 9.8.3-P1 <<>> 192.168.1.22
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 60811
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;192.168.1.22. IN A
;; AUTHORITY SECTION:
. 10800 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2015011701 1800 900 604800 86400
;; Query time: 50 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sat Jan 17 21:01:59 2015
;; MSG SIZE rcvd: 105
Conteúdo do /etc/apache2/sites-available/html.conf
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName drupal7
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName cwb1.local
ServerAlias cwb1.local *.cwb1.local
</VirtualHost>
Alguém pode me dar alguma orientação aqui?
Editar
Após o comentário do Romeo, eu revisitei meu arquivo / etc / hosts e tentei algo:
Eu adicionei uma nova entrada para cwb1.local para um IP que não está presente na minha rede (192.168.1.23). Ao executar ping no cwb1.local, ele é resolvido para 192.168.1.23 (conforme esperado) e cada pedido de req expira (também como esperado). A parte interessante é que eu removi essa entrada do meu arquivo / etc / hosts, então corri:
- dscacheutil -flushcache
- sudo discoveryutil mdnsflushcache
- sudo discoveryutil udnsflushcaches
e ainda obtém os mesmos resultados: o nome do host é resolvido, mas os pacotes expiram.
Então, meu Mac está propagando / espelhando essa informação em outro lugar também? Ou há algum tipo de buffer que não seja removido com os comandos de limpeza de cache acima?
Editar 2
Assim, após a reinicialização, o registro do nome do host parece ter finalmente desaparecido. Isso indica muito strongmente que o registro fantasma está sendo armazenado no meu Mac. Mas onde / como esse registro DNS fantasma é armazenado antes da reinicialização? Como posso garantir no futuro que estou obtendo informações precisas de DNS sem exigir uma reinicialização?
Mais uma vez, agradeço a todos que podem dar uma ideia!