根據子網指定目標 DNS 伺服器
我們的辦公室子網是 10.1.10.0/24。
我有一個網關 (10.1.10.1) 將 DNS 請求轉發到執行 DNSmasq (10.1.10.2) 的伺服器。我有一條通往我們母公司網路 (10.2.2.0/24) 的 IPsec 隧道。
在 10.1.10.2 的 resolv.conf 中,我指定了兩 (2) 個名稱伺服器,8.8.8.8(Google DNS)和 10.2.2.2(母公司 DNS)。
我的問題是 10.2.2.2 還為另一個 10.1.10.0/24 提供服務。
這意味著有時反向 DNS 查找會返回外部 10.1.10.0/24 上的主機名,而不是我們的內部網路。我們可以通過使用 dig 或 IP 掃描器等工具看到這一點。此外,有時我們的 OS X bash 提示會顯示錯誤的主機名。
所以我建議的解決方案是將 10.1.10.0/24 內地址的所有反向 DNS 查找定向到 10.1.10.2 的內部查找表,但我不知道該怎麼做,或者這是否是正確的解決方案。
我應該注意到我無法控制 10.2.2.2。
編輯:我找到了另一種可能的解決方案。在將其添加為答案之前,我會對其進行測試。假設 10.1.10.1 使用 DNSmasq,我可以添加指定 –bogus-priv 選項。由於 10.1.10.1 也是我們的 DHCP 伺服器,因此對於 10.1.10.0/24 內不在 DHCP 租用文件中的主機的任何反向 DNS 查詢,它應該返回“no such domain”。
使用 dnsmasq –bogus-priv 選項對我有用。由於 10.1.10.1 也是我們的 DHCP 伺服器,因此對於 10.1.10.0/24 內不在 DHCP 租約文件中的主機的任何反向 DNS 查詢,它都會返回“無此類域”。
來自 dnsmasq(8):
-b, –bogus-priv 偽造的私人反向查找。所有在 /etc/hosts 或 DHCP 租約文件中找不到的私有 IP 範圍(即 192.168.xx 等)的反向查找都以“沒有這樣的域”來回答,而不是向上游轉發。
試試這個:設置一個 DNS 伺服器,它將正確地服務於 revs(以及你想要的任何其他東西),但會將其餘的轉發到 10.2.2.2。我假設您可以在客戶端電腦上將 DNS 從 10.2.2.2 更改為 10.1.10.2。如果您不能這樣做,請在路由器上將網路流量抓取到 10.2.2.2 並將其重定向(當然 10.1.10.2 除外)。這應該透明地工作。