1. 程式人生 > >DNS 協議入門

DNS 協議入門

DNS 入門

域名系統(英文:Domain Name System,縮寫:DNS)是網際網路的一項服務。它作為將域名和 IP 地址相互對映的一個分散式資料庫,能夠使人更方便地訪問網際網路。DNS 使用 TCP 和 UDP 埠 53。當前,對於每一級域名長度的限制是 63 個字元,域名總長度則不能超過 253 個字元。

關鍵詞:DNS, 域名解析

簡介

什麼是 DNS?

DNS 是一個應用層協議。

域名系統 (DNS) 的作用是將人類可讀的域名 (如,www.example.com) 轉換為機器可讀的 IP 地址 (如,192.0.2.44)。

什麼是域名?

域名是由一串用點分隔符 .

組成的網際網路上某一臺計算機或計算機組的名稱,用於在資料傳輸時標識計算機的方位。域名可以說是一個 IP 地址的代稱,目的是為了便於記憶後者。例如,wikipedia.org 是一個域名,和 IP 地址 208.80.152.2 相對應。人們可以直接訪問 wikipedia.org 來代替 IP 地址,然後域名系統(DNS)就會將它轉化成便於機器識別的 IP 地址。這樣,人們只需要記憶 wikipedia.org 這一串帶有特殊含義的字元,而不需要記憶沒有含義的數字。

DNS 的分層

域名系統是分層次的。

在域名系統的層次結構中,各種域名都隸屬於域名系統根域的下級。域名的第一級是頂級域,它包括通用頂級域,例如 .com

.net.org;以及國家和地區頂級域,例如 .us.cn.tk。頂級域名下一層是二級域名,一級一級地往下。這些域名向人們提供註冊服務,人們可以用它建立公開的網際網路資源或執行網站。頂級域名的管理服務由對應的域名註冊管理機構(域名註冊局)負責,註冊服務通常由域名註冊商負責。

DNS 服務型別

  • 授權型 DNS - 一種授權型 DNS 服務提供一種更新機制,供開發人員用於管理其公用 DNS 名稱。然後,它響應 DNS 查詢,將域名轉換為 IP 地址,以便計算機可以相互通訊。授權型 DNS 對域有最終授權且負責提供遞迴型 DNS 伺服器對 IP 地址資訊的響應。Amazon Route 53 是一種授權型 DNS 系統。
  • 遞迴型 DNS - 客戶端通常不會對授權型 DNS 服務直接進行查詢。而是通常連線到稱為解析程式的其他型別 DNS 服務,或遞迴型 DNS 服務。遞迴型 DNS 服務就像是旅館的門童:儘管沒有任何自身的 DNS 記錄,但是可充當代表您獲得 DNS 資訊的中間程式。如果遞迴型 DNS 擁有已快取或儲存一段時間的 DNS 參考,那麼它會通過提供源或 IP 資訊來響應 DNS 查詢。如果沒有,則它會將查詢傳遞到一個或多個授權型 DNS 伺服器以查詢資訊。

記錄型別

DNS 中,常見的資源記錄型別有:

  • NS 記錄(域名服務) ─ 指定解析域名或子域名的 DNS 伺服器。
  • MX 記錄(郵件交換) ─ 指定接收資訊的郵件伺服器。
  • A 記錄(地址) ─ 指定域名對應的 IPv4 地址記錄。
  • AAAA 記錄(地址) ─ 指定域名對應的 IPv6 地址記錄。
  • CNAME(規範) ─ 一個域名對映到另一個域名或 CNAME 記錄( example.com 指向 www.example.com )或對映到一個 A記錄。
  • PTR 記錄(反向記錄) ─ PTR 記錄用於定義與 IP 地址相關聯的名稱。 PTR 記錄是 A 或 AAAA 記錄的逆。 PTR 記錄是唯一的,因為它們以 .arpa 根開始並被委派給 IP 地址的所有者。

詳細可以參考:維基百科 - 域名伺服器記錄型別列表

域名解析

