CentOS7系统安装DNS服务

时间:2021-05-21 04:29:21

CentOS7系统安装DNS服务

30.1、DNS是什么?

DNS ( Domain Name System )是“域名系统”的英文缩写,简单来说就是一个数据库,用于存储网络中IP地址与主机名的对应关系;简单的说DNS的作用就是把主机名解析为IP地址;如下图:

CentOS7系统安装DNS服务

30.1.1、DNS层级结构

域名系统作为一个层次结构和分布式数据库,包含各种类型的数据,包括主机和域名。DNS数据库中的名称形成一个分层的树状结构;域名在拼装时,是沿着这颗树的最下面往树根上走的;例如:www.baidu.com,其实改余名的完整写法应该是:www.baidu.com. 注意域名最后面有一个 ".";

CentOS7系统安装DNS服务

30.2、DNS查询过程

假设我们第一次通过浏览器访问www.baidu.com这个域名。DNS如何查找到www.baidu.com这台主机呢?如下

  • 第一步:当我们在浏览器中输入www.baidu.com后我们的个人电脑首先在本机查找hosts文件中是否有www.baidu.com的指向,如果有则直接访问www.baidu.com所对应的主机;如果没有在查找本DNS缓存中是否有之前的查询记录。如果都没有则将请求交给本地首先DNS指向的本地DNS服务器为我们查询。进入第二步;
  • 第二步:本地DNS接收到查询请求后首先看www.baidu.com是否是自己负责解析的域,如果是则将结果返回给用户主机,如果不是自己负责的区域,则查看DNS服务器数据库缓存中是否有之前的解析记录;如果有则将查询结果返回给用户主机;如果没有则由本地DNS服务器向根DNS服务器查询;进入第三步;
  • 第三步:本地DNS服务器向 “.” 根DNS服务器查询www.baidu.com域名,根收到请求后查看该域名由哪个*域负责授权,根本身不负责,于是将.com所在服务器的IP地址返回一个给本地DNS服务器;说你去找.com吧这个事它负责;进入第四步;
  • 第四步:本地DNS服务器拿到.com域的地址后就去找.com,.com收到请求后发现它也不知道www.baidu.com在哪,但是它知道baidu.com;于是.com将baidu.com这个域所在服务器的地址返回给本地DNS服务器,说你去找baidu.com吧,这个事它负责;进入第五步;
  • 第五步:本地DNS拿到地址后,向baidu.com发起请求,baidu.com收到请求后发现正是自己负责的区域,于是将www.baidu.com所在服务器的地址返回给本地DNS服务器;进入第6步;
  • 第六步:本地DNS收到返回的请求后,将结果返回给用户主机并且缓存到本地一份;于是本地用户主机就拿着地址找到了www.baidu.com;

30.2.1、DNS查询类型

  • 递归查询:本地主机向本地DNS服务器查询的阶段;第一步到第二步属于递归查询;
  • 迭代查询:本地DNS服务器向根域、*域、二级域查询的阶段,第三步到第五步就属于迭代查询;

30.3、DNS服务器类型

负责至少解析一个域

主名称服务器

辅助名称服务器

不负责域解析

缓存名称服务器

30.4、主-辅DNS服务器

  • 主DNS:维护所负责解析的域数据库的那台服务器;读写操作均可执行;
  • 从DNS:从主DNS服务器那里或其它的从DNS那里复制一份解析库;但只能进行读操作;

30.4.1、复制操作的实施方式

  1. 序列号:serial,也即是数据库的版本号,主服务器数据内容发生变化时,其版本号要递增;
  2. 刷新时间间隔:refresh,从服务器每隔多久向主服务器检查序列号更新情况;
  3. 重试时间间隔:retry,从服务器从主服务器请求同步解析库失败时,再次发起尝试请求的时间间隔;应小于刷新时间间隔;
  4. 过期时长:expire,从服务器始终联系不到主服务器时,多久之后放弃从主服务器同步数据;停止提供服务;
  5. 否定答案的缓存时长;minimum

30.4.2、区域传送

  • 全量传送:axfr,传送整个数据库;
  • 增量传送:lxfr,仅传送变化的数据;

30.4.3、区域(zone)和域(domain)

  • 正向解析库:FQDN —> IP
  • 反向解析库:IP —> FQDN

30.5、资源记录

资源记录(Resource Record):简称rr;常用的资源记录类型有:A, AAAA, PTR, SOA, MX, CNAME, NS;

  • SOA:起始授权记录;一个区域解析库有且只能有一个SOA记录,而且必须放在第一条;
  • NS:域名服务记录;一个区域解析库可以有多个NS记录;其中一个为主的;
  • A:地址记录,FQDN —> IP
  • AAAA:地址记录,FQDN —> IPv6
  • MX:邮件交换器;优先级0-99,数字越小优先级越高;
  • CNAME:别名记录;
  • PTR:地址记录,IP —> FQDN;

