前言
我们在访问一个网站的时候,只要输入该网站的网址就会跳转到该网站页面,而实现这一过程就需要DNS服务器将域名解析为IP地址,进而实现数据通信。那么DNS服务器是如何工作的呢?本系列分为两部分,本文将详解DNS服务原理及正反向解析配置。
DNS服务原理详解
DNS相关知识
DNS:Domain Name Service,域名解析服务
监听端口:udp/53,tcp/53
应用程序:bind
根域:.
一级域:
组织域:.com, .org, .net, .mil, .edu, .gov, .info, .cc, .me, .tv
国家域:.cn, .us, .uk, .jp, .tw, .hk, .iq, .ir
反向域:.in-addr.arpa
DNS树状结构
解析方式
正向解析:FQDN --> IP
反向解析:IP --> FQDN
FQDN:(Fully Qualified Domain Name)全称域名
DNS查询方式
递归:DNS请求被服务器接受后,如果属于此服务器管辖范围则请求上级服务器依次传递请求,并且依次传递结果给发出请求的主机。
1
|
#客户端指向的服务器一定给递归服务
|
迭代: DNS请求被服务器接受后,如果不是自己管辖范围,让客户端访问根域服务器,然后跟域通知客户端去访问下级服务器,直到最后客户端访问管辖请求域名的服务器为止。
区域解析库
资源记录:rr(resource record)用于此记录解析的属性
SOA: Start Of Authority, 起始授权记录,一个区域文件只能有一个
NS:Name Server,域名服务器
MX: Mail eXchange, 邮件交换器,MX记录有优先级属性(0-99)
A:FQDN --> IP,专用于正向解析库
PTR: IP --> FQDN,专用于反向解析库
AAAA:FQDN --> IPv6,专用于正向解析库
CNAME: Canonical Name,正式名称
DNS服务器类型
主DNS服务器
从DNS服务器
缓存服务器
区域传送
解析库文件同步的过程,即辅助DNS服务器与主DNS服务器间的区域文件同步传输过程。
完全区域传送:传送区域的所有数据,AXFER
增量区域传送:传送区域中改变的数据,IXFER
DNS资源记录格式
格式:
1
|
name [ttl] IN RRType value
|
SOA记录:
1
2
3
4
5
6
7
8
9
10
11
12
|
name: 区域名称,通常可以简写为@
value: 主DNS服务器的FQDN,也可以当前区域的区域名称
注意:任何解析库文件的第一个记录的类型必须是SOA
例如:
@ IN SOA ns.scholar.com. admin.scholar.com. (
serial number ;
#解析库版本号,例如2015040701
refresh
time
;
#刷新时间,即同步时间
retry
time
;
#重试时间
expire
time
;
#过期时间
negative answer ttl ;
#否定答案的统一缓存时长
)
|
NS记录:
1
2
3
4
5
6
7
|
name: 区域名称
value: DNS服务器的FQDN
注意:如果有多台NS服务器,每一个都必须有对应的NS记录;
对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;
例如:
@ IN NS ns.scholar.com.
|
MX记录:
1
2
3
4
5
6
7
8
9
|
name: 区域名称
value: 邮件服务器的FQDN
优先级:0-99.数字越小,越优先
注意:如果有多台MX服务器,每一个都必须有对应的MX记录;但各MX记录还有优先级属性
对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;
例如:
@ IN MX 10 mail.scholar.com.
@ IN MX 20 mail2.scholar.com.
|
A记录:
1
2
3
4
5
6
7
8
|
name: FQDN(可简写)
value: IP
例如:
www IN A 172.16.10.10
www IN A 172.16.10.100
pop3 IN A 172.16.10.10
imap IN A 172.16.10.10
|
AAAA记录:
1
2
|
name: FQDN(可简写)
value: ipv6 IP
|
CNAME记录:
1
2
3
4
5
6
|
name: FQDN
value: FQDN
例如:
www IN A 172.16.10.10
ftp
IN CNAME www
|
PTR记录:
1
2
3
4
5
6
|
name: 逆向的主机IP地址加后缀
in
-addr.arpa,例如172.16.10.10
/16
, 网络地址为172.16,
主机地址为10.10,其name为10.10.
in
-addr.arpa.(可简写)
value: FQDN
例如:
10 IN PTR www.scholar.com.
|
DNS服务配置之正反向解析
服务程序包介绍
Linux下可提供DNS服务的程序包为bind(bekerley internet name domain)
服务脚本:/etc/rc.d/init.d/named
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones
区域解析库文件:/var/named/zone_name.zone
主配置文件中通常有三个区域:根、localhost、127.0.0.1的反向区域
域类型:主域(master)、从域(slave)、缓存域(hint)、转发域(forward)
实战正反向解析配置
案例要求:
DNS服务器地址:172.16.10.10
www:172.16.10.10
mail:172.168.10.12
pop:mail别名,指向mail
ftp:www别名,指向www
要求可以实现正反向解析
编辑主配置文件,添加正向区域和反向区域
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
|
[root@scholar ~]
# vim /etc/named.conf
options {
#全局配置
//listen-on
port 53 { 127.0.0.1; };
#注释后监听全部IP的53端口
//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
{ localhost; };
#访问控制,注释后允许所有IP访问
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"
;
};
zone
"scholar.com"
IN {
#正向区域
type
master;
file
"scholar.com.zone"
;
};
zone
"10.16.172.in-addr.arpa"
IN {
#反向区域
type
master;
file
"172.16.10.zone"
;
};
include
"/etc/named.rfc1912.zones"
;
//include
"/etc/named.root.key"
;
|
创建正向区域文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@scholar named]
# vim scholar.com.zone #必须与区域文件名保持一致
$TTL 3600
@ IN SOA dns.scholar.com. admin.scholar.com. (
2015040701
2H
10M
7D
1D )
@ IN NS dns
@ IN MX 10 mail
dns IN A 172.16.10.10
mail IN A 172.16.10.12
www IN A 172.16.10.10
pop IN CNAME mail
ftp
IN CNAME www
|
创建反向区域文件
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@scholar named]
# vim 172.16.10.zone #必须与区域文件名保持一致
$TTL 3600
@ IN SOA dns.scholar.com. admin.scholar.com. (
2015040701
2H
10M
7D
1D )
@ IN NS dns.scholar.com.
10 IN PTR dns.scholar.com.
12 IN PTR mail.scholar.com.
10 IN PTR www.scholar.com.
|
修改权限及属组
检查语法,启动服务并设置开机自启
查看tcp和upd的53端口是否开启
正向解析测试
反向解析测试
The end
经过以上测试,正向反向都可以成功解析,至此DNS服务的基本服务算是完成了,测试命令除了dig还可使用nslookup等,想了解dig和其它测试命令命令想自行查手册,这里不做详解了。第二部分将会讲解主从复制,子域授权和转发以及view,如有兴趣请关注下文。
以上仅为个人学习整理,如有错漏,大神勿喷~~~
本文转自 北城书生 51CTO博客,原文链接:http://blog.51cto.com/scholar/1629834