1. 程式人生 > 實用技巧 >DNS原理和CentOS7上bind域名伺服器配置詳解

DNS原理和CentOS7上bind域名伺服器配置詳解

本文大綱:

理論部分:

1、什麼是DNS

2、DNS層次介紹及基礎內容

3、DNS的工作原理及過程

域名伺服器配置實戰:

4、主域名伺服器配置

5、輔域名伺服器配置

6、快取域名伺服器配置


1、什麼是DNS?
( Domain Name System)是“域名系統”的英文縮寫,是一種組織成域層次結構的計算機和網路服務命名系統,它用於TCP/IP網路,它所提供的服務是用來將主機名和域名轉換為IP地址的工作。DNS就是這樣的一位“翻譯官”,它的基本工作原理可用下圖來表示。

2、DNS簡介
域名系統作為一個層次結構和分散式資料庫,包含各種型別的資料,包括主機名和域名。DNS資料庫中的名稱形成一個分層樹狀結構稱為域名稱空間。域名包含單個標籤分隔點,例如:im.qq.com。

完全限定的域名 (FQDN) 唯一地標識在 DNS 分層樹中的主機的位置,通過指定的路徑中點分隔從根引用的主機的名稱列表。 下圖顯示與主機稱為 im 內 qq.com DNS 樹的示例。 主機的 FQDN 是 im.qq.com。
DNS 域的名稱層次結構

DNS域名層次介紹:
按其功能名稱空間中用來描述 DNS 域名稱的五個類別的介紹詳見下表中,以及與每個名稱型別的示例

常見的頂級域名:

組織域:.com, .net, .org, .gov, .edu, .mil

國家域:.iq, .tw, .hk, .jp, .cn, ...

網際網路域名系統由名稱註冊機構負責維護分配由組織和國家/地區的頂級域在 Internet 上進行管理。 這些域名按照國際標準 3166。 一些很多現有縮寫,保留以供組織中,以及兩個字母和三個字母的國家/地區使用的縮寫使用下表所示。一些常見的DNS域名稱如下圖:


3、DNS的工作原理及過程

當我們開啟瀏覽器輸入某個網站,我們是如何通過網路找到主機的呢,下來我來說說域名解析的具體過程,看下圖:

wKioL1gqxaSAeBUwAAjdXRskaSk352.jpg

具體的過程說明:

我們以上圖使用者訪問www.wlm.com為例

對於客戶機

1.當用戶以域名方式訪問某個主機時,本地計算機首先會檢視自己的DNS Cache裡有沒有該域名解析的快取,有則直接解析;

2.如果本地快取沒有該域名解析,就檢視hosts檔案,看有沒有該域名解析,有則給出解析結果;

3.如果沒有就請求DNS Server伺服器,通過遞迴查詢,直接從NDS Server得出需要查詢的結果。

對於DNS Server域名伺服器

1.如果使用者請求的是DNS Server掌管的域內伺服器,則直接給出解析結果;

2.如果使用者請求的不是本域內的伺服器或者DNS Server是快取伺服器,沒有自己掌握的域名;

(1)DNS Server會直接訪問根域伺服器,而不是訪問自己的頂級域伺服器,根域不知道www.wlm.com主機的IP地址,但是跟域會告訴DNSserver,.com頂級域會知道www.wlm.com的IP,並返回.com的IP;

(2)DNS Server請求.com頂級域解析,.com頂級域也不知道www.wlm.com主機,但是.com頂級域會返回wlm.com的地址;

(3)DNS Server 訪問wlm.com主機,www.wlm.com屬於wlm.com域內。wlm.com返回www.wlm.com的主機IP,DNSServer響應使用者的請求,返回IP地址;使用者計算機根據IP地址訪問www.wlm.com主機。


域名伺服器配置實戰:

部署的邏輯圖如下:

wKioL1gsCpWgDT3IAAC48AgRrfU955.jpg


配置說明:

主域名伺服器:ns1.wlm.com. IP:10.10.10.3

從域名伺服器:ns2.wlm.com. IP:10.10.10.10

快取域名伺服器:ns3.wlm.com.IP:10.10.10.11