30.5.1、定义资源记录的格式

语法格式

name	[TTL]		IN		RR_TYPE		VALUE

# RR_TYPE:替换为指定的资源记录类型;
  • SOA记录定义格式

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

value:由多部分组成

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

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

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

例如:

enzhi.com.	86400	IN		SOA		enzhi.com.	admin.enzhi.com.(
2017011901 ;serial
2H ;refresh
10M ;retry
3D ; expire
1D) ;minimum
  • NS记录定义格式

name:当前区域的区域名称;

value:当前区域的某DNS服务器的名字;例如:ns1.enzhi.com.;

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

例如:

enzhi.com.	86400	IN	NA	ns1.enzhi.com.
enzhi.com. 86400 IN NA ns2.enzhi.com.
  • MX记录定义格式

name:当前区域的名称;

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

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

例如:

enzhi.com	86400	IN	MX  10	mail.enzhi.com.
  • A记录定义格式

name:某FQDN,例如:www.enzhi.com.;

value:某IPv4地址;

例如:

www.enzhi.com.	86400	IN	A	192.168.1.141
www.enzhi.com. 86400 IN A 192.168.1.142
bbs.enzhi.com. 86400 IN A 192.168.1.143
  • PTR记录定义格式

name:IP地址,有特定格式,IP反过来写,而且加特定后缀;例如:192.168.1.141的记录应该写为141.1.168.192.in-addr.arpa;

vlaue:FQDN

例如:

141.1.168.192.in-addr.arpa.		86400	IN	PTR		www.enzhi.com.
  • CNAME记录定义格式

name:FQDN格式的别名;

value:FQDN格式的正式名字;

例如:

web.enzhi.com.		86400	IN	CNAME	www.enzhi.com.

注意:

1、TTL的值可以从全局继承;只要在第一行加$TTL 86400下面所有的资源记录都可以继承;
2、@符号表示当前区域的名称;
3、相邻的两条记录其name相同时后面的可以省略;
4、MX,NS等类型的记录的value为一个FQDN,此FQDN应该有一个A记录;

30.6、安装bind并提供域名解析服务

Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server;bind是dns协议的一种实现;其运行后的程序名为named;

注意:本文演示环境为centos7.2系统环境;

30.6.1、bind的程序包

  • bind-libs:被bind和bind-utils包中的程序共同用到的库文件;
  • bind-utils:bind客户端程序集;提供了,dig , host, nslookup等相关工具;
  • bind:提供 dns server程序,以及几个常用的测试程序;
  • bind-chroot:选装;提供了一种安全机制;通常公司内部使用不需要安装;

30.6.2、安装bind

yum -y install bind

bind服务的主配置文件:/etc/named.conf

​ 或包含进来的其它文件:

​ /etc/named.iscdlv.key

​ /etc/named.rfc1912.zones

​ /etc/named.root.key

解析库文件:/var/named/目录下;一般名字为:ZONE_NAME.zone

注意:

1、一台DNS服务器可同时为多个区域提供解析;

2、必须要有根区域解析库文件:named.ca;

3、还应该有两个区域解析库文件:localhost和127.0.0.1的正反向解析库;

​ 正向:named.localhost

​ 方向:named.loopback

rndc命令

默认监听在127.0.0.1的tcp/953端口,因此仅允许本地使用;

注意:bind程序安装完成后,默认即可作为缓存服务器使用;如果没有专门负责解析的区域,直接可启动服务;

启动服务方法

CentOS6:service named start
CentOS7:systemctl start named.service

主配置文件的格式

# 全局配置段
options{...}
# 日志配置段
logging{...}
# 区域配置段
zone{...}

注意:每个配置语句必须以分号结尾;否则为语法错误;

30.6.3、缓存服务器的配置

安装完bind以后默认启动就是缓存服务器;仅需要关闭部分不需要的功能即可;

1、配置监听能与外部主机通信的IP地址;

# 在全局配置段中修改
[root@Bj-1-141 ~]# vim /etc/named.conf
listen-on port 53 { 127.0.0.1; 192.168.1.141; };

2、学习时建议关闭部分功能

# 关闭dnssec部分
//dnssec-enable yes;
//dnssec-validation yes;
# 关闭仅允许本地查
//allow-query { localhost; };

注意://表示注释符号

3、检查配置文件是否有语法错误

named-checkconf [/etc/named.conf]

4、启动named服务

