一、什么是DNS?
1.1 簡單的理解,Domain Name System,是互聯網一項核心的服務,他作為一個橋梁可以將域名和IP地址相互因素的一個分布式數據庫,能夠使人更加方便的訪問互聯網,而不用去記復雜的IP地址。
1.2 DNS分成3類:
主DNS
從DNS
轉發DNS
1.3 DNS的查詢方式
1.3.1 遞歸查詢:只要發出遞歸查詢,服務器必需回答目標IP與域名的映射關系。一般客戶機和服務器之間屬遞歸查詢,即當客戶機向DNS服務器發出請求后,若DNS服務器本身不能解析,則會向另外DNS服務器發出查詢請求,得到結果后轉交給客戶機;
1.3.2 迭代查詢:服務器收到一次迭代查詢回復一次結果,這個結果不一定是目標IP與域名的映射關系,也可以使其他的DNS服務器地址。
一般DNS服務器之間屬迭代查詢,若DNS2不能響應DNS1的請求,則它會將DNS3的IP給DNS2,以便再向DNS3發出請求;
二、主從DNS的搭建及域名的正反向解析
2.1 測試環境
准備2台虛擬機,一台為主DNS,IP地址為192.168.1.10,另一台為從DNS,IP地址為192.168.1.11
2台虛擬機都裝好bind,
1
|
[root@localhostcw ~]# yum -y install bind
|
1
|
[root@localhostcw ~]# yum install -y bind-utils (包含一些配置和測試工具)
|
bind服務器端程序
主要執行程序:/usr/sbin/named
服務腳本:/etc/init.d/named
默認監聽端口:UDP和TCP的53
主配置文件: /etc/named.conf
保存DNS解析記錄的數據文件位於:/var/named/
2.2 主DNS的配置文件
配置主配置文件/etc/named.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
options {
// listen-on port 53 { any; };
// listen-on-v6 port 53 { ::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 { any; };
recursion yes;
// dnssec-enable yes;
// dnssec-validation yes;
// dnssec-lookaside auto;
/* Path to ISC DLV key */
// bindkeys-file "/etc/named.iscdlv.key";
// managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file
"data/named.run"
;
severity
dynamic
;
};
};
zone
"."
IN {
type hint;
file
"named.ca"
;
};
include
"/etc/named.rfc1912.zones"
;
//include "/etc/named.root.key";
|
2.3定義工作目錄,添加兩個區域,一個正向解析,一個反向解析
編輯/etc/named.rfc1912.zones
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone
"localhost.localdomain"
IN {
type master;
file
"named.localhost"
;
allow-update { none; };
};
zone
"localhost"
IN {
type master;
file
"named.localhost"
;
allow-update { none; };
};
zone
"1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"
IN {
type master;
file
"named.loopback"
;
allow-update { none; };
};
zone
"1.0.0.127.in-addr.arpa"
IN {
type master;
file
"named.loopback"
;
allow-update { none; };
};
zone
"0.in-addr.arpa"
IN {
type master;
file
"named.empty"
;
allow-update { none; };
};
添加這
2
項
zone
"cwlinux.com"
IN {
//正向解析
type master;
//類型為主DNS
file
"cwlinux.com.zone"
;
//正向解析文件位置
allow-transfer {
192.168
.
1.11
; };
//授權從DNS連接主DNS
allow-update { none; };
//允許自動更新
};
zone
"1.168.192.in-addr.arpa"
IN {
//反向解析
type master;
//類型為主DNS
file
"192.168.1.zone"
;
//反向解析文件位置
allow-transfer {
192.168
.
1.11
; };
//授權從DNS連接主DNS
allow-update { none; };
//允許自動更新
};
|
2.3.1 在/var/named/目錄中添加正反向解析文件
添加正向解析文件 cwlinux.com.zone
1
|
[root@localhostcw ~]# vim /
var
/named/cwlinux.com.zone
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$TTL
600
@ IN SOA dns.cwlinux.com dnsadmin.cwlinux.com. (
//SOA字段
2015031288
//版本號 同步一次 +1
1H
//更新時間
2M
// 更新失敗,重試更新時間
2D
// 更新失敗多長時間后此DNS失效時間
1D
//解析不到請求不予回復時間
)
IN NS dns
//有兩域名服務器
IN NS ns2
IN MX
10
mial
// 定義郵件服務器,10指優先級 0-99 數字越小優先級越高
ns2 IN A
192.168
.
1.113
//ns2域名服務器的ip地址
dns IN A
192.168
.
1.10
//dns域名服務器的ip地址
mail IN A
192.168
.
1.111
//郵件服務器的ip地址
www IN A
192.168
.
1.112
//www.cwlinux.com的ip地址
pop IN CNAME mail
//pop的正式名字是mail
ftp IN CNAME www
//ftp的正式名字是www
|
添加反向解析文件 192.168.1.zone
1
|
[root@localhostcw ~]# vim /
var
/named/
192.168
.
1
.zone
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
$TTL
600
@ IN SOA dns.cwlinux.com. dnsadmin.cwlinux.com. (
2014031224
1H
2M
2D
1D
)
IN NS dns.cwlinux.com.
10
IN PTR dns.cwlinux.com.
//反向解析PTR格式
111
IN PTR mail.cwlinux.com.
112
IN PTR www.cwlinux.com.
// 聲明域的時候已經有了,192.168.1 所以我們只需要輸入10既代表192.168.1.10
|
檢查語法錯誤
把兩個自定義區域文件的屬組改為named
1
2
|
#chown :named /
var
/named/cwlinux.com.zone
//若這步沒做正向解析會出現”server can't find www.cwlinux.com:SERVFAIL”的錯誤
#chown :named /
var
/named/
192.168
.
1
.zone
//若這步沒做反向解析會出現”server can't find 10.1.168.192.in-addr.arpa:SERVFAIL”的錯誤
|
安全起見,把這2個文件權限改成640
1
|
[root@localhostcw ~]# chmod
640
cwlinux.com.zone
1.168
.
192
.zone
|
2.4 重啟主DNS,然后在主DNS上測試正反向解析
反向解析
2.5 從DNS主配置文件
vim /etc/named.conf 和主DNS配置一樣
編輯區域文件 /etc/named.rfc1912.zones
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone
"localhost.localdomain"
IN {
type master;
file
"named.localhost"
;
allow-update { none; };
};
zone
"localhost"
IN {
type master;
file
"named.localhost"
;
allow-update { none; };
};
zone
"1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"
IN {
type master;
file
"named.loopback"
;
allow-update { none; };
};
zone
"1.0.0.127.in-addr.arpa"
IN {
type master;
file
"named.loopback"
;
allow-update { none; };
};
zone
"0.in-addr.arpa"
IN {
type master;
file
"named.empty"
;
allow-update { none; };
};
添加以下
2
項
zone
"cwlinux.com"
IN {
//正向解析
type slave;
//類型為從DNS
masters {
192.168
.
1.10
; };
//主DNS ip地址
file
"slaves/cwlinux.com.zone"
;
// cwlinux.com.zone拷貝到slaves目錄下(/var/named/slaves)
allow-update { none; };
//允許自動更新
};
zone
"1.168.192.in-addr.arpa"
IN {
// 反向解析
type slave;
//類型為從DNS
masters {
192.168
.
1.10
; };
//主DNS ip地址
file
"slaves/192.168.1.zone"
;
// 192.16.1.zone拷貝到slaves目錄下(/var/named/slaves)
allow-update { none; };
//允許自動更新
};
~
|
重啟從DNS
查看/var/named/slaves/
測試正向解析
三、主從同步
在主DNS /var/named/cwlinux.com.zone 中加一條A記錄
主DNS重讀配置文件
1
|
[root@localhostcw named]# service named reload
|
到從DNS上查看是否同步復制過來
從上圖看出,數據已經同步傳輸過來了
這次先介紹了下基於bind實現的主從DNS的配置,正反向域名解析,主從復制這些內容,由於初學DNS,不足之處在所難免,敬請見諒!下次再來介紹下DNS的子域授權和轉發機制,view機制!