所有的系統都為CentOS7

在每臺伺服器上的準備工作:

這裡以ns1.wlm.com為例

(1)配置IP,將DNS指向自己

vim/etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=none
IPADDR=10.10.10.3
NETMASK=255.255.255.0
GATEWAY=10.10.10.2
DNS1=10.10.10.3
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
DEVICE=eno16777736
ONBOOT=yes

(2)重啟網絡卡

systemctlrestartnetwork.service

(3)關閉防火牆和selinux

systemctlstopfirewalld.service
systemctldisablefirewalld.service#開啟自動關閉

setenforce0#可以vim/etc/selinux/config將selinux改為disabled,設定為開機就關閉

(4)配置yum源(這裡就不贅述了),yum安裝bind

[[email protected]~]#yuminstall-ybind
[[email protected]~]#yuminstall-ybind-libs
[[email protected]~]#yuminstall-ybind-utils#這個非必要,需要dig命令,需要安裝

程式包說明:

bind-libs:被bind和bind-utils包中的程式共同用到的庫檔案;

bind-utils:bind客戶端程式集,例如dig, host, nslookup等;


bind:提供的dns server程式、以及幾個常用的測試程式

bind-chroot:選裝,讓named運行於jail模式下;

(5)修改配置檔案

[[email protected]~]#vim/etc/named.conf
options{
listen-onport53{127.0.0.1;10.10.10.3;};#監聽本機IP的53埠
listen-on-v6port53{::1;};
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";
//allow-query{localhost;};#這裡代表只解析本機,//為註釋
allow-transfer{10.10.10.0/24;};
#配置裡預設沒有這一項配置,只允許的slave主機做資料傳送
#從伺服器配置如下:allow-transfer{none;};#從伺服器不需要做傳輸
recursionyes;

dnssec-enableno;#安全設定關閉
dnssec-validationno;#安全設定關閉

修改完畢,儲存退出

語法檢查:

named-checkconf#語法檢查,預設檢查/etc/named.conf檔案,如果不是這個路徑,在後面寫路徑

重啟named伺服器

[[email protected]~]#systemctlrestartnamed.service

設定開機啟動

[[email protected]named]#systemctlenablenamed.service


(6)檢視監聽的IP和埠

[[email protected]named]#netstat-tunlp|grep53
tcp0010.10.10.3:530.0.0.0:*LISTEN5509/named
tcp00127.0.0.1:530.0.0.0:*LISTEN5509/named
tcp00192.168.122.1:530.0.0.0:*LISTEN2384/dnsmasq
tcp00127.0.0.1:9530.0.0.0:*LISTEN5509/named
tcp600::1:53:::*LISTEN5509/named
tcp600::1:953:::*LISTEN5509/named
udp000.0.0.0:53530.0.0.0:*854/avahi-daemon:r
udp0010.10.10.3:530.0.0.0:*5509/named
udp00127.0.0.1:530.0.0.0:*5509/named
udp00192.168.122.1:530.0.0.0:*2384/dnsmasq
udp600::1:53:::*5509/named

(7)配置時間伺服器,利用ntpdate同步時間使每臺伺服器時間一致(如果是練習,這不是必要步驟)。

4、主域名伺服器配置

具體配置步驟:

1)yum安裝bind

[[email protected]~]#yuminstall-ybind

2)修改配置檔案