[root@Bj-1-141 ~]# systemctl start named.service

5、测试

[root@Bj-1-141 ~]# dig -t A www.baidu.com @192.168.1.141

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t A www.baidu.com @192.168.1.141
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57431
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 6 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com. IN A ;; ANSWER SECTION:
www.baidu.com. 1200 IN CNAME www.a.shifen.com.
www.a.shifen.com. 300 IN A 119.75.218.70
www.a.shifen.com. 300 IN A 119.75.217.109 ;; AUTHORITY SECTION:
a.shifen.com. 1200 IN NS ns2.a.shifen.com.
a.shifen.com. 1200 IN NS ns1.a.shifen.com.
a.shifen.com. 1200 IN NS ns5.a.shifen.com.
a.shifen.com. 1200 IN NS ns4.a.shifen.com.
a.shifen.com. 1200 IN NS ns3.a.shifen.com. ;; ADDITIONAL SECTION:
ns2.a.shifen.com. 1200 IN A 180.149.133.241
ns3.a.shifen.com. 1200 IN A 61.135.162.215
ns5.a.shifen.com. 1200 IN A 119.75.222.17
ns1.a.shifen.com. 1200 IN A 61.135.165.224
ns4.a.shifen.com. 1200 IN A 115.239.210.176 ;; Query time: 277 msec
;; SERVER: 192.168.1.141#53(192.168.1.141)
;; WHEN: 四 1月 19 18:08:58 CST 2017
;; MSG SIZE rcvd: 271

30.7、测试工具

dig , host, nslookup;如果当前系统上没有此三个命令,需要安装bind-utils软件包;

30.7.1、dig命令

功用:用于测试dns系统,因此其不会查询hosts文件;

使用格式

dig [-t RR_TYPE] name	[@server]	[query options]

查询选项

+[no]trace:跟踪解析过程;
+[no]recurse:进行递归解析;

反向解析

dig -x IPADDR

模拟完全区域传送

dig -t axfr	DOMAIN	[@server]

示例

# 查询baidu.com的NS记录
[root@Bj-1-141 ~]# dig -t NS baidu.com
# 跟踪解析www.baidu.com的过程
[root@Bj-1-141 ~]# dig +trace www.baidu.com
# 解析www.baidu.com的A记录
[root@Bj-1-141 ~]# dig -t A www.baidu.com

30.7.2、host命令

使用格式

host [-t RR_TYPE] name SERVER_IP

示例

# 解析www.jd.com的A记录
[root@Bj-1-141 ~]# host -t A www.jd.com
www.jd.com is an alias for www.jdcdn.com.
www.jdcdn.com has address 59.108.139.1

30.7.3、nslookup命令

使用格式

nslookup [-opthions] [name] [server]

交互式模式下使用方式

# 命令行下直接输入nslookup
nslookup>
server ip:server为关键字,以指定的IP为dns服务器进行查询;
set q=RR_TYPE:set q= 为关键字,RR_TYPE为要查询的资源类型;
name:要查询的域名;

示例

[root@Bj-1-141 ~]# nslookup
> server 192.168.1.1
Default server: 192.168.1.1
Address: 192.168.1.1#53
> set q=A
> www.baidu.com
Server: 192.168.1.1
Address: 192.168.1.1#53 Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 119.75.218.70
Name: www.a.shifen.com
Address: 119.75.217.109

30.7.4、rndc命令

功用:named服务控制命令

rndc	status
rndc flush

30.8、配置解析一个正向区域

演示环境

操作系统版本 DNS服务器IP地址 演示域 内核版本
CentOS Linux release 7.2.1511 (Core) 192.168.1.141 enzhi.com 3.10.0-327.el7.x86_64

注意:以enzhi.com为列;

30.8.1、定义区域

在主配置文件中实现或主配置文件辅助配置文件中实现:/etc/named.conf或者/etc/named.rfc1912.zones

格式

zone "ZONE_NAME" IN {
type {master|slave|hint|forward};
file "ZONE_NAME.zone";
};

示例

[root@Bj-1-141 ~]# vim /etc/named.rfc1912.zones
# 在对下面添加
zone "enzhi.com." IN {
type master;
file "enzhi.com.zone";
};

注意:区域名字即为域名;

30.8.2、建立区域数据文件

主要记录为A或 AAAA;在/var/named/目录下建立区域数据文件;

1、创建正向区域文件

[root@Bj-1-141 ~]# cd /var/named/
[root@Bj-1-141 named]# vim enzhi.com.zone
$TTL 3600
$ORIGIN enzhi.com.
@ IN SOA enzhi.com. admin.enzhi.com. (
2017011901
1H
10M
3D
1D) IN NS ns1.enzhi.com.
IN MX 10 mail.enzhi.com.
ns1 IN A 192.168.1.141
mail IN A 192.168.1.142
www IN A 192.168.1.143
bbs IN A 192.168.1.144
bbs IN A 192.168.1.145

