DNS:Domain Name Sservice
域名解析。基于软件BIND。是一个分布式数据库。
FQDN:Full Qualifide Domain Name 完全限定域名。
域结构:
. 根域
TLD(Top Level Domain 顶级域):
组织域:
.com
.org
.net
.cc
国家域:
.cn
.tw
.hk
...
反向域:
将IP地址解析为FQDN。
IP-->FQDN
子域:
test
...
子域仅知道其直接下级,而下级子域只知道根域。上级域是权威应答,其他都是非权威应答。
DNS查询方式:
1.递归查询
只发出一次请求。
A向B查询,B不知道,B向C查询,C知道并将结果返回给B,B再返回给A。
A-->B-->C-->B-->A
注意:根和顶级域是不进行任何递归的。
2.迭代查询
发出多次请求。
A向B查询,B不知道,告知A可能C知道。A向C查询,C知道并将结果返回给A。若C不知道则将D的告诉A,A再向D查询。以此类推
A-->B-->C
A-->C-->D
A-->D-->A
...
不同主机类型查询方式:
递归客户端:
本地客户端请求。
本地主机向DNS服务器发出请求是递归的,即主机的请求只发送一次。DNS服务器对其请求进行响应。DNS服务器自己向其他服务器查询是是迭代的。
迭代客户端:
外部客户端请求:
互联网中主机查询使用先迭代,只能向根域发送请求,但因根域和TLD是不进行递归的,只负责返回相应的子域,这个过程是迭代的。然后主机向对应的子域发送请求,进行递归查询。
请求权威应答:
某子域的上级域为该域的权威,其回答即为权威答案。权威应答是绝对真实的。只能返回以下两种:
肯定答案,即有。
否定答案,即没有。
请求非权威答案:
某子域向其他域发送请求,此时其他域回答为非权威答案,一般情况下是不允许应答的。若其他域做了相关信任,则可以应答,但返回的仍然是非权威应答。
DNS解析:
正向:FQND-->IP
反向:IP-->FQDN
两者使用的不是同一个数据库。
解析实例:
有域为test.com. 10.0.0.0/8
dns为10.0.0.3
www为10.0.0.2 10.0.0.5
mail为10.0.0.4
ftp 在www主机上
在.com的数据库中:
test.com. 600 IN NS ns.test.com.
ns.test.com 600 IN A 10.0.0.3
10.0.0.3 600 IN PTR ns.test.com.
建立区域文件:
正向:
test.com. 600 IN SOA
或简写为
@ 600 IN SOA
www.test.com. 600 IN A 10.0.0.2
或简写为
www 600 IN A 10.0.0.2
mail.test.com. 600 IN MX 10 10.0.0.4
反向:
0.0.10.in-addr.arpa. 600 IN SOA
2.0.0.10.addr.arpa. 600 IN PTR www.test.com.
或简写为
2 600 IN PTR www.test.com.
DNS主从模型:
1.主DNS服务器:进行数据的修改。
2.辅助DNS服务器:向主DNS服务器请求数据同步(pull机制)
数据同步时间的定义:
1.serial number 序列号,最长10位。
2.refresh 刷新时间间隔
3.retry 重试时间,是小于refresh时间的。
4.expire 过期时间。
5.nagative answer TTL 否定答案的缓存时长。
3.缓存DNS服务器
4.转发器
区域传送(主从复制):
完全区域传送(axfr)
增量区域传送(ixfr)
在区域传送中的区域类型:
主区域:master
从区域:slave
提示区域:hint(根域相关)
转发区域:forward
资源记录
数据库中,每个条目称作一个资源记录(Resource Record RR)。
格式如下:
NAME [TTL] IN RRT VALUE
具体内容:
1.NMAE 指定FQDN或IP。
2.TTL 生存时间,可以在定义全局TTL后省略。使用$TTL
3.IN 表示这是internet主机。
4.RRT 资源记录类型:
@:等同于ZONENAME
;:注释信息
SOA:
Start Of Authority 起始授权记录
用于标明一个ZONE内,主从服务器如何同步数据,以及定义起始授权对象。
定义在正向和反向中。
ZONENAME TTL IN SOA FQDN ADMINMAILADD (
serial number
refresh
retry
expire
na ttl)
时间单位:
S 秒钟 second(默认)
M 分钟 min
H 小时 hour
D 天 day
W 周 week
ADMINIMAILADD:
USERNAME.ZONENAME.
注意:这里不能使用@,要替换为.。
例如:
admin.test.com.
NS:
定义在正向和反向中。
Name Server 区域名称 ZONENAME --> FQDN
MX:
Mail eXchanger 邮件交换。
定义在正向中。
ZONENAME --> FQDN(mail)
ZONENAME TTL IN MX PRI VALUE
PRI 优先级:从0-99,数字越小级别越高。
A:
定义在正向中。
address FQDN --> IPv4
AAAA:
FQDN --> IPv6
PTR:
定义在反向中。
pointer 指针记录 IP --> FQDN
CNAME:
Canonical Name,正式名称。
别名记录 FQDN --> FQDN
5.VALUE 指定FQDN或IP
例如:
test.com 600 IN SOA admin.test.com. (
1
1H
5M
1W
1D)
test.com. 600 IN NS ns.test.com.
ns.test.com. 600 IN A 1.1.1.2
1.1.1.2 600 IN PTR ns.test.com.
test.com. 600 IN MX 10 mail1.test.com.
test.com. 600 IN MX 20 mail2.test.com.
mail1.test.com. 600 IN A 1.1.1.3
1.1.1.3 600 IN PTR mail1.test.com.
mail2.test.com. 600 IN A 1.1.1.4
1.1.1.4 600 IN PTR mail2.test.com.
www.test.com. 600 IN A 1.1.1.1
1.1.1.1 600 IN PTR www.test.com.
www2.test.com 600 IN CNAME www.test.com
www2.test.com 600 IN A 1.1.1.9
1.1.1.9 600 IN PTR www2.test.com
域和区域:
域:DOMAIN 逻辑概念
是被人为定义的。
区域:ZONE 物理概念
DNS解析时正向和反向使用的是不同的数据库文件,这种数据库被称为区域。
文件是真实存在的。
包含关系:
没有明确的包含关系。
在一个域中,域的范围比区域大。但是这个域的授权是来自上级的某个区域文件中定义的。