[[email protected]~]#vim/etc/named.conf
options{
listen-onport53{127.0.0.1;10.10.10.3;};#監聽本機IP的53埠
listen-on-v6port53{::1;};
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";
//allow-query{localhost;};#這裡代表只解析本機,//為註釋
allow-transfer{10.10.10.0/24;};
#配置裡預設沒有這一項配置,只允許的slave主機做資料傳送
recursionyes;

dnssec-enableno;#安全設定關閉
dnssec-validationno;#安全設定關閉

修改完畢,儲存退出

語法檢查:

named-checkconf#語法檢查,預設檢查/etc/named.conf檔案,如果不是這個路徑,在後面寫路徑

重啟named伺服器

[[email protected]~]#systemctlrestartnamed.service

bind不設定任何域名,預設是快取伺服器,配置裡面預設有根域的地址,現在可以做域名解析了。

[[email protected]~]#dig-tA+tracewww.baidu.com

;<<>>DiG9.9.4-RedHat-9.9.4-29.el7<<>>-tA+tracewww.baidu.com
;;globaloptions:+cmd
.			457478	IN	NS	a.root-servers.net.#首先找到跟域
com.			172800	IN	NS	a.gtld-servers.net.#再找.com
baidu.com.		172800	IN	NS	dns.baidu.com.#最後找到dns
ww.baidu.com.		1200	IN	CNAME	www.a.shifen.com.#找到最後的域名

;;Received239bytesfrom220.181.37.10#53(ns3.baidu.com)in13ms#解析的ip


dig命令介紹:
dig[-tRR_TYPE]name[@SERVER][queryoptions]
						
用於測試dns系統,因此其不會查詢hosts檔案;
							
查詢選項:
+[no]trace:跟蹤解析過程;
+[no]recurse:進行遞迴解析;
注意:反向解析測試
dig-xIP
模擬完全區域傳送:
dig-taxfrDOMAIN[@server]
dig+trace-tAwww.baidu.com
dig-x61.135.169.121

3)配置一個正向解析區域

(1)定義區域,我們以wlm.com為例

在主配置檔案中或主配置檔案輔助配置檔案中實現(/etc/named.rfc1912.zones);

vim/etc/named.rfc1912.zones
#配置檔案最後面新增
zone"wlm.com"IN{
typemaster;
file"wlm.com.zone";
};
/etc/named.rfc1912.zones配置檔案裡的寫法格式:
zone"ZONE_NAME"IN{
	type{master|slave|hint|forward};
	file"ZONE_NAME.zone";
};	
						
注意:區域名字即為域名;

(2)建立區域資料檔案(主要記錄為A或AAAA記錄)

在/var/named目錄下建立區域資料檔案;

[[email protected]~]#vim/var/named/wlm.com.zone#這裡定義的檔案要跟上一步在配置裡寫的檔案一致
$TTL3600
$ORIGINwlm.com.
@INSOAns1.wlm.com.dnsadmin.wlm.com.(
2014100101
1H
10M
3D
1D)
INNSns1
INMX10mx1
INMX20mx2
ns1INA10.10.10.3
mx1INA10.10.10.100
mx2INA10.10.10.200
wwwINA10.10.10.4
webINCNAMEwww

區域資料庫檔案說明;
$TTL3600#設定客戶端快取時間
$ORIGINwlm.com.#定義當前區域的名字,下面的@就是替代這個值
@INSOAns1.wlm.com.dnsadmin.wlm.com.(
#SOA:StartOfAuthority,起始授權記錄;一個區域解析庫有且只能有一個SOA記錄,而且必須放在第一條;
#ns1.wlm.com.該域的主域名伺服器
#dnsadmin.wlm.com.管理員郵箱
2014100101#序列號:serial
1H#重新整理時間間隔:refresh
10M#重試時間間隔:retry,
3D#過期時長:expire
1D)#negativeanswerttl:否定答案的快取時長
INNSns1#域名服務記錄;一個區域解析庫可以有多個NS記錄;其中一個為主的
INMX10mx1#郵件交換器優先順序:0-99,數字越小優先順序越高
INMX20mx2
ns1INA10.10.10.3#地址記錄
mx1INA10.10.10.100
mx2INA10.10.10.200
wwwINA10.10.10.4
webINCNAMEwww#別名記錄

系統的介紹:
主-輔DNS伺服器:
主DNS伺服器:維護所負責解析的域資料庫的那臺伺服器;讀寫操作均可進行;
從DNS伺服器:從主DNS伺服器那裡或其它的從DNS伺服器那裡“複製”一份解析庫;但只能進行讀操作;
“複製”操作的實施方式:
序列號:serial,也即是資料庫的版本號;主伺服器資料庫內容發生變化時,其版本號遞增;
重新整理時間間隔:refresh,從伺服器每多久到主伺服器檢查序列號更新狀況;
重試時間間隔:retry,從伺服器從主伺服器請求同步解析庫失敗時,再次發起嘗試請求的時間間隔;
過期時長:expire,從伺服器始終聯絡不到主伺服器時,多久之後放棄從主伺服器同步資料;停止提供服務;
negativeanswerttl:否定答案的快取時長
主伺服器”通知“從伺服器隨時更新資料;

