Linux

內部網路主機名的名稱解析

  • January 29, 2014

我計劃標準化主機命名約定,並希望設置一個“內部”網路以允許不同伺服器之間的輕鬆通信。我們從多個不同的專用伺服器提供商處購買伺服器,這些伺服器沒有物理連接到同一本地網路。目前在配置 Web 伺服器等時,我們使用每台機器的 IP 地址。我希望將其替換為“db1-fr.internalnet”之類的主機名,以簡化事情並使事情易於理解。在每台機器上處理名稱解析的最佳方法是什麼?我目前正計劃在主機中添加條目每個伺服器的文件,但是在可維護性方面,這在規模上似乎相當低。我想嘗試避免僅僅為了內部網路查找而託管一個完整的 DNS 伺服器,但如果這是推薦的方式,它肯定是一種選擇。那麼我的下一個問題是,配置此 DNS 伺服器的合適位置在哪裡?如果我更換伺服器範圍的 DNS 伺服器,事情就會開始崩潰。是否有用於本地查找的特定配置文件?

如果您樂於使用生產域,那麼您可以在內部網路上執行 DNSMasq,並讓您的所有伺服器都使用它作為記憶體解析器

這有 2 個好處

  1. 由於在本地記憶體結果,加快了整個內部網路的 DNS 解析
  2. 能夠使用 DNSMasq 的別名配置命令即時更改 DNS 結果

從 dnsmasq 範例配置中提供有關上述第 2 點的更多資訊:

# If you want to fix up DNS results from upstream servers, use the
# alias option. This only works for IPv4.
# This alias makes a result of 1.2.3.4 appear as 5.6.7.8
#alias=1.2.3.4,5.6.7.8
# and this maps 1.2.3.x to 5.6.7.x
#alias=1.2.3.0,5.6.7.0,255.255.255.0
# and this maps 192.168.0.10->192.168.0.40 to 10.0.0.10->10.0.0.40
#alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0

基本上這意味著,如果您曾經對通常在 DNS 中返回 IP 1.2.3.4 的地址進行 DNS 查找,它將即時重寫它以返回 5.6.7.8

將其替換為您的外部 IP 到內部 IP 映射,然後您將獲得勝利

如果您想使用“僅限內部區域”,另一種選擇是再次使用 DNSmasq 和 dnsmasq 伺服器上的 hosts 文件來定義您的內部 DNS 記錄,dnsmasq 使用您的 hosts 文件及其配置的外部解析器將 DNS 結果返回到其客戶端(預設情況下主機文件優先)就像您要將記錄添加到每個盒子上的主機文件但只需要在一個位置進行

當您對該機器上的主機文件進行更改時,請記住重新載入/重新啟動 dnsmasq

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