DNS服務器搭建

原文鏈接:https://www.jianshu.com/p/f5eb23778aa2

 

1. 測試環境:Centos 6.9

虛擬主機中安裝
軟件BIND

2.DNS原理:

域名解析主要有三種方法:

1). host表用在本機上面hosts
2). NIS(網絡信息服務)主要用在小型網絡,並且已經大部分不在使用
3).DNS域名服務 分層的分佈式數據庫來處理IP地址和域名的轉換。

DNS組成:DNS域名空進+DNS服務器+解析器
解析過程:

1)本地解析(使用之前的緩存信息,或者本地HOSTS文件)
2)直接解析(直接有所設定的DNS服務器解析)
3)遞歸查詢(由DNS服務器代表客戶機向其他DNS 服務器查詢)
4)迭代查詢(DNS向客戶機返回一個可以解析的其他DNS服務器)

3.軟件的安裝

yum install -y bind
rpm -ql bind查看沒有安裝

安裝bind

4.安裝後主要文件

/etc/named #named目錄
/etc/named.conf #主配置文件
/etc/rc.d/init.d/named #BIND開機自動時啓動的腳本
/usr/sbin/named #named進程程序文件
/usr/sbin/rndc #遠程控制named進程的工具
/usr/sbin/rndc-confgen #產生rndc密鑰的工具
/usr/share/doc/bind-9.8.2 # 幫助文檔和例子文件
/usr/share/man/man5/ #手冊
/usr/share/man/man8/#手冊
/var/named # Bind配置文件的默認存放目錄
/var/run/named #named進程PID文件存放的目錄

5.Bind的配置文件

(bind的配置比較複雜)Bind的配置文件需要根據實際情況才能正常運行,否則無法正常啓動bind。下面以一個簡單實例說明具體的配置方法:
第一步是主配置文件named.conf(在/etc/下面)
第二步輔助配置文件named.rfc1912.zones在/etc/下面)

named.conf主配置文件

 

named.rfc1912.zones輔助配置文件


上面的文件都在/etc/下面,在修改時候可以備份好之前的默認文件。
第三步 在/var/named/下面cp -p named.localhost named.benet.com
cp -p named.localhost named.197.168.192.zone
先複製出兩個我們需要設置的正向和反向解析文件然後編輯:

 

第一個是正向解析的文件
第二個是反向解析的文件

named.benet.com正向解析文件

named.197.168.192.zone反向解析文件

 

配置文件都寫好之後可以測試啓動:
/usr/sbin/named -g &(-g的功能是顯示啓動的過程,可以方便查看是否有報錯)
到此四個配置文件已經完成,當我啓動和測試時候出現了下面幾種錯誤:
1.)這個是沒有刪除主配置文件中關於IPv6的內容導致

 

關於IPv6的報錯

 

2.)解析不出來,解析出來的是其他地址,這個是設置的默認DNS不是我們設置服務器

無法正確解析

 

需要設置主機的DNS之後在測試(windows下的修改界面)

 

windows修改默認DNS


vim /etc/sysconfig/network-scripts/ifcfg-eth0(linux下修改)

 

linux修改默認的DNS

按照自己主機信息修改上圖的IP和DNS

3.)下面啓動報錯的原因爲,文件和目錄的權限導致的故障,修改配置的幾個文件和上圖紅色的部分的權限爲777.故障消失

權限問題導致的故障

 

4.)做了如上操作還是不能解析 查看防火牆是否關閉

關閉防火牆

6.測試

結果如下圖正常解析出來。但是反向解析出現了報錯原因沒有找到。日誌如下:

正向解析

反向解析

這個報錯有點類似 IPv6原因未知

7.Chroot功能和rndc(控制域名服務的遠程控制工具)

Chroot可以將文件系統中的某個特定的子目錄作爲進程的虛擬主目錄。使用此功能注意是從安全運行,對系統入侵攻擊的負面影響降到最低
安裝:yum install -y bind-chroot
會出現一個新的目錄/var/named/chroot並且安裝之後/etc/ /dev /var的相關配置文件都會被複制到此目錄下面。後續修改配置時需要主機目錄位置。
Rndc:rndc-confgen 生成密鑰和相應的配置文件。然後寫入配置文件rndc和named.conf文件中,但是我在測試時候,沒有生成出來。
第二天測試又成功,將前兩個放到rndc.conf中 第一和第三個放到named.conf 可以修改allow中的內容,讓其他主機可以遠程控制rndc。

