DNS 配置、掛載和電子郵件
這是我在 debian 機器上的一個 resolv.conf 文件(我們稱之為它
deb01
):search mydomain.com nameserver 8.8.8.8 nameserver 8.8.4.4 nameserver 10.20.232.11 ##local DNS server nameserver 10.20.232.12 ##local DNS server
我還有另一個 debian 盒子,我們稱之為
deb02
.我的問題,從 deb01 看到:
- 我無法在 LAN 上 ping deb02(
ping deb02
返回未知主機)但ping deb02.local
可以正常工作。host deb02
或host deb02.local
返回Host not found: 3(NXDOMAIN)
nslookup deb02
或者nslookup deb02.local
也不工作- 我無法在 deb01 上從 deb02 安裝文件夾(在 deb01 的 fstab 中:
deb02:/folder /mnt/myserver nfs rw 0 0
-我也嘗試過附加.local
,但沒有區別)- 我有一個執行良好的 postfix 郵件伺服器
如果我更改 resolv.conf 文件中的順序以首先放置本地 DNS 伺服器,那麼上面的 1、2、3 和 4 可以正常工作,使用簡單的伺服器名稱:deb02。
但是發送到本地地址@mydomain.com 的電子郵件會卡住(連接超時),儘管我可以毫無問題地向其他域發送電子郵件。這可能是由於本地 DNS 伺服器沒有任何 MX 記錄。
萬一這很重要,網路的其餘部分都是基於 Windows 的。
如果可能的話,使用簡單的伺服器名稱:deb02,使 1、2、3、4 和 5 工作的正確 DNS 配置是什麼?
我猜你有一個像 "
hosts: files mdns dns
" in的行/etc/nsswitch.conf
。這控制了哪些源用於進行名稱查找——files
告訴系統查詢 /etc/hosts,mdns
使用 avahi 守護程序通過多播 DNS (Bonjour/ZeroConf) 查找名稱,並且dns
是對/etc/resolv.conf
. (只有當他們在同一個網路上時,pingdeb02.local
可能才會起作用;中間有路由器,或者如果 deb02 已關閉一段時間,它也會失敗。)
host
、nslookup
、 和dig
是專門進行 DNS 查詢的工具,並繞過 ; 中列出的其他方法nsswitch.conf
;ping
將通過它們。預設情況下,resolv.conf 條目會按順序查詢,僅當您收到超時或內部錯誤 (
SERVFAIL
) 時才會移動到列表中的下一個條目。不存在的名稱 (NXDOMAIN
) 不會將您移到列表的下方。因此,如果您有一個內部域,則應該首先列出知道它的伺服器。當那是 MS Active Directory 時,您只想在 resolv.conf 中列出您的 MSAD DNS 伺服器——通常是您的域控制器。由於聽起來您的 AD 域名與
mydomain.com
您的搜尋路徑中的匹配,並且您的 AD DNS 沒有為您的域提供任何 MX 記錄,因此 postwill 採用回退行為,即嘗試從對 A 記錄的查詢中向主機傳遞目標(此處為mydomain.com
自身)。AD 伺服器將返回該查詢的域控制器集,並且 AD DC 通常不執行 MTA,這就是您看到連接超時的原因。通常,您將擁有一個本地郵件伺服器,您將其配置為智能主機(
relayhost
是後綴設置),或者您可以為 mydomain.com 添加一個後綴傳輸規則,以指向您的域的正確郵件伺服器。