區域傳送:
全量傳送:axfr,傳送整個資料庫;
增量傳送:ixfr,僅傳送變數的資料;

區域(zone)和域(domain):
magedu.com域:
FQDN-->IP
正向解析庫;區域
IP-->FQDN
反向解析庫;區域

區域資料庫檔案:
資源記錄:ResourceRecord,簡稱rr;
記錄有型別:A,AAAA,PTR,SOA,NS,CNAME,MX

SOA:StartOfAuthority,起始授權記錄;一個區域解析庫有且只能有一個SOA記錄,而且必須放在第一條;
NS:NameService,域名服務記錄;一個區域解析庫可以有多個NS記錄;其中一個為主的;
A:Address,地址記錄,FQDN-->IPv4;
AAAA:地址記錄,FQDN-->IPv6;
CNAME:CanonicalName,別名記錄;
PTR:Pointer,IP-->FQDN
MX:MaileXchanger,郵件交換器;
優先順序:0-99,數字越小優先順序越高;

資源記錄的定義格式:
語法:	name	[TTL]IN	RR_TYPEvalue
客戶端可以快取的時間	資源記錄
SOA:
name:當前區域的名字;例如”magedu.com.”,或者“2.3.4.in-addr.arpa.”;
value:有多部分組成
(1)當前區域的區域名稱(也可以使用主DNS伺服器名稱);
(2)當前區域管理員的郵箱地址;但地址中不能使用@符號,一般使用點號來替代;
(3)(主從服務協調屬性的定義以及否定答案的TTL)

例如:
magedu.com.86400INSOAmagedu.com.admin.magedu.com.(
2017010801	;serial
2H;refresh
10M;retry
1W	;expire
1D	;negativeanswerttl
)

NS:
name:當前區域的區域名稱
value:當前區域的某DNS伺服器的名字,例如ns.magedu.com.;
注意:一個區域可以有多個ns記錄;

例如:
magedu.com.86400INNS	ns1.magedu.com.
magedu.com.86400INNS	ns2.magedu.com.

MX:
name:當前區域的區域名稱
value:當前區域某郵件交換器的主機名;
注意:MX記錄可以有多個;但每個記錄的value之前應該有一個數字表示其優先順序;

例如:
magedu.com.INMX10	mx1.magedu.com.
magedu.com.INMX20	mx2.magedu.com.

A:
name:某FQDN,例如www.magedu.com.
value:某IPv4地址;

例如:
www.magedu.com.	INA	1.1.1.1
www.magedu.com.	INA	1.1.1.2
bbs.magedu.com.	INA	1.1.1.1

AAAA:
name:FQDN
value:IPv6

PTR:
name:IP地址,有特定格式,IP反過來寫,而且加特定字尾;例如1.2.3.4的記錄應該寫為4.3.2.1.in-addr.arpa.;
value:FQND

例如:
4.3.2.1.in-addr.arpa.	INPTR	www.magedu.com.

CNAME:
name:FQDN格式的別名;
value:FQDN格式的正式名字;

例如:
web.magedu.com.	IN	CNAMEwww.magedu.com.

注意:
(1)TTL可以從全域性繼承;
(2)@表示當前區域的名稱;
(3)相鄰的兩條記錄其name相同時,後面的可省略;
(4)對於正向區域來說,各MX,NS等型別的記錄的value為FQDN,此FQDN應該有一個A記錄;

許可權及屬組修改:

[[email protected]~]#chgrpnamed/var/named/wlm.com.zone
[[email protected]~]#chmodo=/var/named/wlm.com.zone


檢查語法錯誤:

[[email protected]~]#named-checkzonewlm.com/var/named/wlm.com.zone
zonewlm.com/IN:loadedserial2014100101
OK
[[email protected]~]#named-checkconf

