CentOS7安裝和配置dns服務器


(1)dns介紹

1.基本介紹

名字解析:
	NetBIOS名:localhost  wins hosts 
	FQDN:完全限定域名,www.baidu.com	
hosts文件:
	作用:實現名字解析,主要為本地主機名丶集群節點提供快速解析,集中式數據庫
dns服務器:
	作用:實現名字解析(將主機名解析成ip地址),分布式數據庫

2.dns解析流程:客戶端解析www.baidu.com

1)客戶端查詢自己的緩存(windows中的hosts文件也是緩存),如果沒有將查詢發送到/etc/resolv.conf中的dns服務器
2)如果本地DNS服務器對於請求的信息具有權威性,會將權威答案發送到客戶端
3)如果dns服務器在其緩存中有請求信息,則將(非權威答案)發送到客戶端
4)如果緩存中沒有該查詢信息,dns服務器將搜索權威DNS服務器以查找信息
	從根區域開始,按照dns層次結構向下搜索,直至對於信息具有權威的名稱服務器,為客戶端獲取答案,dns服務器將信息傳遞給客戶端,並在自己的緩存中保留一個副本
	轉發到其它服務器

3.權威服務器和非權威服務器

權威服務器:存儲並提供某個區域的實際數據,例如126.com的DNS服務器,記錄了126.com域中的所有主機的記錄;是權威服務器返回的dns解析結果就是權威服務器返回的結果
	master:主dns服務器,包含原始區域的數據
	slave:備dns服務器,通過區域傳輸從master服務器獲取區域數據的副本
非權威服務器:不存儲某個區域的實際數據,僅緩存dns服務器,雖然可以提供查詢,但查詢的內容不具有權威性

4.正向區域和反向區域

正向解析:域名解析為ip
反向解析:ip地址解析成域名

(2)配置僅有緩存功能的dns服務器

0.關閉防火牆和selinux

systemctl stop firewalld.service 
systemctl disable firewalld.service
sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/sysconfig/selinux
setenforce 0

1.安裝bind和啟動服務

yum install bind bind-chroot -y 
systemctl restart named 
systemctl enable named 

2.修改配置文件

#vim /etc/named.conf 
zone "." IN {
        type hint;
        file "named.ca";											//根區域,文件在選項directory(var/named)配置的目錄下,全球13台根服務器
};
options {
        listen-on port 53 { any; };									//監聽端口在所有ipv4接口上
        listen-on-v6 port 53 { any; };								//監聽端口在所有ipv6接口上
        directory       "/var/named";								//數據庫文件存儲位置
        allow-query     { any; };									//允許任意主機查詢
        forward first;												//當客戶端發起查詢,不是自己的區域,首先向forwarders服務器發起查詢
        forwarders { 114.114.114.114;114.114.115.115; };			//轉發到上一級的DNS服務器
		};

3.語法檢測重啟服務和驗證測試

#named-checkconf /etc/named.conf                                             //檢查主配置文件
#systemctl restart named 
說明:當客戶端的dns服務器為這台服務器的時候,如果該配置里面沒有forward參數,默認發起查詢會向根節點發起查詢,全球有13台根服務器;如果配置forward選項,客戶端發起的請求會轉發forward的dns
測試:客戶端dns服務器指向這台服務器,dig www.baidu.com ;然后在dns服務器上tcpdump -i ens33  -nn port 53

(3)配置dns服務器正向區域:dnstest.com

1.主配置文件 :相當於在域名服務商申請域名

#vim /etc/named.conf 
options {
        directory       "/var/named";								//數據庫文件存儲位置
		};
zone "testdns.com" IN {												//創建域dnstest.com
        type master;
        file "testdns.com.zone";                                                                //數據文件在/var/named目錄下
};

2.數據庫文件(區域文件),在域名服務提供的頁面上做解析

#vim /var/named/testdns.com.zone
$TTL    600									//設置緩存記錄10分鍾
@       IN      SOA     @       root( 2018051600 1H 15M 1W 1D)			//起始授權記錄,用於指出DNS服務器,必須配置,()里面的內容用於主從復制使用
@       IN      NS      dns					//指區域所授權的主機是ns主機,必須配置
dns     IN      A       192.168.1.31        //dns服務器本機ip                            
www  100   IN      A       192.168.1.32		//www.testdns.com解析成192.168.1.32
@		IN		A		192.168.1.32		//直接對域名進行解析,這里對域名testdns.com解析成192.168.1.32這個ip
說明:緩存時間有三種,優先級最大生效
	$TTL 600 										//緩存時間10分鍾;優先級中
	( 2018051600 1H 15M 1W 1D)						//這里1D是緩存時間1天;優先級最低
	www  300   IN      A       192.168.1.32			//緩存時間5分鍾;優先級最大生效

3.檢測語法和重啟服務

named-checkconf /etc/named.conf                 //檢查配置文件
named-checkzone testdns.com /var/named/testdns.com.zone         //檢查區域數據文件,
systemctl restart named 
在客戶端測試:dig www.testdns.com         //如果從權威服務器獲取的解析結果,flags標志位有aa記錄

(4)客戶端工具詳解

1.dig(linux工具)

dig www.baidu.com 						//使用/etc/resolv.conf設置的dns
dig @114.114.114.114					//使用指定的dns

2.host(linux工具)

host www.baidu.com 						//等同於host -t A www.baidu.com ,正向解析,查詢A記錄
host 114.114.114.114					//反向解析,查詢PTR記錄
host www.baidu.com 114.114.114.114 		//使用指定的dns服務器114.114.114.114 解析
host -t SOA baidu.com 					//查詢某個域的SOA記錄
host -t NS baidu.com 					//查詢某個域的NS記錄
host -t MX	baidu.com 					//查詢某個域的郵件服務器

3.nslookup(linux/windows工具)

nslookup www.baidu.com 					
nslookup 114.114.114.114 
#nslookup 								//進入nslookup交互界面
set q=soa 								//設置查詢soa記錄
baidu.com 
set q=a									//設置查詢A記錄
www.baidu.com 

4.ipconfig(windows工具)

ipconfig /flushdns 					//清空dns緩存
ipconfig /displaydns 				//顯示dns緩存信息
ipconfig /release 					//釋放ipv4地址
ipconfig /renew 					//更新ipv4地址

(5)配置主從復制

1.從服務器配置

#vim /etc/named.conf 
zone "testdns.com" IN {
        type slave;                                            //類型從
        masters { 192.168.1.32; };                    //指定master服務器ip地址
        file "slaves/testdns.com.zone";            //數據文件放置在哪里
        };
#systemctl restart named 

2.主服務器配置

#vim /etc/named.conf 
zone "testdns.com" IN {
        type master;
        file "testdns.com.zone";
        allow-transfer { 192.168.1.33; };
        };


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM