Ubuntu

Ubuntu resolv.conf,不去下一個域名伺服器?

  • October 9, 2014

我正在使用 Ubuntu 10.04 桌面,它預設帶有“網路管理器”(我非常懷疑)。我在解析 2 個不同名稱伺服器上的 DNS 區域時遇到問題。

解析.conf:

$ cat /etc/resolv.conf
#Generated by Network Manager
search example.org
nameserver 10.0.0.20 #public nameserver, contains public.example.org
nameserver 10.0.0.30 #private nameserver, contains private.example.org

和問題。首先列出的名稱伺服器將解析:

$ ping host.public.example.org
PING host.public.example.org (10.0.0.50) 56(84) bytes of data.

列出的一秒不會:

$ ping host.private.example.org
ping: unknown host host.private.example.org

但它就在那裡:

$ dig @10.0.0.30 host.private.example.org
...
;; ANSWER SECTION:
host.private.example.org.   3600    IN  A   10.0.0.60
...

如果我在 /etc/resolv.conf 中顛倒名稱伺服器的順序,則 host.private 將可以訪問,而 host.public 則不能。為什麼?從 resolv.conf 手冊頁:

如果有多個伺服器,則解析器庫會按列出的順序查詢它們。

不僅僅是 ping 有問題,當 Thunderbird 無法收到郵件時我注意到了這一點,因為郵件伺服器的 DNS 記錄在列出的第二個伺服器中。我在這裡嘗試做的事情不應該起作用嗎?

啊啊啊啊……真的不行啊。只要第一個名稱伺服器正在執行並且處於活動狀態,所有綁定請求都會轉到它。到達第二個名稱伺服器的唯一方法是,如果列表中的前一個名稱伺服器已經死亡並且在 LONG 超時之後。

為了解決您的問題,我猜您可能必須建構一個本地記憶體 DNS 伺服器配置並將兩個區域的名稱伺服器定向到兩個不同的伺服器。然後將您的解析器配置設置為使用主機的 IP。

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