注意:

$TTL 3600:表示定义默认TTL值,所以在下面的所有资源记录都不用在写TTL值;
$ORIGIN enzhi.com.:作用是在资源记录中像"ns1.enzhi.com."就可以简写为ns1,会继承$ORIGIN后面定义的域名;

2、修改区域文件的权限及属组

# 修改区域文件的属组为named用户
[root@Bj-1-141 named]# chown :named enzhi.com.zone
# 修改区域文件的权限为640
[root@Bj-1-141 named]# chmod 640 enzhi.com.zone

3、检查配置文件和区域文件是否有语法错误

[root@Bj-1-141 named]# named-checkconf
[root@Bj-1-141 named]# named-checkzone enzhi.com. /var/named/enzhi.com.zone
zone enzhi.com/IN: loaded serial 2017011901
OK

30.8.3、让服务器重载配置文件和区域文件

[root@Bj-1-141 ~]# rndc reload
server reload successful
# 或者执行
[root@Bj-1-141 ~]# systemctl reload named.service

30.8.4、测试

1、解析www.enzhi.com的A记录;

[root@Bj-1-141 ~]# dig -t A www.enzhi.com @192.168.1.141

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t A www.enzhi.com @192.168.1.141
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40269
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.enzhi.com. IN A ;; ANSWER SECTION:
www.enzhi.com. 3600 IN A 192.168.1.143 ;; AUTHORITY SECTION:
enzhi.com. 3600 IN NS ns1.enzhi.com. ;; ADDITIONAL SECTION:
ns1.enzhi.com. 3600 IN A 192.168.1.141 ;; Query time: 0 msec
;; SERVER: 192.168.1.141#53(192.168.1.141)
;; WHEN: 四 1月 19 19:06:12 CST 2017
;; MSG SIZE rcvd: 92

2、解析enzhi.com的NS记录;

[root@Bj-1-141 ~]# dig -t NS enzhi.com @192.168.1.141

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t NS enzhi.com @192.168.1.141
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27289
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;enzhi.com. IN NS ;; ANSWER SECTION:
enzhi.com. 3600 IN NS ns1.enzhi.com. ;; ADDITIONAL SECTION:
ns1.enzhi.com. 3600 IN A 192.168.1.141 ;; Query time: 34 msec
;; SERVER: 192.168.1.141#53(192.168.1.141)
;; WHEN: 四 1月 19 19:08:53 CST 2017
;; MSG SIZE rcvd: 72

30.9、配置解析一个反向区域

演示环境

操作系统版本 DNS服务器IP地址 演示域 内核版本
CentOS Linux release 7.2.1511 (Core) 192.168.1.141 enzhi.com 3.10.0-327.el7.x86_64

30.9.1、定义区域

在主配置文件中实现或主配置文件辅助配置文件中实现:/etc/named.conf或者/etc/named.rfc1912.zones

格式

zone "ZONE_NAME" IN	{
type {master|slave|hint|forward};
file "ZONE_NAME.zone";
};

注意:反向区域的名字,为反写的网断地址.in-addr.arpa;例如:1.168.192.in-addr.arpa;

示例

[root@Bj-1-141 ~]# vim /etc/named.rfc1912.zones
# 在最下面添加
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.zone";
};

30.9.2、建立区域解析库文件(主要记录为PTR)

1、创建反向解析区域文件;

[root@Bj-1-141 ~]# cd /var/named/
[root@Bj-1-141 named]# vim 192.168.1.zone
$TTL 3600
$ORIGIN 1.168.192.in-addr.arpa.
@ IN SOA enzhi.com. admin.enzhi.com. (
2017011901
1H
10M
3D
1D)
IN NS ns1.enzhi.com.
141 IN PTR ns1.enzhi.com.
142 IN PTR mail.enzhi.com.
143 IN PTR www.enzhi.com.
144 IN PTR bbs.enzhi.com.
145 IN PTR bbs.enzhi.com.

2、修改区域文件属组及权限

[root@Bj-1-141 named]# chmod 640 192.168.1.zone

[root@Bj-1-141 named]# chown :named 192.168.1.zone

3、检查配置文件及反向区域文件配置语法

[root@Bj-1-141 ~]# named-checkconf
[root@Bj-1-141 ~]# named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.zone
zone 1.168.192.in-addr.arpa/IN: loaded serial 2017011901
OK

30.9.3、重载配置文件和区域文件

