一、什么是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机制!