Windows 7 DNS 客户端如何工作?

Windows 7 DNS 客户端如何工作?

我在 Linux 机器上的家庭网络上使用本地 DHCP 和 DNS 服务器。它运行的是 CentOS 6.3 和 dnsmasq 2.48。

除了只能对 Windows 计算机进行本地 DNS 查找外,其他一切都运行正常。我的网络上有 Ubuntu、CentOS 和 Windows 计算机,有些是虚拟的,有些是物理的。我有一台名为 的计算机,boron域名名为localdomain

如果我ping boron在任何 Linux 机器上,我得到

[root@lithium lists]# ping -c3 boron
PING boron.localdomain (10.0.0.5) 56(84) bytes of data.
64 bytes from boron.localdomain (10.0.0.5): icmp_seq=1 ttl=64 time=0.740 ms
64 bytes from boron.localdomain (10.0.0.5): icmp_seq=2 ttl=64 time=0.478 ms
64 bytes from boron.localdomain (10.0.0.5): icmp_seq=3 ttl=64 time=0.458 ms

--- boron.localdomain ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.458/0.558/0.740/0.131 ms

如果我从 Windows 7 机器上执行此操作,我会得到:

Ping request could not find host boron. Please check the name and try again.

如果我尝试,ping boron.localdomain我会得到:

Pinging boron.localdomain [67.215.65.132] with 32 bytes of data:
Reply from 67.215.65.132: bytes=32 time=16ms TTL=57
Reply from 67.215.65.132: bytes=32 time=188ms TTL=57
Reply from 67.215.65.132: bytes=32 time=15ms TTL=57
Reply from 67.215.65.132: bytes=32 time=14ms TTL=57

Ping statistics for 67.215.65.132:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 14ms, Maximum = 188ms, Average = 58ms

这显然是错误的。为什么它会传到互联网?为什么我的 Windows 计算机无法将boron主机名解析为 FQDN?我的 Windows 计算机和 Linux 计算机从 DHCP 获取其网络配置。

更新

如果我ipconfig /all在 Windows 中执行此操作,它看起来正如我预期的那样:

