「系統架構」如何搭建自己的DNS服務器?

搭建自己的DNS服務器是一個很常見的訴求,尤其是在公司內部。Linux下架設DNS服務器通常是使用BIND程序來實現,BIND是美國加利福尼亞大學伯克利分校開發的軟件,是一套域名服務器軟件包,該軟件實現了 DNS 解析協議,可以在 Linux 系統上通過這個軟件包來提供域名解析服務。

1、安裝BIND

通常Linux系統會自帶BIND軟件,檢查自己的服務器是否已安裝,可以執行如下命令來檢測:

「系統架構」如何搭建自己的DNS服務器?

如果出現如上圖執行結果,則表示當前系統已經安裝了BIND軟件。反之,則沒有。安裝BIND,你可以使用 yum install -y bind* 命令。安裝結果大概如下:

「系統架構」如何搭建自己的DNS服務器?

BIND軟件安裝完畢後,你可以通過 systemctl start named.service 命令來啟動BIND軟件。BIND啟動成功後,通過 netstat -npl|grep named 查看運行結果,如下:

「系統架構」如何搭建自己的DNS服務器?

從結果中我們可以看到 named 進程是 BIND 軟件的運行進程,它可以同時支持 udp/tcp 兩種協議,默認使用53端口。此外 named 進程同時監聽了953端口,主要用於為遠程管理工具提供控制通道。

2、配置BIND

安裝了BIND後,你還需要配置一下BIND。Bind的主配置文件是etc/name.conf,該文件是文本文件,一般需手動生成。除了主配置文件外,/var/named目錄下的所有文件都是DNS服務器的相關配置文件,這些配置文件共同保證BIND的正常運行。下面詳細講述這些文件的配置。

1)name.conf 文件,用來定義bind服務程序的運行

「系統架構」如何搭建自己的DNS服務器?

通常情況下只需要修改 listen-on 和 allow-query 兩項即可,如下:

「系統架構」如何搭建自己的DNS服務器?

這裡分別表示服務器上的所有IP地址均可提供DNS域名解析服務,以及允許所有人對本服務器發送DNS查詢請求。

2)/etc/named.rfc1912.zones 文件,用來保存域名和IP地址對應關係的所在位置。類似於圖書的目錄,對應著每個域和相應IP地址所在的具體位置,當需要查看或修改時,可根據這個位置找到相關文件。

「系統架構」如何搭建自己的DNS服務器?

解析新域名時,就是在此文件中增加新的解析規則。如下:

「系統架構」如何搭建自己的DNS服務器?

3)named.ca 文件,這是根域配置文件,根域配置文件設定根域的域名數據庫,包括根域中13臺DNS服務器的信息。幾乎所有系統的這個文件都是一樣的,一般情況下,用戶不需要進行修改。

4)正向域名解析數據庫文件,這裡對應第 2)步中 file 字段指定的文件,它的作用是定義域名到ip的對應關係。

「系統架構」如何搭建自己的DNS服務器?

5)反向域名解析數據庫文件,這裡也是對應第 2)步中 file 字段指定的文件,它的作用是定義ipd到域名的對應關係。

「系統架構」如何搭建自己的DNS服務器?

3、域名解析

域名解析分為正向解析和反向解析,正向解析是將域名解析到ip,反向解析是將ip解析到域名。

3.1 正向解析

1)修改區域配置文件 /etc/named.rfc1912.zones,為 example.com 定義一條正向解析規則,如下:

「系統架構」如何搭建自己的DNS服務器?

2)修改數據配置文件 example.com.zone

「系統架構」如何搭建自己的DNS服務器?

3.2 反向解析

在DNS域名解析服務中,反向解析的作用是將用戶提交的IP地址解析為對應的域名信息,它一般用於對某個IP地址上綁定的所有域名進行整體屏蔽,屏蔽由某些域名發送的垃圾郵件。它也可以針對某個IP地址進行反向解析,大致判斷出有多少個網站運行在上面。當購買虛擬主機時,可以使用這一功能驗證虛擬主機提供商是否有嚴重的超售問題。

1)修改區域配置文件 /etc/named.rfc1912.zones,為 example.com 定義一條反向向解析規則,如下:

「系統架構」如何搭建自己的DNS服務器?

注意:反向解析是把IP地址解析成域名格式,因此在定義zone(區域)時應該要把IP地址反寫,比如原來是192.168.10.0,反寫後應該就是10.168.192,而且只需寫出IP地址的網絡位即可。

「系統架構」如何搭建自己的DNS服務器?

2)修改數據配置文件 245.168.192.arpa

「系統架構」如何搭建自己的DNS服務器?

4、重啟服務

修改了配置文件後,一定要重啟服務器,這樣配置的內容才能生效。


分享到:


相關文章: