bind 跟服务器修改,搭建Bind DNS Server

本文详细解释了DNS解析过程,包括递归查询(client到dns-server)和迭代查询(server之间的请求传递),以及权威DNS、递归DNS和转发DNS的区别。讨论了TTL值、资源记录类型(如A、MX、NS等)、递归查询与非权威应答,并给出了DNS配置实例。
摘要由CSDN通过智能技术生成

域名分级

根域: .

顶级域: .com .cn .org .net

域: baidu.com qq.com sina.com

主机: www.baidu.com mail.sina.com

DNS解析过程

如在qq.com域下面有台client,其dns-server是dns.qq.com,则client访问www.baidu.com(dns为ns.baidu.com)时,先请求dns.qq.com,dns.qq.com查询缓存中有没有www.baidu.com条目的缓存,如果有,则直接返回www.baidu.com的IP,如果没有,则请求如下:

1. 请求 `根域`(`.`),查询`.com`域的管理Server IP

2. 请求`.com`域,查询`baidu.com`域的管理Server IP,也就是 `ns.baidu.com`

3. 请求`ns.baidu.com`,查询域中`www`主机的IP

此时,dns.qq.com将查询得到的www.baidu.com的IP返回给Client,同时缓存,在缓存还没失效之前有其他Client再次请求www.baidu.com时,则直接从缓存中取,不再查询。对于client来说是递归的(client->dns.qq.com),对于dns-server来说是迭代的(上述123过程),

DNS Server只依据条目响应查询,不负责是否存在

dns的分类

1.权威DNS:

权威DNS是经过上一级授权对域名进行解析的服务器,同时它可以把解析授权转授给其他人

2.递归DNS:

负责接受用户对任意域名查询,并返回结果给用户。

3.转发DNS:

负责接受用户查询,并返回结果给用户。

权威应答与非权威应答

如果DNS服务器在自己的区域文件里找到了客户端需要查询的记录,否则就是非权威应答

TTL值

TTL(Time- To-Live),简单的说它表示一条域名解析记录在DNS服务器上被缓存时间.当各地的DNS服务器接受到解析请求时,就会向域名指定的DNS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向DNS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值,默认单位是秒(s)。

一.增大TTL值,可以节约域名解析时间

二.减小TTL值,可以减少更换IP(A记录)后到生效的时间

资源记录(Resource Record, RR)格式

@表示继承

A记录(正向)

将域名指向一个IPv4地址,FQDN-->IPv4

FQDN:Full Qualified Domain Name,完全限定域名,如 mail.sina.com

RRT:Resource Record Type,资源记录类型。

FQND TTL IN RRT IP

www.sina.com. 600 IN A 1.1.1.1IPv6的类型为AAAA

PTR记录(反向)

IP反向查询域名,IP-->FQDN

IP TTL IN RRT FQDN

11.0.168.192.in-addr.arpa. 600 IN PTR mail.sina.com.

12.0.168.192.in-addr.arpa. 600 IN PTR ftp.sina.com.

NS记录

域名解析服务器记录,ZONE-NAME->FQDN,也叫授权记录

Zone-Name TTL IN NS FQND

163.com. 600 IN NS ns.163.com.

ns.163.com. 600 IN A 1.1.1.1

NS和A记录成组出现,构成一个完整的NS记录,多个NS记录时依次被响应

MX记录(mail exchager)

电子邮箱服务,将指向邮件服务器地址,ZONE-NAME->FQDN,MX记录有优先级(priority)之分,0-99,数字越大,优先级越高

ZONE-NAME TTL IN RRT priority FQDN

163.com. 600 IN MX 11 mail1.163.com.

mail1.163.com. 600 IN A 1.1.1.1

MX和A记录成组出现,构成一个完整的MX记录

SOA(Start Of Authority)记录

区域传送记录,描述区域传送规则(描述主从对象,以及如何主从如何同步),必须定义在数据文件的第一行

ZONE-NAME TTL IN SOA FQDN(主DNS地址) admin-mail-address (

serial number; 版本号,区域复制依据,每次主要区域修改完数据后,要手动增加它的值

refresh ; 刷新时间,辅助DNS服务器请求与源服务器同步的等待时间。当刷新间隔到期时,辅助DNS服务器请求源服务器的SOA记录副本。然后,辅助DNS服务器将源服务器的SOA记录的序列号与其本地SOA记录的序列号比较,如果不同,则辅助DNS服务器从主要DNS服务器请求区域传输。

retry ; 重试时间,辅助DNS服务器在请求失败后,等待多长时间重试。通常这个应该短于刷新时间

expire ; 过期时间,时间到期时,如辅助DNS服务器还无法与源服务器进行区域传输,则辅助DNS服务器会把它的本地数据当作不可靠数据

minimum ; 否定答案缓存时间

)

时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒

邮箱格式:admin@sina.com -写为-> admin.sina.com

sina.com. 600 IN SOA ns1.sina.com. admin.sina.com. (

2013040101

1H

5M

1W

1D )

CNAME(Canonical NAME)记录

将域名指向一个域名,FQDN->FQDN

FQDN TTL IN RRT FQDN

mail.163.com. 600 IN CNAME mail.qq.com.

泛域名解析

* 600 IN A IP #除了明确标识,其他都解析到该地址

域和区域(domain & zone)

domain是逻辑概念,如sina.com,zone是物理概念,对应数据文件

正向域

sina.com. 600 IN SOA ns1.sina.com. admin.sina.com. (

2013040101

1H

5M

1W

1D )

