DNS(三)如何安裝DNS服務器

前兩篇文章是從 DNS 使用的角度去理解 DNS 的,但是假如想進一步明白 DNS 內部運作原理,就有必要理解如何安裝 DNS 服務器。DNS 服務器有多種類型,理解類型是安裝 DNS 服務器的前提。同時從使用的角度看,理解 DNS 服務器類型,也能夠更加靈活的使用和理解 DNS 系統。

DNS 服務器類型

(1)權威 DNS 服務器,對于具備一定規模的企業來說,為了方便控制自己域名的解析,會自己搭建權威服務器。通過權威服務器能夠查詢特定 zone 的信息(先不用管什么是 zone)。這種 DNS 服務器沒有遞歸和迭代功能,只負責響應特定域名的解析。權威 DNS 服務器返回的結果永遠是最新的。

(2)Caching DNS Server

在自己電腦配置(比如 /etc/resolv.conf)的本地 DNS 服務器叫做 Caching DNS Server??蛻舳耍▽嶋H上是 system resolver)會向 Caching DNS 服務器發送遞歸域名解析請求,而 Caching DNS 服務器會迭代查詢域名解析結果。 對于上網的用戶來說,可以使用 ISP 提供的 Caching DNS 服務器,也可以使用類似 8.8.8.8 這樣的公共 DNS 服務器。

這種類型的 DNS 服務器一般企業內部會搭建,一方面是為了安全,所有的 DNS 查詢經過內部的機器進行查詢。另外一方面就是加速查詢結果。

(3)Forwarding DNS Server

對于客戶端來說,Forwarding DNS 服務器和 Caching DNS 服務器功能上沒有差別,但是在機制上兩者是不一樣的。它不會進行迭代查詢,而是將所有的請求轉發給其他的 DNS 服務器,然后緩存獲取到的結果。

安裝 DNS 服務器

這篇博文使用 bind 這個軟件來提供 DNS 服務器,安裝的環境是 Ubuntu 14.04.4 LTS。

安裝啟動或者調試 bind :

apt-get install bind9 bind9utils bind9-doc
named-checkconf #檢查配置文件有沒有錯誤
service bind9 restart #重新啟動 bind,修改配置文件后務必運行
tail -f  /var/log/syslog  #查看系統文件

相關的配置文件:

/etc/bind/named.conf #主文件,下面包含三個子文件

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

安裝 Caching DNS Server

配置比較簡單,只要修改 /etc/bind/named.conf.options 文件即可。

options {
    directory "/var/cache/bind";
    recursion yes;
    allow-query { any; };
    dnssec-validation auto;
    auth-nxdomain no;  
    listen-on-v6 { any; };
};

重要的參數就是 recursion,開啟就行,表示允許客戶端進行遞歸查詢。一般非公共的 DNS 只允許內部的客戶端進行 DNS 查詢,可以給 allow-query 配置一個 acl ,假如允許所有客戶端查詢,配置 為 any 即可。

安裝 Forwarding DNS Server

配置比較簡單,只要修改 /etc/bind/named.conf.options 文件即可。

options {
    directory "/var/cache/bind";

    recursion yes;
    allow-query { any; };

    forwarders {
            8.8.8.8;
    };
    forward only;
    dnssec-validation auto;
    auth-nxdomain no;    
    listen-on-v6 { any; };
};

重要的參數就兩個,forwarders 配置需要轉發查詢的 DNS 列表,forward 表示轉發請求(即便 recursion 參數配置為 yes)。

安裝 Authoritative-Only DNS Server

相對與前兩種類型的 DNS 服務器來說,這種類型的服務器配置相對復雜,先做以下說明:

  • 不演示 IP 反解的過程
  • 不做 master/slave 配置
  • NS 服務器名稱是 ns.example.com.,對應的 IP 地址是 139.129.23.162

(1)在服務器上修改 /etc/hosts,配置

192.0.2.1 ns.example.com 
#必須是外網地址,因為外部的客戶端會查詢,不能給一個內部地址。

(2)修改 /etc/bind/named.conf.options ,配置

options {
    directory "/var/cache/bind";
    recursion no;
    allow-transfer { none; };

    dnssec-validation auto;
    auth-nxdomain no;  
    listen-on-v6 { any; };
};

recursion 配置為 no,因為權威 DNS 服務器只負責它自己的 zone 解析,不負責遞歸查詢。假如不是主輔的 DNS 服務器,allow-transfer 配置為 none;

(3)配置 /etc/bind/named.conf.local

zone "example.com" {
    type master;
    file "/etc/bind/zones/db.example.com";
};

配置的 zone 表示那些域名是這臺 dns 服務器控制的,具體的信息來自于 /etc/bind/zones/db.example.com 文件。假如 named.conf.local 文件被破壞了,可以從 named.conf.default-zones 拷貝過來。

(4)配置 /etc/bind/zones/db.example.com 文件

這文件先初始化,可以從 /etc/bind/db.local 文件進行拷貝。

$TTL    604800

@       IN      SOA     ns.example.com. admin.example.com. (
                              5         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;

; Name servers
example.com.    IN      NS      ns.example.com.

; A records for name servers
ns             IN      A        139.129.23.162

; Other A records
@               IN      A       139.129.23.162
www             IN      A       139.129.23.162

(5)測試 zone 文件是否正確

named-checkzone example.com /etc/bind/zones/db.example.com ,假如返回以下內容說明正確。

zone example.com/IN: loaded serial 5
OK

(7)使用該 DNS

dig -t a @139.129.23.162 www.example.com

也可以在你的域名解析商管理后臺將 NS 地址修改為 ns.example.com(139.129.23.162 )。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. 概述 在網絡環境中一般用戶只需要在瀏覽器中輸入url如www.sunny.com就可以到對應服務器獲取相應的...
    ghbsunny閱讀 2,940評論 0 7
  • 1. 測試環境:Centos 6.9 虛擬主機中安裝軟件BIND 2.DNS原理: 域名解析主要有三種方法: 1)...
    十二樓中月閱讀 8,151評論 0 8
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • DNS簡介DNS解析關鍵概念BIND 一、DNS簡介: (一)DNS服務 DNS:Domain Name Serv...
    哈嘍別樣閱讀 1,813評論 0 2
  • 一、實現從根,com,rj.com 模擬互聯網的DNS架構 DNS(Domain Name System,域名系統...
    ssjinyao閱讀 1,502評論 0 7