为什么 ping 不返回本地 DNS 缓存结果?(在内部网络上使用 DNS 缓存服务器。)

为什么 ping 不返回本地 DNS 缓存结果?(在内部网络上使用 DNS 缓存服务器。)

还有另一篇关于此的帖子nslookup 可以工作,但是 ping 不可以。我读过一些论坛帖子,但找不到与我的设置和问题相关的任何内容,在内部网络上解析外部域名

我的实验室:

  • VMWare Workstation 11
  • Windows 2012 R2 数据中心版服务器

    1. DC1.ad.example.com- AD 和 DNS、INT NIC
    2. DC2.ad.example.com- AD 和 DNS、INT NIC
    3. DNS1.ad.axample.com- 仅限 DNS,不是 AD 的成员。INT、EXT NIC。

该网络仅供 AD 成员内部使用。服务器DNS1 不是 AD 的成员包含两个 NIC,一个位于 AD 网络内部,另一个位于 Internet 外部。DNS1 仅用作 DNS 缓存服务器,目的是允许内部网络 (AD) 计算机能够解析外部 IP。与此问题相关的实验的目的是学习 AD 部署的最佳实践,包括网络设计和 DNS。

DNS 配置:

DC1 和 DC2 都设置了到 DNS1 的转发器。AD 之外的查询会转到那里,并在收到来自内部网络计算机的请求后进行缓存。Nslookup 确认,使用这两个名称服务器 DC1 和 DC2,我们可以解析外部域名(我可以看到它们在收到来自 DC1/2 的请求后被缓存在 DNS1 上)。

问题:

然而,当我ping 失败,不显示 IP。这是为什么?我预计至少会打印一个 IP 并且无法访问主机或类似错误。域名可见在 DC1/2 上的本地缓存中,但 ping 无法解析或显示它。

我最终为 DC2 添加了外部 NIC,并且能够 ping 通,没有任何问题。这也让我开始怀疑[我实际上为什么要尝试完成这个外部名称解析。] 我预计 ping 会出现“无路由”或其他错误,但我也预计它会解析(或显示解析的 IP),然后在尝试查找主机时出现故障。但是,它就是失败了。有人能解释一下原因吗?如果无法连接到网络,ping 会放弃吗?

下面是一系列演示所有这些的命令:

PS C:\Users\Administrator> ipconfig /flushdns

Windows IP 配置

已成功刷新 DNS 解析器缓存。
PS C:\Users\Administrator> ipconfig /displaydns

Windows IP 配置

    dc1.ad.polishpaul.net
    ----------------------------------------
    记录名称....:dc1.ad.polishpaul.net
    记录类型. . . . : 1
    生存时间...:1197
    数据长度...: 4
    第 ...... 节:答案
    A(主机)记录...:192.168.55.11


PS C:\Users\Administrator> ping google.com
Ping 请求无法找到主机 google.com。请检查名称并重试。
PS C:\Users\Administrator> ipconfig /displaydns

Windows IP 配置

    dc1.ad.polishpaul.net
    ----------------------------------------
    记录名称....:dc1.ad.polishpaul.net
    记录类型. . . . : 1
    生存时间...:1186
    数据长度...: 4
    第 ...... 节:答案
    A(主机)记录...:192.168.55.11

    google.com
    ----------------------------------------
    记录名称.... : google.com
    记录类型. . . . : 1
    生存时间...:293
    数据长度...: 4
    第 ...... 节:答案
    A(主机)记录...:216.58.217.142

PS C:\Users\Administrator> nslookup
默认服务器:dc1.ad.polishpaul.net
地址:192.168.55.11

> google.com
服务器:dc1.ad.polishpaul.net
地址:192.168.55.11

非权威答案:
名称:google.com
地址:2607:f8b0:4006:806::1005
          216.58.217.142

PS C:\用户\管理员>
PS C:\Users\Administrator># 外部网卡现已添加
PS C:\Users\Administrator> ping google.com
使用 32 字节数据对 google.com [74.125.226.14] 执行 Ping 操作:
来自 74.125.226.14 的回复:字节=32 时间=11ms TTL=128

谢谢,保罗

答案1

我发现,虽然名称解析与 nslookup 兼容,或者域名解析在本地缓存,如果没有到目的地的路由,ping将会失败,并且永远不会显示IP。

我在另一个没有多宿主的实验室中遇到了这个问题。删除默认网关会导致 ping 域名时失败,并显示“cauld not find host”,而 ping IP 时会显示“transmit failed”错误:

C:\Users\pawel>ping google.com
Ping request could not find host google.com. Please check the name and try again

C:\Users\pawel>ping 173.194.123.101

Pinging 173.194.123.101 with 32 bytes of data:
PING: transmit failed. General failure.

相关内容