Linux

DNS 配置、掛載和電子郵件

  • August 26, 2016

這是我在 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 看到:

  1. 我無法在 LAN 上 ping deb02(ping deb02返回未知主機)但ping deb02.local可以正常工作。
  2. host deb02host deb02.local返回Host not found: 3(NXDOMAIN)
  3. nslookup deb02或者nslookup deb02.local也不工作
  4. 我無法在 deb01 上從 deb02 安裝文件夾(在 deb01 的 fstab 中:deb02:/folder /mnt/myserver nfs rw 0 0-我也嘗試過附加.local,但沒有區別)
  5. 我有一個執行良好的 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 已關閉一段時間,它也會失敗。)

hostnslookup、 和dig是專門進行 DNS 查詢的工具,並繞過 ; 中列出的其他方法nsswitch.confping將通過它們。

預設情況下,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 添加一個後綴傳輸規則,以指向您的域的正確郵件伺服器。

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