[root@Bj-1-141 ~]# rndc reload
server reload successful
# 或者执行
[root@Bj-1-141 ~]# systemctl reload named.service

30.9.4、测试

1、反向解析www.enzhi.com域名的IP地址

[root@Bj-1-141 ~]# dig -x 192.168.1.143 @192.168.1.141

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -x 192.168.1.143
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57138
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;143.1.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION:
143.1.168.192.in-addr.arpa. 3600 IN PTR www.enzhi.com. ;; AUTHORITY SECTION:
1.168.192.in-addr.arpa. 3600 IN NS ns1.enzhi.com. ;; ADDITIONAL SECTION:
ns1.enzhi.com. 3600 IN A 192.168.1.141 ;; Query time: 0 msec
;; SERVER: 192.168.1.141#53(192.168.1.141)
;; WHEN: 四 1月 19 19:27:39 CST 2017
;; MSG SIZE rcvd: 116

2、反向解析mail.enzhi.com的IP地址;

[root@Bj-1-141 ~]# dig -x 192.168.1.142 @192.168.1.141

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -x 192.168.1.142 @192.168.1.141
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51427
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;142.1.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION:
142.1.168.192.in-addr.arpa. 3600 IN PTR mail.enzhi.com. ;; AUTHORITY SECTION:
1.168.192.in-addr.arpa. 3600 IN NS ns1.enzhi.com. ;; ADDITIONAL SECTION:
ns1.enzhi.com. 3600 IN A 192.168.1.141 ;; Query time: 0 msec
;; SERVER: 192.168.1.141#53(192.168.1.141)
;; WHEN: 四 1月 19 19:28:57 CST 2017
;; MSG SIZE rcvd: 117

30.10、配置主从服务器

主服务器的安装和配置这里不在演示根据上面配置正向解析和反向解析后在配置从即可;

注意:从服务器时区域级别的概念;每次修改主服务器区域配置文件序列号要加1;两台服务器要做时间同步

演示环境

操作系统版本 主DNS服务器IP地址 演示域 内核版本
CentOS Linux release 7.2.1511 (Core) 192.168.1.141 enzhi.com 3.10.0-327.el7.x86_64
操作系统版本 从DNS服务器IP地址 演示域 内核版本
CentOS Linux release 7.2.1511 (Core) 192.168.1.142 enzhi.com 3.10.0-327.el7.x86_64

30.10.1、安装配置从服务器

1、安装bind软件包

[root@BJ-1-142 ~]# yum -y install bind bind-utils

2、修改主配置文件

[root@BJ-1-142 ~]# vim /etc/named.conf
# 修改options全局配置段
listen-on port 53 { 127.0.0.1; 192.168.1.142; };
# 关闭允许查询
//allow-query { localhost; };
# 关闭dnssec部分功能
//dnssec-enable yes;
//dnssec-validation yes;

3、定义区域

格式:

zone "ZONE_NAME" IN {
type slave;
file "slaves/ZONE_NAME.zone";
masters { MASTER_IP; };
};

示例:

[root@BJ-1-142 ~]# vim /etc/named.rfc1912.zones
zone "enzhi.com" IN {
type slave;
file "slaves/enzhi.com.zone";
masters { 192.168.1.141; };
}; zone "1.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.1.zone";
masters { 192.168.1.141; };
};

4、配置文件语法检查

[root@BJ-1-142 ~]# named-checkconf

5、启动named服务

[root@BJ-1-142 ~]# systemctl start named.service
[root@BJ-1-142 ~]# rndc status
version: 9.9.4-RedHat-9.9.4-38.el7_3.1 <id:8f9657aa>
CPUs found: 2
worker threads: 2
UDP listeners per interface: 2
number of zones: 103
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

30.10.2、修改主dns服务器区域数据文件

1、确保区域数据文件中为每个从服务器配置NS记录;并且在正向区域文件中,需要为每个从服务器的NS记录的主机名配置一个A记录,且此A记录后面的地址为真正的从服务器的IP地址;

[root@Bj-1-141 named]# vim enzhi.com.zone
$TTL 3600
$ORIGIN enzhi.com.
@ IN SOA enzhi.com. admin.enzhi.com. (
2017011902 ;#修改区域文件序列号要自增加1;
1H
10M
3D
1D) IN NS ns1.enzhi.com.
IN NS ns2.enzhi.com. ;#添加一条从服务器的NS记录
IN MX 10 mail.enzhi.com.
ns1 IN A 192.168.1.141
ns2 IN A 192.168.1.142 ;#添加一条从服务器的A记录
mail IN A 192.168.1.142
www IN A 192.168.1.143
bbs IN A 192.168.1.144
bbs IN A 192.168.1.145

