1. 程式人生 > 實用技巧 >Linux-dns伺服器搭建

Linux-dns伺服器搭建

DNS解析流程:
	1. 客戶端查詢自己的快取(包含 hosts 中的記錄),如果沒有將查詢傳送 /etc/resolv.conf 中的 DNS 伺服器
	2. 如果本地 DNS 伺服器對於請求的資訊具有 權威性 ,會將(權威答案)傳送到客戶端。
	3. 否則( 不具有權威性 ),如果 DNS 伺服器在其快取中有請求資訊,則將(非權威答案)傳送到客戶端
	4. 如果快取中沒有該查詢資訊, DNS 伺服器將搜尋權威 DNS 伺服器以查詢資訊:
		a. 從根區域開始,按照 DNS 層次結構向下搜尋,直至對於資訊具有權威的名稱伺服器,為客戶端獲答 案
			DNS 伺服器將資訊傳遞給客戶端 ,並在自己的快取中保留一個副本,以備以後查詢。
		b. 轉發到其它 DNS 伺服器
	
1.安裝dns伺服器
	shell# yum y install bind bind chroot
	shell# systemctl restart named
	shell# systemctl enable named
	
	#新增防火牆
	shell# firewall cmd permanent a dd service=dns
	shell# firewall cmd reload
	
2.主配置檔案(新增區域)
	
	shell# vim /etc/named.conf
		#配置檔案
		options {
			listen-on port 53 { any; };     #修改為any
			listen-on-v6 port 53 { any; };  #修改為any
			directory       "/var/named";
			dump-file       "/var/named/data/cache_dump.db";
			statistics-file "/var/named/data/named_stats.txt";
			memstatistics-file "/var/named/data/named_mem_stats.txt";
			recursing-file  "/var/named/data/named.recursing";
			secroots-file   "/var/named/data/named.secroots";
			allow-query     { any; };    #修改為any
			forwarders {114.114.114.114;192.168.80.2};    #轉發到上一級dns
			
		#根區域
		zone "." IN {
			type hint;
			file "named.ca";
		};
		#新增區域(changlidong.com)
		zone "changlidong.com" {
				type master;
				file "changlidong.com.zone";   #配置檔案
		};
		#新增去(labdocker)
		zone "labdocker" {
				type master;
				file "labdocker.com.zone";    #配置檔案
		};

3.區域配置檔案
	預設路徑:/var/named/
	
	#changlidong.com配置檔案
		shell# vim /var/named/changlidong.com.zone
			$TTL 600
			@ IN SOA @ root (2020032300 1H 15M 1W 1D)
			@ IN NS dns
			dns IN A 192.168.80.100
			www IN A 192.168.80.201
			bbs IN A 192.168.80.202
	#labdocker配置檔案
		shell#vim /var/named/labdocker.com.zone
			$TTL 600
			@ IN SOA @ root (2020032300 1H 15M 1W 1D)
			@ IN NS dns
			dns IN A 192.168.80.100
			www IN A 192.168.80.22
			master01 IN A 192.168.80.24
			bbs IN A 192.168.80.35

4.引數說明
	@ 表示當前域名
	www.tianyun.com. = www
	第一個欄位繼承
	
	SOA: 起始授權記錄 強制
	NS: DNS 伺服器記錄 強制
	A: 主機記錄
	CNAME: 別名記錄

5.客戶端測試工具
	安裝:
		shell# yum install -y bind-utils
	
	使用:
	shell# nslookup www.changlidong.com    #解析地址
	shell# nslookup 192.168.80.201     #反向解析,伺服器需要配置才能顯示
	
	shell# host -t A www.changlidong.com #正向解析
	shell# host 192.168.80.201      #反向解析
	shell# host www.changlidong.com 192.168.80.100   #使用dns伺服器
	shell# host -t SOA changlidong.com    #查詢區域的SOA
	shell# host -t NS changlidong.com    #查詢某個區域的NS
	shell# host -t MX changlidong.com    #查詢某個區域的郵件伺服器
	
	shell# dig www.changlidong.com       #使用 /etc/resolv.conf 設定的 DNS
	shell# dig @192.168.80.100 www.changlidong.com #使用指定的 DNS