我有一台在 Windows Server 2012 上具有活動目錄和 dns 的伺服器,具有以下子網域:
ac: alm.local <--- 10.0.0.3
DNS 主機:
javi.a.alm.local <---- 10.0.0.20
當我在Windows中解決時:
nslookup javi.a
server: localhost
address: 127.0.0.1
name: javi.a.alm.local
address: 10.0.0.20
但是當我進入 debian 時:
nslookup javi.a
Server: 10.0.0.3
Address: 10.0.0.3 # 53
** server can't find javi.a: NXDOMAIN
為什麼不解決?
resolv.conf:
nameserver 10.0.0.3
search alm.local
答案1
預設情況下,Linux 解析器不會將search
網域套用到已包含點的查詢名稱。因此javi.a
將被視為 FQDN,並且不會alm.local
附加網域。
您可以使用 來變更此行為ndots
option
。這表示名稱中可被視為 FQDN 的最小點數。它預設為1
.
在執行此操作之前,您還應該考慮手冊頁中的警告resolv.conf(5)
。
解析器查詢少於恩點 將依序使用搜尋路徑的每個組成部分嘗試其中的點(預設為 1),直到找到匹配項。對於具有多個子網域的環境,請閱讀選項 ndots:n下面以避免中間人攻擊和根 DNS 伺服器不必要的流量。請注意,如果列出的網域的伺服器不是本地的,則此過程可能會很慢,並且會產生大量網路流量,並且如果其中一個網域沒有可用的伺服器,則查詢將逾時。
以及以下文件options ndots
:
設定必須出現在給定名稱中的點數閾值資源查詢(3)(見解析器(3)) 在進行初始絕對查詢之前。 n 的預設值為 1,這表示如果名稱中有任何點,則在向其附加任何搜尋清單元素之前,將首先嘗試將該名稱作為絕對名稱。此選項的值預設上限為 15。
(請注意,這意味著該名稱在嘗試作為 FQDN 後將嘗試使用搜尋網域,但實際上這不會發生。根本沒有嘗試使用搜尋網域。這就是您今天在這裡發布貼文的原因。 )
所以在resolv.conf中你可以加:
options ndots:2
現在,帶有一個點的名稱將附加搜尋域,但帶有兩個或更多點的名稱則不會。正如手冊頁所述,如有必要,您可以將其設定為高達 15。