2、反向区域文件中也要增加NS记录

[root@Bj-1-141 named]# vim 192.168.1.zone
$TTL 3600
$ORIGIN 1.168.192.in-addr.arpa.
@ IN SOA enzhi.com. admin.enzhi.com. (
2017011902 ;#修改区域文件序列号要自增加1
1H
10M
3D
1D)
IN NS ns1.enzhi.com.
IN NS ns2.enzhi.com. ;#添加一条从服务器的NS记录
141 IN PTR ns1.enzhi.com.
142 IN PTR ns2.enzhi.com. ;#添加一条从服务器的PTR记录
142 IN PTR mail.enzhi.com.
143 IN PTR www.enzhi.com.
144 IN PTR bbs.enzhi.com.
145 IN PTR bbs.enzhi.com.

3、检查配置文件及区域文件是否存在语法错误

[root@Bj-1-141 named]# named-checkconf
[root@Bj-1-141 named]# named-checkzone enzhi.com. enzhi.com.zone
zone enzhi.com/IN: loaded serial 2017011902
OK
[root@Bj-1-141 named]# named-checkzone 1.168.192.in-addr.arpa 192.168.1.zone
zone 1.168.192.in-addr.arpa/IN: loaded serial 2017011902
OK

4、重载主服务器配置文件

[root@Bj-1-141 named]# rndc reload
server reload successful
[root@Bj-1-141 named]# systemctl status named.service

30.10.3、测试

1、在从服务器上解析enzhi.com的NS记录;

[root@BJ-1-142 ~]# dig -t NS enzhi.com  @192.168.1.142

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t NS enzhi.com @192.168.1.142
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5598
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 3 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;enzhi.com. IN NS ;; ANSWER SECTION:
enzhi.com. 3600 IN NS ns1.enzhi.com.
enzhi.com. 3600 IN NS ns2.enzhi.com. ;; ADDITIONAL SECTION:
ns1.enzhi.com. 3600 IN A 192.168.1.141
ns2.enzhi.com. 3600 IN A 192.168.1.142 ;; Query time: 1 msec
;; SERVER: 192.168.1.142#53(192.168.1.142)
;; WHEN: 四 1月 19 20:16:24 CST 2017
;; MSG SIZE rcvd: 106

2、在从服务器上解析www.enzhi.com的A记录;

[root@BJ-1-142 ~]# dig -t A www.enzhi.com @192.168.1.142

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t A www.enzhi.com @192.168.1.142
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36363
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.enzhi.com. IN A ;; ANSWER SECTION:
www.enzhi.com. 3600 IN A 192.168.1.143 ;; AUTHORITY SECTION:
enzhi.com. 3600 IN NS ns1.enzhi.com.
enzhi.com. 3600 IN NS ns2.enzhi.com. ;; ADDITIONAL SECTION:
ns1.enzhi.com. 3600 IN A 192.168.1.141
ns2.enzhi.com. 3600 IN A 192.168.1.142 ;; Query time: 1 msec
;; SERVER: 192.168.1.142#53(192.168.1.142)
;; WHEN: 四 1月 19 20:16:08 CST 2017
;; MSG SIZE rcvd: 126

注意:如果从不服务器不能解析,使用手动测试区域传送看看能否同步,在从服务器上;

30.10.4、手动测试区域传送

在从服务器上测试,DNS服务器指向主服务器的IP地址;如果资源记录显示都能同步则配置没有问题;如果从服务器手动测试没问题,但是无法解析出从服务器的NS记录,解决方法,查看防火墙,selinux,或者重新修改主服务器序列号后重载主服务器配置文件;

[root@BJ-1-142 ~]# dig -t axfr enzhi.com @192.168.1.141

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t axfr enzhi.com @192.168.1.141
;; global options: +cmd
enzhi.com. 3600 IN SOA enzhi.com. admin.enzhi.com. 2017011903 3600 600 259200 86400
enzhi.com. 3600 IN NS ns1.enzhi.com.
enzhi.com. 3600 IN NS ns2.enzhi.com.
enzhi.com. 3600 IN MX 10 mail.enzhi.com.
bbs.enzhi.com. 3600 IN A 192.168.1.144
bbs.enzhi.com. 3600 IN A 192.168.1.145
bbs.enzhi.com. 3600 IN A 192.168.1.146
mail.enzhi.com. 3600 IN A 192.168.1.142
ns1.enzhi.com. 3600 IN A 192.168.1.141
ns2.enzhi.com. 3600 IN A 192.168.1.142
www.enzhi.com. 3600 IN A 192.168.1.143
enzhi.com. 3600 IN SOA enzhi.com. admin.enzhi.com. 2017011903 3600 600 259200 86400
;; Query time: 1 msec
;; SERVER: 192.168.1.141#53(192.168.1.141)
;; WHEN: 四 1月 19 20:21:59 CST 2017
;; XFR size: 12 records (messages 1, bytes 282)

