Domain-Name-System

內部 DNS 所需的建議

  • July 7, 2014

我正在設置新的伺服器環境,包括 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記錄……這些記錄在外面是看不到的。

  1. 選擇一個內部域。

通常,公司內部的機器位於公司域的子域中。例如,如果您的公司是 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。

  1. 在您的 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”。

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