主機名到 IP 地址的對映有兩種方式:

  • 靜態對映 - 在本機上配置域名和 IP 的對映,旨在本機上使用。Windows 和 Linux 的 hosts 檔案中的內容就屬於靜態對映。
  • 動態對映 - 建立一套域名解析系統(DNS),只在專門的 DNS 伺服器上配置主機到 IP 地址的對映,網路上需要使用主機名通訊的裝置,首先需要到 DNS 伺服器查詢主機所對應的 IP 地址。

通過域名去查詢域名伺服器,得到 IP 地址的過程叫做域名解析。在解析域名時,一般先靜態域名解析,再動態解析域名。可以將一些常用的域名放入靜態域名解析表中,這樣可以大大提高域名解析效率。

上圖展示了一個動態域名解析的流程,步驟如下:

  1. 使用者開啟 Web 瀏覽器,在位址列中輸入 www.example.com,然後按 Enter 鍵。
  2. www.example.com 的請求被路由到 DNS 解析程式,這一般由使用者的 Internet 服務提供商 (ISP) 進行管理,例如有線 Internet 服務提供商、DSL 寬頻提供商或公司網路。
  3. ISP 的 DNS 解析程式將 www.example.com 的請求轉發到 DNS 根名稱伺服器。
  4. ISP 的 DNS 解析程式再次轉發 www.example.com 的請求,這次轉發到 .com 域的一個 TLD 名稱伺服器。.com 域的名稱伺服器使用與 example.com 域相關的四個 Amazon Route 53 名稱伺服器的名稱來響應該請求。
  5. ISP 的 DNS 解析程式選擇一個 Amazon Route 53 名稱伺服器,並將 www.example.com 的請求轉發到該名稱伺服器。
  6. Amazon Route 53 名稱伺服器在 example.com 託管區域中查詢 www.example.com 記錄,獲得相關值,例如,Web 伺服器的 IP 地址 (192.0.2.44),並將 IP 地址返回至 DNS 解析程式。
  7. ISP 的 DNS 解析程式最終獲得使用者需要的 IP 地址。解析程式將此值返回至 Web 瀏覽器。DNS 解析程式還會將 example.com 的 IP 地址快取 (儲存) 您指定的時長,以便它能夠在下次有人瀏覽 example.com 時更快地作出響應。有關更多資訊,請參閱存活期 (TTL)。
  8. Web 瀏覽器將 www.example.com 的請求傳送到從 DNS 解析程式中獲得的 IP 地址。這是您的內容所處位置,例如,在 Amazon EC2 例項中或配置為網站終端節點的 Amazon S3 儲存桶中執行的 Web 伺服器。
  9. 192.0.2.44 上的 Web 伺服器或其他資源將 www.example.com 的 Web 頁面返回到 Web 瀏覽器,且 Web 瀏覽器會顯示該頁面。

注意:只有配置了域名伺服器,才能執行域名解析。

例如,在 Linux 中執行 vim /etc/resolv.conf 命令,在其中新增下面的內容來配置域名伺服器地址:

nameserver 218.2.135.1

Linux 上的域名相關命令

hostname

hostname 命令用於檢視和設定系統的主機名稱。環境變數 HOSTNAME 也儲存了當前的主機名。在使用 hostname 命令設定主機名後,系統並不會永久儲存新的主機名,重新啟動機器之後還是原來的主機名。如果需要永久修改主機名,需要同時修改 /etc/hosts/etc/sysconfig/network 的相關內容。

參考:http://man.linuxde.net/hostname

示例:

$ hostname
AY1307311912260196fcZ

nslookup

nslookup 命令是常用域名查詢工具,就是查 DNS 資訊用的命令。

參考:http://man.linuxde.net/nslookup

示例:

[[email protected] ~]# nslookup www.jsdig.com
Server:         202.96.104.15
Address:        202.96.104.15#53

Non-authoritative answer:
www.jsdig.com canonical name = host.1.jsdig.com.
Name:   host.1.jsdig.com
Address: 100.42.212.8

引用和引申