內部 DNS 所需的建議
我正在設置新的伺服器環境,包括 70 多台伺服器,所有伺服器都執行 Linux(Redhat/CentOS 混合)。我想設置幾個 DNS 伺服器(主要/次要),以便在所有應該能夠使用的伺服器上使用/配置主要關心以下事情。
1. 用於解析本地伺服器條目的權威 DNS。
我想將簡單的域名分配給像 db1.example.int
或 app1.example.int 這樣的伺服器(主要是 A 記錄) 基本想法是伺服器應該能夠通過那裡的(內部)dns 名稱相互訪問。
2.公共域(如google.com)的遞歸/記憶體DNS解析。
對於解析本地域 (example.int) 以外的任何 DNS 條目,應將查詢發送到配置為轉發器的上游 DNS 伺服器。
目前我正在為此目的探索 BIND & dnsmasq。我應該使用 BIND 還是應該嘗試 dnsmasq(禁用 dhcp - 因為我所有的伺服器都將使用靜態 IP。)如果在類似的設置上工作,請分享您的想法和經驗。
通常,這稱為“拆分 DNS”。您創建了一個系統,其中在公司外部看到的 DNS 記錄與在公司內部看到的 DNS 記錄不同。特別是,外人看到 www.example.com 和其他外部可見的主機。公司內部所有機器都有DNS記錄……這些記錄在外面是看不到的。
- 選擇一個內部域。
通常,公司內部的機器位於公司域的子域中。例如,如果您的公司是 example.com,那麼裡面的所有機器都是 MACHINENAME.corp.example.com。這樣做的問題是您永遠不能使用“corp.example.com”作為外部 DNS 名稱。
警告:我曾經看到一家公司使用“inside”而不是“corp”。當行銷部門想要創建一個名為“inside.example.com”的外部網站(使用他們產品的“內部人員指南”)時,它變成了一場政治噩夢。
警告:我強烈建議增加一個層次結構。MACHINENAME.LOCATION.corp.example.com。“位置”可以是總部的“hq”,紐約銷售辦事處的“nyc”等。大多數組織使用 3 個字母的程式碼,通常是最近的機場程式碼。
當我在一家公司時,我們在總部的每台機器都是“MACHINENAME.corp.example.com”,因為我們認為我們不會有當地辦事處。當我們在其他地方開設大型辦公室時,它們是“MACHINENAME.SITE.corp.example.com”。我們編寫的每個工具都必須“特殊情況”,即總部不同。最終,我們不得不將總部更改為與所有其他站點一樣。這是一個痛苦的過渡。然而,我看到公司一次又一次地犯這個錯誤。因此,即使您沒有超過一棟建築的增長計劃,我仍然推薦 MACHINENAME.LOCATION.corp.example.com。
- 在您的 DNS 伺服器上配置“拆分 DNS”或 DNS“視圖”。
BIND 和其他 DNS 系統可以配置為根據 DNS 請求的來源或 DNS 請求出現的介面提供不同的答案。
例如,如果您的 DNS 伺服器在公司內部有 1 個 NIC,在公司外部有 1 個 NIC:
網卡內部:
- LOCATION.corp.example.com(每個位置)
- corp.example.com
- example.com.
- 所有其他域都使用 DNS“轉發器”
網卡外:
- example.com(與內部 nic 使用的 zonefile 相同)
- 禁用任何“遞歸”或轉發。
您還可以擁有 2 台不同的機器,每台都有不同的配置。
軟體:
注意:我不認為 dnsmasq 可以拆分 DNS。BIND 可以,就像大多數其他“企業”產品一樣。在手冊中查找“視圖”或“拆分 DNS”。