企業開源 DNS 服務應用概述
在 Internet 上域名與 IP 地址之間是一一對應的,域名雖然便于人們記憶,但機器之間只能互相認識 IP 地址,它們之間的轉換工作稱為域名解析,域名解析需要由專門的域名解析服務器來完成,DNS 就是進行域名解析的服務器。DNS 是域名系統 Domain Name System 的縮寫,該系統用于命名組織到域層次結構中的計算機和網絡服務。DNS 命名用于 Internet 等 TCP/IP 網絡中,通過用戶友好的名稱查找計算機和服務。當用戶在應用程序中輸入 DNS 名稱時,DNS 服務可以將此名稱解析為與之相關的其他信息,如 IP 地址。因為,用戶在上網時輸入的網址,是通過域名解析系解析找到相對應的 IP 地址,這樣才能上網。其實,域名的最終指向是 IP。
DNS 是一個分層級的分散式名稱對應系統,看起來有點像電腦的目錄樹結構。在最頂端的是一個“.”(root),然后其下分為好幾個基本類別名稱,如 com、org、edu 等。再下面是組織名稱,如 sun、yale 等。繼而是主機名稱,如 eng、cs、ntu 等。如圖 1 所示的 DNS 域名空間的分層結構:
圖 1.DNS 域名空間的分層結構
值得一提的是,因為當初 Internet 是從美國發起的,所以當時并沒有國域名稱。但隨著后來 Internet 的蓬勃發展,DNS 也加進了諸如 cn、jp、au 等國域名稱。所以一個完整的 DNS 名稱就好像是這樣的 www.xyz.com.cn 而整個名稱對應的就是一個 IP 地址了。在開始的時候 root 下面只有六個組織類別:
edu:教育學術單位
org:組織機構
net:網路通訊單位
com:公司企業
gov:政府機關
mil:軍事單位
不過自從組織類別名稱開放以後各種各樣五花八門的名稱也相繼出現,但無論如何取名的規則最好量適合網站性質。除了原來的類別資料由美國的 NIC(Network Information Center)管理之外,其它在國域以下的類別分別由該國的 NIC 管理。
DNS 系統的組成
DNS 系統基于客戶機 / 服務器模式,從概念上說它主要由三個部分組成:
(1)域名空間:域名空間中的記錄標識一組主機并提供它們的有關信息。域中的每一個節點都有它的有關信息的數據庫。查詢命令試圖從這個數據庫中提取適當的信息。簡單地說,域名空間是所有不同類型信息的列表,這些信息是域名、IP 地址、郵件別名和那些在 DNS 系統中能查到的內容。
(2)域名服務器:保持并維護域名空間中的數據的程序。每個域名服務器含有一個域名空間子集的完整信息,并保存其它有關部分的信息。一個域名服務器擁有它控制范圍的完整信息??刂频男畔磪^進行劃分,區可以分布在不同的域名服務器上,以便為每個區提供服務。每個域名服務器都知道所有負責其他區的域名服務器。如果來了一個請求,它請求給定域名服務器負責的那個區的信息,那么這個域名服務器只是簡單地返回信息。但是,如果請求是不同區的信息,那么這個域名服務器就要與控制該區的相應服務器聯系。
(3)解析器:解析器是簡單的程序或子程序庫,它從服務器中提取信息以響應對域名空間內主機的查詢。
DNS 是一個很復雜的概念,下表列出了常用的 DNS 術語:
域:代表網絡一部分的邏輯實體或組織。
域名:主機名的一部分,它代表包含這個主機的域。它可以和域交換使用。
主機:網絡上的一臺計算機。
節點:網絡上的一臺計算機。
域名服務器:提供 DNS 服務的計算機,它將 DNS 名字轉化為 IP 地址。
解析:把一個域名轉化為與其相應的 IP 地址的過程。
解析器:從域名服務器中提取 DNS 信息的程序或庫子程序。
反向解析:將給出的 IP 地址轉化為其相應的 DNS 名字。
欺騙:使網絡看上去好象具有不同的 IP 地址或域名的行為。
DNS 服務器的類型
DNS 域名服務器是用來存儲主機 - 域名映射信息的,這些服務器具體又可以分為 3 類:
(1)主 DNS 服務器(primary name server):它是特定域所有信息的權威性信息源。它從域管理員構造的本地磁盤文件中加載域信息,該文件(區文件)包含著該服務器具有管理權的一部分域結構的最精確信息。主服務器是一種權威性服務器,因為它以絕對的權威去回答對其管轄域的任何查詢。
(2)輔助 DNS 服務器(secondary name server):它可從主服務器中復制一整套域信息。區文件是從主服務器中復制出來的,并作為本地磁盤文件存儲在輔助服務器中。這種復制稱為“區文件復制”。在輔助域名服務器中有一個所有域信息的完整拷貝,可以有權威地回答對該域的查詢。因此,輔助域名服務器也稱作權威性服務器。配置輔助域名服務器不需要生成本地區文件,因為可以從主服務器中下載該區文件。
(3)高速緩存服務器(caching-only server):可運行域名服務器軟件,但是沒有域名數據庫軟件。它從某個遠程服務器取得每次域名服務器查詢的結果,一旦取得一個,就將它放在高速緩存中,以后查詢相同的信息時就用它予以回答。高速緩存服務器不是權威性服務器,因為它提供的所有信息都是間接信息。對于高速緩存服務器只需要配置一個高速緩存文件,但最常見的配置還包括一個回送文件,這或許是最常見的域名服務器配置。
DNS 的工作原理
DNS 基于 C/S(Client/Server,客戶機 / 服務器)模式,因而分為 Client 和 Server 兩種角色。Client 扮演詢問的角色,也就是向 Server 詢問一個 Domain Name,而 Server 必須要回答此 Domain Name 所對應的真正 IP 地址。而當地的 DNS 先會查自己的資料庫。如果自己的資料庫沒有,則會往該 DNS 上所設的其他 DNS 進行求助詢問,依此得到答案之后,將收到的答案存起來,并回答客戶。
DNS 服務器會根據不同的授權區(Zone),記錄所屬該網域下的各名稱資料,這個資料包括網域下的次網域名稱及主機名稱。在每一個名稱服務器中都有一個高速緩存區(Cache),這個 高速緩存區的主要目的是將該名稱服務器所查詢出來的名稱及相對的 IP 地址記錄在高速緩存區中,這樣當下一次還有另外一個客戶端到次服務器上去查詢相同的名稱時,服務器就不用在到別臺主機上去尋找,而直接可以從緩存區中找到該名稱記錄資料,傳回給客戶端,以加速客戶端對名稱查詢的速度。
原文轉自:http://www.ibm.com/developerworks/cn/linux/1306_liyang_securedns/