Windows

DNS 無法解析主機名;nslookup 可以

  • September 11, 2018

我在 Windows 7 上有一個使用者試圖訪問 DNS 名稱為 windows.cs 的本地伺服器。我們有兩個內部 DNS 伺服器。DHCP 伺服器為使用者分配兩個內部 DNS 伺服器作為主要和輔助,然後將我們的 ISP DNS 作為三級 DNS 伺服器。

有時,使用者無法訪問 windows.cs 上的網站。如果我 ping 它,它說它無法解析主機名。我刷新 DNS 記憶體,然後當我顯示 dns 記憶體時,它具有以下內容:

windows.cs - 名稱不存在

然而,如果我使用 nslookup,它預設查詢主 DNS 伺服器(我們的內部伺服器)並查詢 windows.cs,它會返回正確的 IP 地址。

那麼為什麼 Windows 不能使用 ping 解析主機名,但使用 nslookup 工具時可以呢?我該如何解決這個問題?

從您所說的看來,對 windows.cs 的請求不時會發送到 ISP DNS 伺服器。然後 nxdomain 結果由 Windows 的 DNS 客戶端記憶體,因此用於使用 Web 瀏覽器、ping 等進行任何重試。清除記憶體 (ipconfig /flushdns) 應該強制 Windows DNS 客戶端重試查詢,但不能保證它不會再去 ISP DNS 伺服器。

ping 無法解析主機名但 nslookup 可以解析的原因是 nslookup 是一種繞過 Windows DNS 客戶端的低級工具。它使用您告訴它的任何 DNS 伺服器(預設情況下是第一個),並即時進行查詢。您可以通過在 nslookup 提示符下鍵入來更改它查詢的 DNS 伺服器server <host>,其中 host 是 IP 或 FQDN。

但是,Windows DNS 客戶端只會查詢不在其記憶體中(或已過期)的條目。否則返回記憶體的結果。

Windows 客戶端使用 ISP DNS 伺服器的原因還不是很明顯。也許它最近無法解析本地伺服器(可能由於在另一個網路上),也許本地伺服器正在返回錯誤。或者,可能在高級 TCP/IP 設置 > DNS 下沒有正確排序。

就我個人而言,我更喜歡僅在工作站上使用本地 DNS 伺服器地址(由 DHCP 傳播),以簡化配置並避免此類問題。我很想知道在台式機上設置 ISP DNS 伺服器的基本原理。我無法想像有任何有效的性能原因,並且就冗餘而言,在大多數網路上兩個就足夠了(如果不添加第三個)。

引用自:https://serverfault.com/questions/282755