想像一下,如果我們必須記住我們每天使用的所有網站的IP地址會是什麼樣子。即使我們有驚人的記憶力,瀏覽網站的過程也將變得極其緩慢和耗時。
那麼,如果我們需要訪問多個網站或使用位於同一台機器或虛擬主機中的多個應用程序呢?這將是我能想到的最糟糕的頭痛之一 – 更不用說與網站或應用程序關聯的IP地址可能在事先通知的情況下發生變更。
僅僅想到這一點就足以讓人在一段時間後停止使用互聯網或內部網絡。
這正是沒有域名系統(也稱為DNS)的世界將會是什麼樣子。幸運的是,這項服務解決了上述所有問題 – 即使IP地址和名稱之間的關係發生變化。
因此,在本文中,我們將學習如何配置和使用一個簡單的DNS服務器,這項服務將允許將域名轉換為IP地址,反之亦然。
介紹DNS名稱解析
對於不經常更改的小型網絡,可以使用/etc/hosts文件作為域名到IP地址解析的基本方法。
通過非常簡單的語法,這個文件允許我們將名稱(和/或別名)與IP地址關聯起來,如下所示:
[IP address] [name] [alias(es)]
例如,
192.168.0.1 gateway gateway.mydomain.com 192.168.0.2 web web.mydomain.com
因此,您可以通過其名稱、web.mydomain.com別名或其IP地址訪問Web機器。
對於較大的網路或經常變動的網路,使用/etc/hosts文件來將域名解析為IP地址並不是一個可接受的解決方案。這就是專用服務的需求所在。
在幕後,一個DNS伺服器會查詢一個以樹形式呈現的大型資料庫,該資料庫從根節點(“.”)
區域開始。
以下圖像將幫助我們進行說明:

在上面的圖像中,根節點(.)
區域包含com、edu和net域。這些域中的每一個(或可以)由不同組織管理,以避免依賴於一個大型的中央組織。這樣可以以分層方式適當地分發請求。
讓我們看看幕後發生了什麼:
1. 當客戶端對DNS伺服器查詢web1.sales.me.com時,伺服器將查詢發送到頂級(根)DNS伺服器,該伺服器將查詢指向.com
區域的名稱伺服器。
這樣,查詢被發送到下一級名稱伺服器(在me.com
區域中),然後到sales.me.com
。這個過程將根據需要重複進行,直到FQDN(完全合格域名,在這個例子中是web1.sales.me.com)被歸屬區域的名稱伺服器返回。
2. 在這個例子中,sales.me.com
中的名稱伺服器回應到位址 web1.sales.me.com
,並返回所需的域名 – IP 關聯以及其他相關信息(如果配置了的話)。
所有這些信息都被發送到原始的 DNS 伺服器,然後由該伺服器將其返回給最初發出請求的客戶端。為了避免為將來的相同查詢重複相同步驟,該查詢的結果被存儲在 DNS 伺服器中。
這就是為什麼這種設置通常被稱為遞歸、快取 DNS 伺服器 的原因。
Source:
https://www.tecmint.com/setup-recursive-caching-dns-server-and-configure-dns-zones/