DNS-bind

 

DNS: Domain Name Service,协议(C/S, 53/udp, 53/tcp);应用层协议;

BINDBekerley Internat Name Domain, ISC www.isc.org

 

TCP: 面向连接的协议;

UDP: User Datagram Protocol,无连接协议

 

本地名称解析配置文件:hosts

/etc/hosts

%WINDOWS%/system32/drivers/etc/hosts

1.1.1.1www.magedu.com

1.2.2.2www.apple.com

 

Top Level Domain: tld (顶级域)

com, edu, mil, gov, net, org, int

 

三类:组织域、国家域(.cn, .iq, .hk, .tw)、反向域

 

DNS查询类型:

递归查询

迭代查询

 

名称服务器:域内负责解析本域内的名称的主机;

根服务器:13组服务器

 

解析类型:

注意:正反向解析是两个不同的名称空间,是两棵不同的解析树;

 

DNS服务器的类型:

DNS服务器

辅助DNS服务器

缓存DNS服务器

转发器

 

DNS服务器:维护所负责解析的域内解析库服务器;解析库由管理维护;

DNS服务器:从主DNS服务器或其它的从DNS服务器那里“复制”(区域传递)一份解析库;

序列号:解析库的版本号;前提:主服务器解析库内容发生变化,其序列递增;

刷新时间间隔:从服务器从主服务器请求同步解析库的时间间隔;

重试时间间隔:从服务器从主服务器请求同步解析库失败时,再次尝试的时间间隔;

过期时长:从服务器始终联系不到主服务器时,多久多后放弃从服务器角度,停止提供服务;

 

"通知"机制:

 

 

 

区域传送:

全量传送:传送整个解析库

增量传送:传递解析库变化的那部分内容

 

DNS:

Domain:

正向:FQDN --> IP

反向: IP --> FQDN

 

各需要一个解析库来分别负责本地域名的正向和反向解析

正向区域

反向区域

 

FQDN: Qualified Domain Name Full (域名全称)

www.magedu.com.

 

一次完整的查询请求经过的流程:

Client --> hosts文件 --> DNS Service

Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) -->

 

解析答案:

肯定答案:

否定答案:请求的条目不存在等原因导致无法返回结果;

 

 

区域解析库:由众多RR组成:

资源记录:Resource Record, RR

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

 

SOAStart Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,而必须为解析库的第一条记录;

Ainternet Address,作用,FQDN --> IP

AAAA: FQDN --> IPv6

PTR: PoinTeRIP --> FQDN

NS: Name Server,专用于标明当前区域的DNS服务器

CNAMECanonical Name,别名记录

MX: Mail eXchanger,邮件交换器

 

资源记录定义的格式:

语法:name        [TTL]        IN         rr_type         value

 

注意:

(1) TTL可从全局继承;

(2) @可用于引用当前区域的名字;