rndc-confgen生成的文件

8.BIND的詳細配置

主配置語句名稱:
acl:定義一個命名的訪問列表(包含一些IP表示的主機)可以在語句使用,表示所定義的主機。(none、any、localhost(本地網絡接口IP)、localnets(本地子網IP))
Controls:定義有關本地域名服務操作控制通道,被rndc用來發送控制命令。(如上面圖片的第三個紅色紅框的內容)
Include:把另一個文件的內容包含進來。
Key:定義一個密鑰,用於TSIG授權和認證(如上面圖片的第一個紅框的內容)
Logging:有關日誌文件的配置
Option:有關全局的選項(directory指定工作目錄,pip-file設定進程PID文件的路徑名,forwarders設定轉發使用的IP地址,allow-query設定DNS服務器爲哪些用戶提供DNS查詢服務)
Server:定義與遠程服務器交互的規則(可以定義是主域名還是輔助域名,以及與其他域名使用什麼密鑰通信,和zone中type類型有類似功能)
trusted-keys:定義DNSSEC安全根的trusted-keys(不是太明白)
View:定義視圖功能,可以根據客戶端的不同有區別的回答DNS
Zone:定義DNS服務器所管理的區(type:Master/Slave/Stub/forwarder/Hint定義一套最新的根DNS服務器地址)

9.根服務器文件named.root

相當於默認named.conf中的zone定義的’.’也就是區文件/var/named目錄下named.ca文件
可以使用dig列出最新的根服務器
關於區域數據文件上面已經說明:named.benet.com(正向)
$TTL 設置其他DNS服務器緩存本機數據的默認時間SOA設置起始授權機構
NS 定義某個域由哪個服務器解析MX郵件資源記錄指定發往某個域的郵件由那個郵件服務器負責A域名對應的IP地址CNAME別名允許幾個名稱指向同一個服務器。
Named.197.168.192通過in-addr.arpa域和PTR記錄實現

10.DNS負載均衡

關於負載均衡的概念可以查看http://www.jianshu.com/p/811e8a8e5616
在區域文件中有兩種寫法:
IN MX 10 mail.example.com
IN MX 10 mail1.example.com
IN MX 10 mail2.example.com
........
Mail IN A 192.168.0.4
Mail IN A 192.168.0.5
Mail IN A 192.168.0.6
或者
IN MX 10 mail.example.com
....
Mial IN A 192.168.0.4
IN A 192.168.0.5
IN A 192.168.0.6

11.直接域名、泛域名、子域

DNS服務器可以直接解析的域名,直接域名 benet.com. IN A 192.168.0.12
域名下所有的主機和子域名都解析到同一個IP地址*.benet.com IN A 192.168.0.12
Benet.com是頂級域名 則dean.benet.com就是一個子域名(二級域名)
$ORIGIN dean.benet.com (就是一個子域)
Mail IN A 192.168.0.3

12.輔助域名服務器和只緩存服務器

輔助域名服務器:顧名思義用來輔助主服務器,配置和主服務器大致相同但是需要修改幾個地方:

1 主配置文件 設置轉發功能 forwarders,也可以設置server
2 輔助配置文件named.rfc1912.zones 中zone中type 改爲slave,增加masters(設置主域名服務器地址)
3 主服務器中zone 增加allow-transfer表示允許向某一個傳送數據文件
只緩存服務器:類似於代理服務器,本身不管理區域,將所有查詢提交給其他DNS服務器處理,並可以將結果緩存下來,當下次再有客戶機使用時候可以直接使用緩存。
在主配置文件增加:forwarders(轉發到其他服務器)forwarder only(只轉發)
zone之類都不在需要設置。只需要option和logging就可以了。

轉載只爲記錄保存,方便以後查找,如有異議,請聯繫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章