SOHO网络上的DNS记录来源?

SOHO网络上的DNS记录来源?

首先,请原谅我的无知,因为我仍在适应使用 DNS。我是网络新手。

基本问题: 如何确定 DNS 记录的来源?或者,更准确的说法是:如何确定网络上的哪个位置将主机名转换为 IP?

具体内容:

  • Actiontek MI424WR-GEN3I(作为 FiOS 服务的一部分提供)
  • 运行 OS X Yosemite 的 MacBookPro
  • VMWare Fusion
  • 在 VMWare 虚拟机上运行的 Ubuntu 14 Server

设想: 我在运行 OS X Yosemite 的 Mac 上,在 VMWare 虚拟机中运行 Ubuntu 14。我正在学习如何设置 Drupal 网站(与问题没有特别相关),并且我在 Ubuntu 服务器上设置了虚拟主机。作为一个循序渐进的过程,我首先在主机文件中创建了一个条目:192.168.1.22 cwb1.local

这很有效,所以我更大胆一点,删除了这个 hosts 文件条目,并在路由器上创建了一个 DNS 条目,将主机名 cwb1.local 指向 IP 192.168.1.22。这似乎也很好用。奇怪的是,我后来删除了这个 DNS 条目,现在据我所知,没有记录将此主机名和 IP 相互关联,但发生了两件奇怪的事情:

  1. 我可以 ping 主机名并成功返回 IP
  2. 我可以导航到http://cwb1.local在我的浏览器中并访问我的 Drupal 网站。

我已经清除了浏览器的缓存,并在我的 Mac 上运行了 dscacheutil -flushcache,甚至重置了我的服务器,但我仍然无法确定我的 Mac 如何/为何知道将此主机名和 IP 关联在一起。

诊断: * 注意,运行此服务器的虚拟机在我的路由器的 DHCP 连接中列为“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

/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>

有人可以给我一些指导吗?

编辑 在 Romeo 的评论之后,我重新查看了我的 /etc/hosts 文件并尝试了一些方法:我为 cwb1.local 添加了一条新条目,该条目不在我的网络上 (192.168.1.23) 中。ping cwb1.local 时,它解析为 192.168.1.23(符合预期),并且每个请求都超时(也符合预期)。有趣的是,我从我的 /etc/hosts 文件中删除了此条目,然后运行:

  • dscacheutil-刷新缓存
  • sudo discoveryutil mdnsflushcache
  • sudo discoveryutil udnsflushcaches

仍然得到相同的结果:主机名解析,但数据包超时。

那么,我的 Mac 是否也在其他地方传播/镜像此信息?或者是否存在某种未使用上述缓存清除命令清除的缓冲区?

编辑2 因此,重新启动后,主机名记录似乎终于消失了。这非常有力地表明幻影记录存储在我的 Mac 上。但在重新启动之前,这个幻影 DNS 记录存储在哪里/如何存储?我如何确保将来无需重新启动即可获得准确的 DNS 信息?

再次感谢所有能够提供见解的人!

答案1

Yosemite 更改了刷新 DNS 的命令:

sudo discoveryutil mdnsflushcache
sudo discoveryutil udnsflushcaches

根据https://discussions.apple.com/message/27173761?ac_cid=op123456#27173761,现在所有 .local 域名都通过 mdns/Bonjour 进行专门解析。由于 Ubuntu 默认启用 mdns/avahi-daemon,因此您可能根本不会访问 DNS 服务器。

您可以暂时禁用此功能,service avahi-daemon stop看看是否能解决问题。请参阅https://askubuntu.com/questions/205937/how-can-i-disable-avahi-daemon

相关内容