(3)讓伺服器過載配置檔案和區域資料檔案

#rndcreload或systemctlreloadnamed.service
[[email protected]~]#rndcreload
serverreloadsuccessful

(4)驗證

[[email protected] ~]# ping ns1.wlm.com

PING ns1.wlm.com (10.10.10.3) 56(84) bytes of data.

64 bytes from 10.10.10.3: icmp_seq=1 ttl=64 time=0.036 ms


[[email protected] ~]# nslookup

> ns1.wlm.com

Server:10.10.10.3

Address:10.10.10.3#53

Name:ns1.wlm.com

Address: 10.10.10.3


4)配置一個反向解析區域

(1)定義區域

在主配置檔案中或主配置檔案輔助配置檔案中實現;

[[email protected]~]#vim/etc/named.rfc1912.zones
zone"10.10.10.in-addr.arpa"IN{
typemaster;
file"10.10.10.zone";
};

zone"ZONE_NAME"IN{
type{master|slave|hint|forward};
file"ZONE_NAME.zone";
};	
						
注意:反向區域的名字
反寫的網段地址.in-addr.arpa
示例:100.16.172.in-addr.arpa

(2) 定義區域解析庫檔案(主要記錄為PTR)

在/var/named目錄下建立區域資料檔案;示例:區域名稱為100.16.172.in-addr.arpa;(反過來寫IP)

[[email protected]named]#vim/var/named/10.10.10.zone
$TTL3600
$ORIGIN10.10.10.in-addr.arpa.
@INSOAns1.wlm.com.nsadmin.wlm.com.(
2014100801
1H
10M
3D
12H)
INNSns1.wlm.com.
3INPTRns1.wlm.com.
100INPTRmx1.wlm.com.
200INPTRmx2.wlm.com.
4INPTRwww.wlm.com.

許可權及屬組修改:

[[email protected]named]#chmodo=/var/named/10.10.10.zone
[[email protected]named]#chgrpnamed/var/named/10.10.10.zone

檢查語法錯誤:

zonewlm.com/IN:loadedserial2014100101
OK
[[email protected]named]#named-checkconf

(3) 讓伺服器過載配置檔案和區域資料檔案

#rndcreload或
#systemctlreloadnamed.service

驗證:

[[email protected]named]#dig-x10.10.10.3

;<<>>DiG9.9.4-RedHat-9.9.4-29.el7<<>>-x10.10.10.3
;;globaloptions:+cmd
;;Gotanswer:
;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:25014
;;flags:qraardra;QUERY:1,ANSWER:1,AUTHORITY:1,ADDITIONAL:2

;;OPTPSEUDOSECTION:
;EDNS:version:0,flags:;udp:4096
;;QUESTIONSECTION:
;3.10.10.10.in-addr.arpa.	IN	PTR

;;ANSWERSECTION:
3.10.10.10.in-addr.arpa.3600	IN	PTR	ns1.wlm.com.

;;AUTHORITYSECTION:
10.10.10.in-addr.arpa.	3600	IN	NS	ns1.wlm.com.

;;ADDITIONALSECTION:
ns1.wlm.com.		3600	IN	A	10.10.10.3

;;Querytime:26msec
;;SERVER:10.10.10.3#53(10.10.10.3)
;;WHEN:三11月1613:55:13CST2016
;;MSGSIZErcvd:107

至此,主域名伺服器已經配置好了。已經可以使用了。

5、輔域名伺服器配置

在準備工作已經說過了,這裡在新增上/etc/named.conf的配置

options{
listen-onport53{127.0.0.1;10.10.10.10;};
listen-on-v6port53{::1;};
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";
//allow-query{localhost;};
allow-transfer{none;};

/*
-IfyouarebuildinganAUTHORITATIVEDNSserver,doNOTenablerecursion.
-IfyouarebuildingaRECURSIVE(caching)DNSserver,youneedtoenable
recursion.
-IfyourrecursiveDNSserverhasapublicIPaddress,youMUSTenableaccess
controltolimitqueriestoyourlegitimateusers.Failingtodosowill
causeyourservertobecomepartoflargescaleDNSamplification
attacks.ImplementingBCP38withinyournetworkwouldgreatly
reducesuchattacksurface
*/
recursionyes;

dnssec-enableno;
dnssec-validationno;


配置一個從區域:

1)在master DNS上新增NS記錄和A記錄

