Ubuntu
Ubuntu resolv.conf,不去下一個域名伺服器?
我正在使用 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。