(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应;

(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机而已;

 

SOA:

name: 当前区域的名字,例如“magedu.com.”

value: 有多部分组成

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

(2) 录前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换,例如linuxedu.magedu.com

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

 

例如:

magedu.com.         86400         IN         SOA         ns.magedu.com.         nsadmin.magedu.com.         (

2015042201  ;序列号

2H          ;刷新时间

10M                        ;重试时间

1W                        ;过期时间

1D                        ;否定答案的TTL

)

 

NS:

name: 当前区域的名字

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

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

 

例如:

magedu.com.                IN                 NS          ns1.magedu.com.

magedu.com.                IN                 NS          ns2.magedu.com.

 

注意:

(1) 相邻的两个资源记录的name相同时,后续的可省略;

(2) NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录;

 

MX:

name: 当前区域的名字

value: 当前区域的某邮件服务器(smtp服务器)的主机名;

一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高;

 

例如:

magedu.com.                IN          MX  10  mx1.magedu.com.

IN                 MX  20  mx2.magedu.com.

 

注意:

(1) MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录;

 

A:

name: 某主机的FQDN,例如www.magedu.com.

value: 主机名对应主机的IP地址;

 

例如:

www.magedu.com.                IN          A         1.1.1.1

www.magedu.com.                IN          A          1.1.1.2

 

mx1.magedu.com.         IN            A   1.1.1.3

mx2.magedu.com.          IN           A   1.1.1.3

 

注意:

*.magedu.com.                 IN          A          1.1.1.4

magedu.com.                        IN           A   1.1.1.4

 

避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址;

 

AAAA:

name: FQDN

value: IPv6

 

PTR:

name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addra.arpa.

value: FQDN

 

例如:

4.3.2.1.in-addr.arpa.         IN         PTR         www.magedu.com

简写成:

4          IN  PTR         www.magedu.com.

 

注意:网络地址及后缀可省略;主机地址依然需要反着写;

 

CNAME

name: 别名的FQDN

value: 正工名字的FQDN

 

例如:

web.magedu.com.         IN          CNAME          www.magedu.com.

 

 

 

DNS and BIND(2)

 

子域授权:每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权;

 

类似根域授权tld:

.com.        IN                 NS          ns1.com.

.com.   IN           NS                 ns2.com.

ns1.com.         IN                 A         2.2.2.1

ns2.com.          IN                 A         2.2.2.2

 

magedu.com. .com的名称服务器上,解析库中添加资源记录:

magedu.com.         IN         NS                 ns1.magedu.com.

magedu.com.         IN         NS                 ns2.magedu.com.

magedu.com.         IN         NS                 ns3.magedu.com.

ns1.magedu.com.         IN         A          3.3.3.1

ns2.magedu.com.         IN         A          3.3.3.2

ns3.magedu.com.         IN         A          3.3.3.3

 

glue record:粘合记录

 

 

 

BIND的安装配置:

 

dns服务,程序包名bind,程序名named

 

程序包:

bind

bind-libs

bind-utils

 

bind-chroot: /var/named/chroot/

 

bind

服务脚本:/etc/rc.d/init.d/named

主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key

解析库文件:/var/named/ZONE_NAME.ZONE

 

注意:

(1) 一台物理服务器可同时为多个区域提供解析;

(2) 必须要有根区域文件;named.ca

(3) 应该有两个(如果包括ipv6的,应该更多)实现localhost和本地回环地址的解析库;

 

rndc: remote name domain controller,默认与bind安装在同一主机,且只能通过127.0.0.1来连接named进程;提供辅助性的管理功能;

953/tcp

 

主配置文件:

全局配置:options {}

日志子系统配置:logging {}

区域定义:本机能够为哪些zone进行解析,就要定义哪些zone

zone "ZONE_NAME" IN {}

 

注意:任何服务程序如果期望其能够通过网络被其它主机访问,至少应该监听在一个能与外部主机通信的IP地址上;

 

缓存名称服务器的配置:

监听外部地址即可;

 

dnssec:

建议测试时关闭dnssec

 

DNS名称服务器:

(1) 在主配置文件中定义区域

zone "(区域名)" IN {

type {master|slave|hint|forward};

file "区域文件";

};

 

(2) 定义区域解析库文件

 

出现的内容:

宏定义;

资源记录;

 

示例:

$TTL 86400

$ORIGIN magedu.com.

@        IN        SOA        ns1.magedu.com.        admin.magedu.com (

2015042201

1H

5M

7D

1D )

IN        NS        ns1

IN        NS        ns2

IN        MX 10        mx1

IN        MX 20        mx2

ns1        IN        A        172.16.100.11

ns2        IN        A        172.16.100.12

mx1        IN        A        172.16.100.13

mx2        IN        A        172.16.100.14

www        IN        A        172.16.100.11

www        IN        A        172.16.100.12

ftp        IN        CNAME        www

 

 

测试命令:dig的使用

dig [-t type] name [@SERVER] [query options]

如:dig -t A www.zhao.com @172.16.249.29

 

dig用于测试dns系统,因此,不会查询hosts文件进行解析;

 

查询选项:

+[no]trace:跟踪解析过程

+[no]recurse:进行递归解析

 

测试反向解析:

dig -x IP @SERVER

 

模拟区域传送:

dig -t axfr ZONE_NAME @SERVER

 

例如:dig -t axfr magedu.com @172.16.100.11

 

 

注:/etc/named.conf  主配置文件监听的ip127.0.0.1  如果需要监听所有改为

listen-on port 53 { any; };

allow-query     { any; };

还有请求限制改为允许所有即可

反向区域:

 

区域名称:网络地址反写.in-addr.arpa.

172.16.100. --> 100.16.172.in-addr.arpa.

 

(1) 定义区域

zone "ZONE_NAME" IN {

type {master|slave|forward}

file "网络地址.zone"

};

 

(2) 区域解析库文件

注意:不需要MXA,以及AAAA记录;以PTR记录为主;

 

示例:

$TTL 86400

$ORIGIN 100.16.172.in-addr.arpa.

@        IN        SOA        ns1.magedu.com. admin.magedu.com. (

2015042201

1H

5M

7D

1D )

IN        NS        ns1.magedu.com.

IN        NS        ns2.magedu.com.

11        IN        PTR        ns1.magedu.com.

11        IN        PTR        www.magedu.com.

12        IN        PTR        mx1.magedu.com.

12        IN        PTR        www.magedu.com.

13        IN        PTR        mx2.magedu.com.        

 

主从复制:

1、应该为一台独立的名称服务器;

2、主服务器的区域解析库文件中必须有一条NS记录是指向从服务器;

3、从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中;

4、主服务器得允许从服务器作区域传送;

5、主从服务器时间应该同步,可通过ntp进行;

6bind程序的版本应该保持一致;否则,应该从高,主低;

 测试命令:dig -t afxr  域名 @域名服务器地址 

定义从区域的方法:

zone "ZONE_NAME" IN {

type slave;

masters { MASTER_IP; };

file "slaves/ZONE_NAME.zone";

};

    


rndc

rndc --> rndc (953/tcp)

 

rndc COMMAND

 

COMMAND:

reload: 重载主配置文件和区域解析库文件

reload zone: 重载区域解析库文件

retransfer zone: 手动启动区域传送过程,而不管序列号是否增加;

notify zone: 重新对区域传送发通知;

reconfig: 重载主配置文件

querylog: 开启或关闭查询日志;

trace: 递增debug级别;

trace LEVEL: 指定使用的级别;