在Master上,確保區域資料檔案中為每個從服務配置NS記錄,並且在正向區域檔案需要每個從伺服器的NS記錄的主機名配置一個A記錄,且此A後面的地址為真正的從伺服器的IP地址;

$TTL3600
$ORIGINwlm.com.
@INSOAns1.wlm.com.dnsadmin.wlm.com.(
2014100101#如果slave要過載配置,這需要變更序列號
1H
10M
3D
1D)
INNSns1
INNSns2#NS記錄
INMX10mx1
INMX20mx2
ns2INA10.10.10.10#A記錄
ns1INA10.10.10.3
mx1INA10.10.10.100
mx2INA10.10.10.200
wwwINA10.10.10.4
webINCNAMEwww

語法檢查並重新配置

[[email protected]named]#named-checkzonewlm.com/var/named/wlm.com.zone
zonewlm.com/IN:loadedserial2014100101
OK
[[email protected]named]#rndcreload
serverreloadsuccessful

2) 在slave DNS上定義區域

[[email protected]~]#vim/etc/named.rfc1912.zones
zone"wlm.com"IN{
typeslave;#slave標記為從伺服器
file"slaves/wlm.com.zone";#×××區域檔案在/var/named/slaves目錄下,特定的
masters{10.10.10.3;};#填寫主域名伺服器IP
};

書寫格式:
zone"ZONE_NAME"IN{
typeslave;
file"slaves/ZONE_NAME.zone";
masters{MASTER_IP;};
};

3) 過載配置

配置檔案語法檢查
named-checkconf
過載配置
rndcreload
systemctlreloadnamed.service

說明:當主域名伺服器裡添加了新記錄,只需要主域名伺服器過載配置,從域名伺服器自動同步。

驗證:

(1)在/var/named/slaves目錄下自動同步wlm.com.zone檔案

[[email protected]slaves]#pwd
/var/named/slaves
[[email protected]slaves]#ls
wlm.com.zone

(2)可以解析域名

[[email protected]slaves]#dig-tAwww.wlm.com

;<<>>DiG9.9.4-RedHat-9.9.4-29.el7<<>>-tAwww.wlm.com
;;globaloptions:+cmd
;;Gotanswer:
;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:27069
;;flags:qraardra;QUERY:1,ANSWER:1,AUTHORITY:2,ADDITIONAL:3

;;OPTPSEUDOSECTION:
;EDNS:version:0,flags:;udp:4096
;;QUESTIONSECTION:
;www.wlm.com.			IN	A

;;ANSWERSECTION:
www.wlm.com.		3600	IN	A	10.10.10.4

;;AUTHORITYSECTION:
wlm.com.		3600	IN	NS	ns1.wlm.com.
wlm.com.		3600	IN	NS	ns2.wlm.com.

;;ADDITIONALSECTION:
ns1.wlm.com.		3600	IN	A	10.10.10.3
ns2.wlm.com.		3600	IN	A	10.10.10.10

;;Querytime:1msec
;;SERVER:10.10.10.10#53(10.10.10.10)
;;WHEN:三11月1614:20:52CST2016
;;MSGSIZErcvd:124

至此,輔域名伺服器配置完畢

6、快取域名伺服器配置

在上面的準備工作做完了,預設就配置好了快取域名伺服器。

但是我們這裡還有在做兩點,為大家更好的理解域名伺服器的配置。

定義轉發:

注意:被轉發的伺服器必須允許為當前服務做遞迴;

1) 區域轉發:僅轉發對某特定區域的解析請求;

配置格式:
	zone"ZONE_NAME"IN{
	typeforward;
	forward{first|only};
	forwarders{SERVER_IP;};
	};
	first:首先轉發;轉發器不響應時,自行去迭代查詢;
	only:只轉發;


具體配置:

[[email protected]~]#vim/etc/named.rfc1912.zones#在最後面新增
zone"wlm.com"IN{
typeforward;
forwardfirst;
forwarders{10.10.10.3;};
};

