假網域的 DNS 伺服器,僅供內部測試使用(在 Linux 上)

假網域的 DNS 伺服器,僅供內部測試使用(在 Linux 上)

假設我在內部(10.0 或 192.168 類)LAN 上有幾台機器(或虛擬機),它們需要相互通信,但不是配置一個有點動態、乏味的保持更新的 /etc/hosts 文件(如新的虛擬機時不時地添加),我想設定一個內部DNS 伺服器。我的所有測試機器和虛擬機器都運行 Linux。對此我有一些疑問:

  1. 我可以設定 DNS 伺服器嗎?
  2. 我可以設定 /etc/resolv.conf 指向此伺服器的 DNS 伺服器來解析此私有/假網域中主機的所有電腦 IP 位址嗎?然而,對於真實/實際現有的網域,DNS 伺服器應該指向或從級聯的實際 DNS 伺服器(例如公共 DNS 伺服器)取得已解析的 IP 位址?後者用於透過 NAT 代理從測試機器存取通用公共互聯網。
  3. 我可以用 TinyDNS 來做這種性質的事情嗎?我發現 Bind 有點太嚇人了,也許對我的需求來說太過分了?

答案1

簡而言之,答案是肯定的,並且您的網域是真實的還是假的並不重要。一般來說,使用您擁有的東西(或您擁有的東西的子網域)來避免將來出現潛在問題是一個更好的主意。使用您擁有的真實網域還可以為該網域中的名稱取得真實的(公眾信任的)證書,而無需建立內部 PKI。

幾乎任何 DNS 軟體都可以支援您想要做的事情。它將充當“權威”和“遞歸”DNS 伺服器。它將對於(或其他)區域具有權威性example.com,並且遞歸是允許從互聯網上解決不具有權威性的查詢的部分。

因此,您的用戶端在其 resolv.conf 中僅指向您的 DNS 伺服器。對任何內容的查詢都example.com可以使用其記錄來解決。對其他任何內容的查詢將使 DNS 伺服器訪問互聯網以獲取答案,(可能)會快取它們,並將它們作為「非權威」回應傳回給客戶端。

答案2

我用網域解析出於類似目的。我讓它在樹莓派上運行。它充當我的網路的本機 DNS 伺服器,因此所有用戶端都會查詢它。如果該網域不在其本地資料庫或快取中,它會向 Internet DNS 伺服器進行查詢(我運行了一些測試來查看哪個回應時間最快,並選擇了它們)。

透過此設置,您可以同時擁有真實域名和“假”域名。例如,在開發網站時,我可能會將真實網域的 IP 位址變更為 dnsmasq 伺服器上的本機正在運作的位址。當我完成後,我希望它能夠訪問互聯網上的真實網站,我只需刪除該設定即可。 (請記住,這是一個我可以完全控制的小型網路。在更複雜的情況下,您不會希望像這樣來回更改事物)。

在 dnsmasq 中,你可以這樣做:

address=/myfakedomain.com/10.16.1.20

將 myfakedomain.com 的查詢重新導向到指定的 IP 位址。您甚至可以執行以下操作:

address=/plex/10.16.1.55

使用戶能夠鍵入關鍵字並存取網路上的服務。

我還使用它作為我的 DHCP 伺服器,這是我確保將其作為網路的主 DNS 伺服器的一種方法。

答案3

嘗試使用這個解決方案:https://github.com/mocktools/ruby-dns-mock 模仿任何類型的 DNS 記錄都很容易!

相關內容