CentOS7系统安装DNS服务

CentOS7系统安装DNS服务linux

30.一、DNS是什么?

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

30.1.一、DNS层级结构

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

30.二、DNS查询过程

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

  • 第一步:当咱们在浏览器中输入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.一、DNS查询类型

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

30.三、DNS服务器类型

负责至少解析一个域centos

主名称服务器浏览器

辅助名称服务器缓存

不负责域解析安全

缓存名称服务器服务器

30.四、主-辅DNS服务器

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

30.4.一、复制操做的实施方式

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

30.4.二、区域传送

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

30.4.三、区域(zone)和域(domain)

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

30.五、资源记录

资源记录(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.一、定义资源记录的格式

语法格式

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.

注意:

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

30.六、安装bind并提供域名解析服务

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

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

30.6.一、bind的程序包

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

30.6.二、安装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

注意:

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

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

三、还应该有两个区域解析库文件: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.三、缓存服务器的配置

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

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

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

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

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

注意://表示注释符号

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

named-checkconf [/etc/named.conf]

四、启动named服务

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

五、测试

[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.七、测试工具

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

30.7.一、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.二、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.三、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.四、rndc命令

功用:named服务控制命令

rndc    status
rndc    flush

30.八、配置解析一个正向区域

演示环境

操做系统版本 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.一、定义区域

在主配置文件中实现或主配置文件辅助配置文件中实现:/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.二、创建区域数据文件

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

一、建立正向区域文件

[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后面定义的域名;

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

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

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

[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.三、让服务器重载配置文件和区域文件

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

30.8.四、测试

一、解析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

二、解析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.九、配置解析一个反向区域

演示环境

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

30.9.一、定义区域

在主配置文件中实现或主配置文件辅助配置文件中实现:/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.二、创建区域解析库文件(主要记录为PTR)

一、建立反向解析区域文件;

[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.

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

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

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

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

[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.三、重载配置文件和区域文件

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

30.9.四、测试

一、反向解析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

二、反向解析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.十、配置主从服务器

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

注意:从服务器时区域级别的概念;每次修改主服务器区域配置文件序列号要加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.一、安装配置从服务器

一、安装bind软件包

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

二、修改主配置文件

[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;

三、定义区域

格式:

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; };
};

四、配置文件语法检查

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

五、启动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.二、修改主dns服务器区域数据文件

一、确保区域数据文件中为每一个从服务器配置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

二、反向区域文件中也要增长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.

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

[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

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

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

30.10.三、测试

一、在从服务器上解析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

二、在从服务器上解析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.四、手动测试区域传送

在从服务器上测试,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.十一、子域受权

演示环境

操做系统版本 主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.一、配置主DNS服务器

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

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

二、重载服务

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

30.11.二、配置子域服务器

一、安装bind服务

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

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

[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;

三、添加一个正向区域

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

四、建立子域,区域数据库文件;

[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

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

[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

六、dig命令测试可否解析父域,测试父域可否解析子域

30.十二、定义转发

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

30.12.一、区域转发

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

格式

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.二、全局转发

针对凡是本地没有经过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
相关文章
相关标签/搜索