www 600 IN A 192.168.0.10

www2 600 IN A 192.168.0.11

sina.com. 600 IN MX 10 mail.sina.com.

mail.sina.com. 600 IN A 192.168.0.20

反向域

反向域的name为网段地址,且反写

0.168.192.in-addr.arpa IN SOA ns1.sina.com. admin.sina.com (

2013040101

1H

5M

1W

1D )

10.0.168.192.in-addr.arpa. 600 IN PTR www.sina.com.

11 IN PTR www2.sina.com.

区域类型

主区域:master

从区域:slave

提示区域:hint,定义根在什么地方

转发区域:forward,比如直接配置.com域的地址,而不从根查询

安装Bind

yum install -y bind

/etc/named.conf #主配置文件

/etc/rndc.key #rndc的密钥文件

/etc/rndc.conf #rndc配置文件

/var/named/ #区域数据文件

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

{start|stop|restart|status|reload}

/var/named/named.ca 13个根节点配置文件

一些工具

随bind安装

/usr/sbin/named-checkconf #检查配置文件

/usr/sbin/named-checkzone #检查区域文件

/usr/sbin/rndc-confgen #生成rndc配置

bind-utils 工具包

/usr/bin/dig

/usr/bin/host

/usr/bin/nslookup

设置开机启动

chkconfig named on

named.conf

options { #全局选项,对所有的zone生效

listen-on port 53 { 127.0.0.1; }; #监听IPv4及端口。这里设置表示只侦听127.0.0.1这个地址。如不定义此选项或者0.0.0.0表示侦听所有网络

listen-on-v6 port 53 { ::1; }; ##监听IPv6及端口

directory "/var/named"; #数据文件目录

notify yes;# 启用通知功能,master修改,主动通知slave

allow-query { 192.168.0.0/24; }; #允许提交查询的客户端,如不定义此选项表示允许所有查询

query-source port 53; #客户端在进行DNS查询时必须使用53做为源端口

recursion yes; #是否开启递归查询

allow-recursion {192.168.0.0/24;192.168.0.1/24};#允许提交递归查询的客户端,如不定义此选项表示允许所有

allow-transfer {192.168.0.254;};#允许区域传输的DNS服务器(辅助DNS),不写表示允许所有

forwarders {192.168.0.9;};#转发到指定服务器解析

forward only|first;#only表示如果在指定的转发器找不到,不会去向根查询,first表示快速转发(默认)

dnssec-enable yes;# 是否支持DNSSEC开关,默认为yes

dnssec-validation yes; #是否进行DNSSEC确认开关,默认为no

dnssec-lookaside auto; #当设置dnssec-lookaside,它为验证器提供另外一个能在网络区域的顶层验证DNSKEY的方法

};

logging { #日志

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

zone "." IN { #根区域定义

type hint;#区域类型

file "named.ca";#区域数据文件路径,相对与directory

#masters { master1.ip;master2.ip } #如果是从区域,指定master地址

};

zone "sina.com" IN { #正向域

type master;

file "sina.com";

};

zone "0.168.192.in-addr.arpa" IN {#反向域

type master;

file "0.168.192.zone";

};

zone类型

Master

主DNS服务器:拥有区域数据文件,并对此区域提供数据管理

Slave

辅助区域:拥有主DNS服务器区域数据文件的副本,辅助DNS服务器从主DNS服务器同步所有区域数据

Stub

stub区域和slave类似,但它只复制主DNS服务器上的NS记录,而不像辅助DNS服务器会复制所有区域数据

Forward

一个forward zone是每个域的配置转发的主要部分。一个zone语句中的type forward可以包括一个forward和或forwarders子句,它会在区域名称给定的域中查询。如果没有forwarders语句或forwarders是空表,那么这个域就不会转发,消除了options语句中有关转发的配置

Hint

根域名服务器的初始化组指定使用的线索区域hint zone,当服务器启动时,它使用根线索来查找根域名服务器,并找到最近的根域名服务器列表。如果没有指定class IN的线索区域,服务器使用编译时默认的根服务器线索。不是IN的类别没有内置的默认线索服务器

主从传送

1.修改named.conf中option定义

notify yes

2.修改named.conf中zone的定义:

zone "zone-name" IN { #根区域定义

type slave;#标明是从dns

file "slaves/named.ca";#区域数据文件路径,相对与directory,由于named无对/etc/named目录的写权限,所以放在slaves下

masters { master1.ip;master2.ip } #指定master地址

};

3.增加从服务器的NS记录以及A记录

4.防火墙配置

打开master tcp 53端口

打开slave tcp 53端口

5.开启从服务器

service named start

手动区域传输

dig -t axfr|ixfr 区域名称 @辅助DNS服务器

axfr:完全传输

ixfr:增量传输

子域授权

1.在子域zone文件中添加授权NS记录

子域名称 IN NS 子域dns-server-name

a.sina.com. IN NS ns1.a.sina.com.

2.子域DNS A记录

子域dns-server-name IN A IP

ns1.a.sina.com. IN A 0.0.0.0

3.编辑子域 named.conf 添加zone记录

zone "a.sina.com" IN {

type master;

file "a.sina.com";

};

4.增加zone对应的数据文件

5.重启服务

DNS View

view view_name {

match-client{ip段1;ip段2};

//区域定义

};match-client:指定IP段使用view中的zone定义,any匹配所有IP

注意

一旦定义了view 所有的zone都必须定义在view中

根zone只需要定义在需要递归的view中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值