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解析时正向和反向使用的是不同的数据库文件,这种数据库被称为区域。

文件是真实存在的。


包含关系:

没有明确的包含关系。

在一个域中,域的范围比区域大。但是这个域的授权是来自上级的某个区域文件中定义的。