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

域名分级

根域: .

顶级域: .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中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在CentOS 7上安装和配置BIND搭建本地DNS服务器的详细步骤: 1. 安装BIND 在终端中以root用户登录,执行以下命令安装BIND: ``` yum install bind bind-utils -y ``` 2. 配置BIND 接下来,需要配置BIND搭建本地DNS服务器。以下是示例配置文件的内容: ``` options { directory "/var/named"; allow-query { localhost; }; recursion yes; forwarders { 8.8.8.8; 8.8.4.4; }; }; zone "example.com" IN { type master; file "/var/named/example.com.zone"; allow-update { none; }; }; zone "168.192.in-addr.arpa" IN { type master; file "/var/named/192.168.zone"; allow-update { none; }; }; ``` - options:全局选项,指定DNS服务器的全局设置,例如服务器目录、递归查询、转发器等。 - zone:指定DNS服务器的区域设置,例如域名、类型、区域文件路径等。 在这个示例配置中,我们指定了DNS服务器的全局选项和两个区域设置。其中,example.com是我们的域名,192.168是我们的网络地址。 3. 创建区域文件 接下来,需要创建两个区域文件,一个是example.com的区域文件,另一个是192.168网络地址的区域文件。以下是示例区域文件的内容: /var/named/example.com.zone: ``` $TTL 86400 @ IN SOA ns1.example.com. root.example.com. ( 2018022801; 3600; 1800; 604800; 86400; ) @ IN NS ns1.example.com. ns1 IN A 192.168.1.5 www IN A 192.168.1.10 ``` - $TTL:指定DNS服务器的TTL(Time-To-Live),也就是记录在缓存中的时间。 - @:代表域名的根。 - IN:代表Internet网络。 - SOA:Start Of Authority,指定域名的主要管理者和授权服务器等信息。 - NS:Name Server,指定域名的DNS服务器。 - A:Address,指定域名的IP地址。 /var/named/192.168.zone: ``` $TTL 86400 @ IN SOA ns1.example.com. root.example.com. ( 2018022801; 3600; 1800; 604800; 86400; ) @ IN NS ns1.example.com. 5 IN PTR ns1.example.com. 10 IN PTR www.example.com. ``` - PTR:Pointer,指向IP地址的域名。 4. 启动BIND服务 首先,需要将BIND服务启动并设置为自动启动: ``` systemctl start named systemctl enable named ``` 然后,可以使用以下命令检查BIND服务是否已启动: ``` systemctl status named ``` 5. 测试本地DNS服务器 现在,您可以在本地计算机上测试新搭建DNS服务器。以下是测试步骤: - 修改本地计算机的DNS服务器地址为本地服务器的IP地址。 - 在终端中执行以下命令以测试DNS解析: ``` nslookup www.example.com ``` 如果一切正常,则应该能够看到www.example.com的IP地址。 希望这些步骤能够帮助您在CentOS 7上安装和配置BIND搭建本地DNS服务器

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值