30.11、子域授权

演示环境

操作系统版本 主DNS服务器IP地址 演示域 内核版本
CentOS Linux release 7.2.1511 (Core) 192.168.1.141 enzhi.com 3.10.0-327.el7.x86_64
操作系统版本 从DNS服务器IP地址 演示域 内核版本
CentOS Linux release 7.2.1511 (Core) 192.168.1.142 enzhi.com 3.10.0-327.el7.x86_64
操作系统版本 子域DNS IP地址 演示域 内核版本
CentOS Linux release 7.2.1511 (Core) 192.168.1.143 ops.enzhi.com 3.10.0-327.el7.x86_64

30.11.1、配置主DNS服务器

1、在主DNS服务器正向解析库文件中添加;

[root@Bj-1-141 named]# vim enzhi.com.zone
ops IN NS ns1.ops
ns1.ops IN A 192.168.1.143
# 注意要修改了配置序列号要加1;

2、重载服务

[root@Bj-1-141 named]# rndc reload
server reload successful

30.11.2、配置子域服务器

1、安装bind服务

[root@BJ-1-143 ~]# yum -y install bind bind-utils

2、修改监听地址关闭部分功能

[root@BJ-1-143 ~]# vim /etc/named.conf
listen-on port 53 { 127.0.0.1; 192.168.1.143; };
# 关闭部分功能前面加上注释即可;
//allow-query { localhost; };
//dnssec-enable yes;
//dnssec-validation yes;

3、添加一个正向区域

[root@BJ-1-143 ~]# vim /etc/named.rfc1912.zones
# 在最下面添加
zone "ops.enzhi.com" IN {
type master;
file "ops.enzhi.com.zone";
};

4、创建子域,区域数据库文件;

[root@BJ-1-143 named]# cd /var/named
[root@BJ-1-143 named]# vim ops.enzhi.com.zone
$TTL 3600
$ORIGIN ops.enzhi.com.
@ IN SOA ops.enzhi.com. admin.ops.enzhi.com. (
2017011901
1H
10M
3D
1D)
IN NS ns1
ns1 IN A 192.168.1.143
www IN A 192.168.1.150 # 修改区域文件权限及属组
[root@BJ-1-143 named]# chown :named ops.enzhi.com.zone
[root@BJ-1-143 named]# chmod 640 ops.enzhi.com.zone

5、检查配置文件语法并重载配置文件

[root@BJ-1-143 named]# named-checkconf
[root@BJ-1-143 named]# named-checkzone ops.enzhi.com. ops.enzhi.com.zone
zone ops.enzhi.com/IN: loaded serial 2017011901
OK # 重载配置
[root@BJ-1-143 named]# systemctl start named.service

6、dig命令测试能否解析父域,测试父域能否解析子域

30.12、定义转发

注意:被转发的服务器必须允许为当前服务器做递归;要在子域服务器上做转发解析父域

30.12.1、区域转发

仅转发对某特定区域的解析请求;

格式

zone "ZONE_NAME" IN {
type forward;
forward {first|only};
forwarders { SERVER_IP; };
};

first:首先转发,转发器不响应时;

SERVER_IP:为父域的主从服务器地址;

示例

[root@BJ-1-143 named]# vim /etc/named.rfc1912.zones
# 仅对enzhi.com这个域做转发
zone "enzhi.com" IN {
type forward;
forward only;
forwarders { 192.168.1.141; 192.168.1.142; };
};

重载配置文件

[root@BJ-1-143 named]# rndc reload
server reload successful

测试

解析父域的www.enzhi.com测试能否解析

[root@BJ-1-143 named]# dig -t A www.enzhi.com @192.168.1.143

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t A www.enzhi.com @192.168.1.143
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5835
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.enzhi.com. IN A ;; ANSWER SECTION:
www.enzhi.com. 3076 IN A 192.168.1.144 《====可以解析 ;; AUTHORITY SECTION:
enzhi.com. 171964 IN NS ns2.4.cn.
enzhi.com. 171964 IN NS ns1.4.cn. ;; Query time: 0 msec
;; SERVER: 192.168.1.143#53(192.168.1.143)
;; WHEN: 四 1月 19 22:15:04 CST 2017
;; MSG SIZE rcvd: 98

30.12.2、全局转发

针对凡是本地没有通过zone定义的区域查询请求,通通转发给某转发器;