語法檢查,重啟bind

[[email protected]~]#named-checkconf
[[email protected]~]#systemctlrestartnamed.service

驗證:

[[email protected]~]#dig-tAwww.wlm.com

;<<>>DiG9.9.4-RedHat-9.9.4-29.el7<<>>-tAwww.wlm.com
;;globaloptions:+cmd
;;Gotanswer:
;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:5158
;;flags:qrrdra;QUERY:1,ANSWER:1,AUTHORITY:2,ADDITIONAL:3

;;OPTPSEUDOSECTION:
;EDNS:version:0,flags:;udp:4096
;;QUESTIONSECTION:
;www.wlm.com.			IN	A

;;ANSWERSECTION:
www.wlm.com.		3600	IN	A	10.10.10.4

;;AUTHORITYSECTION:
wlm.com.		3600	IN	NS	ns2.wlm.com.
wlm.com.		3600	IN	NS	ns1.wlm.com.

;;ADDITIONALSECTION:
ns1.wlm.com.		3600	IN	A	10.10.10.3
ns2.wlm.com.		3600	IN	A	10.10.10.10

;;Querytime:53msec
;;SERVER:10.10.10.11#53(10.10.10.11)
;;WHEN:三11月1615:20:59CST2016
;;MSGSIZErcvd:124



2) 全域性轉發:針對凡本地沒有通過zone定義的區域查詢請求,通通轉給某轉發器;

配置格式:
	options{
	......
	forward{only|first};
	forwarders{SERVER_IP;};
	.....
	};

具體配置:

vim/etc/named.conf
options{
listen-onport53{127.0.0.1;10.10.10.11;};#監聽本機的IP埠
listen-on-v6port53{::1;};
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";
//allow-query{localhost;};#允許為其他主機解析
allow-transfer{none;};#從伺服器不需要傳送
forwardfirst;#本機不能解析的轉發給10.10.10.3做解析
forwarders{10.10.10.3;};#被轉發的伺服器IP
/*
-IfyouarebuildinganAUTHORITATIVEDNSserver,doNOTenablerecursion.
-IfyouarebuildingaRECURSIVE(caching)DNSserver,youneedtoenable
recursion.
-IfyourrecursiveDNSserverhasapublicIPaddress,youMUSTenableaccess
controltolimitqueriestoyourlegitimateusers.Failingtodosowill
causeyourservertobecomepartoflargescaleDNSamplification
attacks.ImplementingBCP38withinyournetworkwouldgreatly
reducesuchattacksurface
*/
recursionyes;

dnssec-enableno;#關閉
dnssec-validationno;#關閉

語法檢查然後重啟bind

[[email protected]~]#systemctlrestartnamed.service

驗證:

[[email protected]~]#pingwww.baidu.com
PINGwww.a.shifen.com(220.181.112.244)56(84)bytesofdata.
64bytesfrom220.181.112.244:icmp_seq=1ttl=128time=6.67ms
p64bytesfrom220.181.112.244:icmp_seq=2ttl=128time=6.60ms
^C
---www.a.shifen.compingstatistics---
2packetstransmitted,2received,0%packetloss,time1005ms
rttmin/avg/max/mdev=6.608/6.640/6.672/0.032ms
[[email protected]~]#pingwww.wlm.com
PINGwww.wlm.com(10.10.10.4)56(84)bytesofdata.
^C
---www.wlm.compingstatistics---
2packetstransmitted,0received,100%packetloss,time1001ms

總結:總體上,DNS的配置還是比較簡單的。雖然在日常運維中,可能不需要進行實戰,畢竟企業內部部署域名伺服器的不多,即使有,也是後期的維護了。但是作為運維人員,熟悉DNS的工作原理是非常必要的,通過這些配置,我相信你已經真正的熟悉了DNS。

本來還想配置子域名伺服器的,後來覺得沒必要了。具體的邏輯圖如下,供大家參考。

wKioL1gsDCKgZ2YmAADRRyxmWAA570.jpg

轉載於:https://blog.51cto.com/afterdawn/1420116