Windows IP Configuration

   Host Name . . . . . . . . . . . . : lanthanum
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : .localdomain

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . : .localdomain
   Description . . . . . . . . . . . : Realtek PCIe GBE Family Controller
   Physical Address. . . . . . . . . : 50-E5-49-38-FC-A2
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 10.0.0.57(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : 23 August 2012 13:58:45
   Lease Expires . . . . . . . . . . : 24 August 2012 07:58:48
   Default Gateway . . . . . . . . . : 10.0.0.6
   DHCP Server . . . . . . . . . . . : 10.0.0.6
   DNS Servers . . . . . . . . . . . : 10.0.0.6
                                       208.67.222.222
                                       208.67.220.220
   NetBIOS over Tcpip. . . . . . . . : Enabled

当我这样做时,nslookup我得到:

Server:  carbon.localdomain
Address:  10.0.0.6

*** carbon.localdomain can't find boron: Unspecified error

然而如果我ifconfig -a在 Linux 中这样做,我会得到:

[root@nitrogen ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:29:AF:EC:2A
          inet addr:10.0.0.7  Bcast:10.0.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:187687 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5857 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:23910700 (22.8 MiB)  TX bytes:712964 (696.2 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:329894 errors:0 dropped:0 overruns:0 frame:0
          TX packets:329894 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:67153143 (64.0 MiB)  TX bytes:67153143 (64.0 MiB)

nslookup

[root@nitrogen ~]# nslookup boron
Server:         10.0.0.6
Address:        10.0.0.6#53

Name:   boron
Address: 10.0.0.5

两台机器位于同一网络上,使用同一个 DHCP 服务器。

更新2

我以为问题已经解决,但我遇到了间歇性的 DNS 解析问题,但仅限于我的 Windows 7 机器。我所有的 Linux 机器都很好。当我从 Windows 切换到 Windows 2008 Server 时,会发生以下ping情况nslookup

C:\Users\mark>nslookup magnesium
Server:  carbon.localdomain
Address:  10.0.0.6

Name:    magnesium.localdomain
Address:  10.0.0.12


C:\Users\mark>ping magnesium

Pinging magnesium.localdomain [67.215.65.132] with 32 bytes of data:
Reply from 67.215.65.132: bytes=32 time=267ms TTL=57
Reply from 67.215.65.132: bytes=32 time=162ms TTL=57
Reply from 67.215.65.132: bytes=32 time=510ms TTL=57
Reply from 67.215.65.132: bytes=32 time=146ms TTL=57

Ping statistics for 67.215.65.132:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 146ms, Maximum = 510ms, Average = 271ms

对于 Linux:

[root@beryllium ~]# ping -c4 magnesium
PING magnesium.localdomain (10.0.0.12) 56(84) bytes of data.
64 bytes from magnesium.localdomain (10.0.0.12): icmp_seq=1 ttl=128 time=0.176 ms
64 bytes from magnesium.localdomain (10.0.0.12): icmp_seq=2 ttl=128 time=0.634 ms
64 bytes from magnesium.localdomain (10.0.0.12): icmp_seq=3 ttl=128 time=0.685 ms
64 bytes from magnesium.localdomain (10.0.0.12): icmp_seq=4 ttl=128 time=0.263 ms

--- magnesium.localdomain ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.176/0.439/0.685/0.223 ms
[root@beryllium ~]# nslookup magnesium
Server:         10.0.0.6
Address:        10.0.0.6#53

Name:   magnesium.localdomain
Address: 10.0.0.12

更新 3

我停止了 Windows 7 计算机上的 Windows DNS 客户端net stop dnscache,现在它运行正常。如果 DNS 客户端打开,DNS 可以正常工作,那就太好了,但是没有它我可能也可以正常工作,您觉得呢?

答案1

选项 1:配置您的 dhcp 服务器以提供 DNS 后缀信息(dhcp 选项 015) 选项 2:在 Windows 客户端上配置 ipV4 协议:- 选择高级 - DNS - 并将“此连接的 dns 后缀”设置为您的本地后缀

答案2

如果您打开命令提示符窗口 (cmd) 并输入,ipconfig /all您可能会看到从 DHCP 服务器(例如您的 Internet 路由器)获取的“连接特定的 DNS 后缀”和“DNS 后缀搜索列表”,并且在执行 DNS 查找时附加到任何不合格的名称。

您还将看到“DNS 服务器”,同样由 DHCP 提供。

内置功能nslookup也会显示这一点。

如果其中任何一个有误,则表明您的 DHCP 服务器没有发送应发送的信息(我曾经为第二条 ADSL 线路添加了路由器,但忘记在旧路由器中禁用 DHCP)

但是,如果它没有从 DNS 获得可接受的答案,Windows 就会尝试 NetBIOS 名称服务。

使用 WireShark 等网络嗅探器可以清楚地了解正在发送哪些 DNS 查询、带有哪些后缀以及发送到哪些 DNS 服务器。

答案3

如果能够通过 DNS 客户端让 DNS 正常工作就好了,但是没有它也许也可以,您觉得呢?

DNS 客户端默认为开启状态,以便与不具备完整 DNS 可见性的系统保持向后兼容性,尤其是登录前不具备完整 DNS 可见性的域系统 - 这使得无法找到身份验证服务器。如果您可以在关闭客户端的情况下登录 Windows,则无需将其打开。

但是,DNScache 服务在 Win7 上可能有一些描述不清的功能。特别是,我不确定它与 DNSSEC 和 DNS 注册的关系。测试注册很容易:您的工作站是否在 DNS 中注册?是否需要注册?您可以使用免费的 Web 工具测试您是否正在使用 DNSSEC。

相关内容