示例:在子域服务器修改主配置文件定义全局转发

[root@BJ-1-143 ~]# vim /etc/named.conf
# 在options全局段中添加,全局转发给父域主服务器
forward only;
forwarders { 192.168.1.141; };

重载配置文件

[root@BJ-1-143 ~]# rndc reload
server reload successful

CentOS7系统安装DNS服务的更多相关文章

  1. CentOS7&period;x的DNS服务的基础配置

    一.bind服务器安装 bind:开源.稳定.应用广泛的DNS服务.bind的软件包名bind,服务名称named. 查看是否安装bind, 安装bind包: rpm -qa bind yum -y ...

  2. 部署DNS服务

    DNS,全称Domain Name System,即域名解析系统. DNS帮助用户在互联网上寻找路径.在互联网上的每一个计算机都拥有一个唯一的地址,称作"IP地址"(即互联网协议地 ...

  3. centos7 部署dns服务器

    =============================================== 2017/12/6_第2次修改                       ccb_warlock 20 ...

  4. DNS服务基础原理介绍

    FQDN 全称域名 localhost(主机名或者是别名).localdomain(域名)    FQDN=主机名.域名 根域               . *域名       .com   .n ...

  5. 使用unbound在RHEL7上搭建DNS服务

    1.概念:DNS (Domain Name Server)域名解析服务,使用TCP&UDP的53号端口(主从DNS之间用TCP,客户端查询使用UDP).它可以完成域名与IP地址的互换,可以通过 ...

  6. Centos7 搭建DNS服务器与原理配置详解

    在搭建我们自己DNS服务器之前,先必须了解下DNS服务器的作用和原理. DNS是在互联网上进行域名解析到对应IP地址的服务器,保存互联网上所有的IP与域名的对应信息,然后将我们对网址的访问,解析成IP ...

  7. CentOS7搭建DNS服务器

    DNS是域名系统(Domain Name System)的缩写,它的作用是将主机名解析成IP(正向解析),从IP地址查询其主机名(反向解析). DNS的工作原理(1)客户机发出查询请求当被询问到有关本 ...

  8. CentOS7下NFS服务安装及配置固定端口

    CentOS7下NFS服务安装及配置 系统环境:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64 软件版本:nfs-utils-1. ...

  9. CentOS7安装CDH 第一章:CentOS7系统安装

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

随机推荐

  1. LeetCode-Search in Rotated Sorted Array

    Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...

  2. SimpleThreadPool实践

    前言 并发(Concurrency)一直谈论java绕不开的一个话题,从移动开发工程师到后端工程师,几乎所有的面试都要涉及到并发/多线程的一些问题.虽然多数时候我们使用线程池,都是已经实现好的框架—— ...

  3. silverlight中Combox绑定数据以及动态绑定默认选定项的用法

    在Sliverlight中,经常要用到下拉框Combox,然而Combox的数据绑定却是一件令初学者很头疼的事情.今天就来总结一下下拉框的使用方法: 下面写一个简单的例子吧.先写一个日期的Model, ...

  4. css编写规范

    一.注释规范 1.文件顶部注释(推荐使用) /* * @description: 中文说明 * @author: name * @update: name (2013-04-13 18:32) */ ...

  5. 理解js中this的指向

         学习自原文  http://www.cnblogs.com/pssp/p/5216085.html后的一点小结(原文作者总结的很棒^_^)! 关于js中this的指向,在函数定义的时候还无法 ...

  6. bzoj 2281 &lbrack;Sdoi2011&rsqb;黑白棋(博弈&plus;组合计数)

    黑白棋(game) [问题描述] 小A和小B又想到了一个新的游戏. 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色. 最左边是白色棋子,最右边是黑色棋子,相邻的棋子颜色 ...

  7. &lbrack;2017&period;02&period;07&rsqb; Lua入门学习记录

    #!/home/auss/Projects/Qt/annotated/lua -- 这是第一次系统学习Lua语言 --[[ 参考资料: 1. [Lua简明教程](http://coolshell.cn ...

  8. Flask 构建微电影视频网站&lpar;三&rpar;

    搭建后台页面 视图函数位于admin文件夹下, app/admin/views.py 管理员登录页面搭建 视图函数 @admin.route('/') def index(): return '后台主 ...

  9. Spring的第三天AOP之xml版

    Spring的第三天AOP之xml版 ssm框架 spring  AOP介绍 AOP(Aspect Oriented Programming),面向切面编程.它出来的目的并不是去取代oop,而是对它的 ...

  10. SourceInsight中 加namespace宏后&comma;无法跳转问题解决

    Option->preferences->languages: C++ language->special, checked Ignore namespace declaration ...