DNS的理论详解
【文章来自:无忧天使】

DNS是什么及BIND讲解内容

域名系统(英文:Domain Name System,缩写:DNS)是internet的一项服务。它作为将域名和IP地址相互映射服务,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

讲解内容:

DNS名称解析方式

DNS查询类型

DNS服务器类型

区域数据库文件详解

Centos7安装配置BIND

BIND主从服务器配置

BIND安全相关配置

BIND view视图配置

一、DNS名称解析方式

DNS名称解析方式分为两种:

名称 ---> IP   

例如:此处命令会在后面工具中具体详解

# 可以看出“名称” www.magedu.com对应的ip是101.200.188.230

# dig -t A www.magedu.com
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.magedu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17179
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 10

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.magedu.com.INA

;; ANSWER SECTION:
www.magedu.com.589INA101.200.188.230

;; AUTHORITY SECTION:
magedu.com.159640INNSv2s1.xundns.com.
magedu.com.159640INNSv2s2.xundns.com.

例如:此处命令会在后面工具中具体详解

# 可以看出“IP"172.16.0.1对应的名称是server.mageliunx.com.

IP   ---> 名称

# dig -x 172.16.0.1

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -x 172.16.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1126
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1.0.16.172.in-addr.arpa.INPTR

;; ANSWER SECTION:
1.0.16.172.in-addr.arpa. 86400INPTRserver.magelinux.com.

;; AUTHORITY SECTION:
16.172.in-addr.arpa.86400INNSserver.magelinux.com.

;; ADDITIONAL SECTION:
server.magelinux.com.86400INA172.16.0.1

;; Query time: 2 msec
;; SERVER: 172.18.0.1#53(172.18.0.1)
;; WHEN: Fri Apr 08 21:47:00 CST 2016
;; MSG SIZE  rcvd: 116

二、DNS查询类型

DNS查询类型分为:

递归查询

迭代查询

下图是本人对dns查询过程的理解

三、DNS服务器类型

主DNS服务器:维护所负责解析的域数据库的那台服务器:读写操作均可进行;

从DNS服务器:从主DNS服务器那里或其他的从DNS服务器那里“复制”一份解析库;但只能进行读操作
“复制”操作的实施方式

序列号:serial,也即是数据库版本号;主服务器数据库内容发生变化时,其版本号递增;
刷新时间间隔:refresh,从服务器每多久到从服务器检查序列号更新情况;

重试时间间隔:retry,从服务器从主服务器请求同步解析失败时,再次发起请求尝试的时间间隔
过期时长:expire,从服务器始终联系不到主服务器时,多久之后放弃主服务器同步;停止提供服务。

否定答案的缓存时长:缓存错误的地址的时间

此内容在BIND中的区域文件中配置

例如:

$TTL 33600

@       IN      SOA     ns1.magedu.com. admin.magedu.com. (
2016040801 ;seria
2H         ;refresh
10M        ;retry
1W         ;expire
1D         ;negative answer ttl
)

四、区域数据库文件详解

区域文件一般存于/var/named/下,以ZONE_NAME.zone命名,其中包含了很多参数。

资源记录 :Resource Record,简称rr

记录类型有:A,AAAA,PTR,SOA,NS,CNAME,MX

语法:

name  [TTL]  IN    RR_TYPE     value

SOA:

Start Of Authority,其实授权记录()额区域解析库有且只能有一个SOA记录,而且必须放在第一条

NS :Name Service,域名服务记录;一个区域解析库可以有多个NS记录;其中一个为主的

A :Address,地址记录,FQDN --> IPV4

AAAA 地址记录, FQDN --> IPv6

CNAME :Canonical Name,别名记录

PTR :Pointer,反向指针记录:IP --> FQDN

MX:Mail eXchanger,邮件交换器

优先级:0-99,数字越小优先级越高

使用方法及格式:

SOA:

name: 当前区域的名字;例如”mageud.com.”,或者“2.3.4.in-addr.arpa.”;

value:有多部分组成

(1) 当前区域的区域名称(也可以使用主DNS服务器名称);

(2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般使用点号来替代;

(3) (主从服务协调属性的定义以及否定答案的TTL)

$TTL 33600

@       IN      SOA     ns1.magedu.com. admin.magedu.com. (
2016040801 ;seria
2H         ;refresh
10M        ;retry
1W         ;expire
1D         ;negative answer ttl
)

NS:

name:当前区域的区域名称

value:当前区域的某DNS服务器的名字,例如ns.magedu.com.

注意:一个区域可以有多个ns记录

例如:

zhaoxin.com.    86400    IN    NS    ns1.zhaoxin.com.

zhaoxin.com.    86400    IN    NS    ns2.zhaoxin.com.

MX:

name: 当前区域的区域名称

value:当前区域某邮件交换器的主机名;

注意:MX记录可以有多个;但每个记录的value之前应该有一个数字表示其优先级;

例如:

zhaoxin.com. IN MX 10  mx1.zhaoxin.com.

zhaoxin.com. IN MX 20  mx2.zhaoxin.com.

A:

name:某FQDN,例如www.maged.com.

value:某IPV4地址

例如:

www.zhaoxin.com.    IN    A     222.145.33.26

www.zhaoxin.com.    IN    A     222.145.33.26

AAAA:

name:FQDN

value:IPV6

PTR:

name:IP地址,有特定格式,IP反过来写,而且加特定后缀:例如172.16.100.10应该写为10.100.16.172.in-addr.arpa

value:FQDN

例如:

10.100.16.172.in-addr.arpa    IN    PTR    www.zhaoxin.com.

CNAME:

name:FQDN格式的别名;

value:FQDN格式的正式名字;

例如:

web.zhaoxin.com.    IN    CNAME     www.zhaoxin.com.  

有以下几点需要注意:

(1) TTL可以从全局继承;

(2) @表示当前区域的名称;

(3) 相邻的两条记录其name相同时,后面的可省略;

(4) 对于正向区域来说,各MX,NS等类型的记录的value为FQDN,此FQDN应该有一个A记录;