这里使用CentOS 7作为DNS主服务器.(ip:172.18.7.77)

正向解析配置:

]# vim /etc/named.rfc1912.zones

zone "opsnote.com" IN {
         type master;
         file "opsnote.com.zone";

};

]# cd /var/named

]# vim opsnote.com.zone

$TTL 3600

$ORIGIN opsnote.com.

@        IN        SOA        ns1.opsnote.com.        admin.opsnote.com. (
                 0
                 1H
                 10M
                 3D
                 1D )

IN        NS         ns1

ns1        IN        A        172.18.7.77

www        IN        A        172.18.7.73

web        IN        CNAME        www

bbs        IN        A        172.18.7.74

确保区域数据库文件的属主属组都为named,文件权限为640

]# chown :named opsnote.com.zone

]# chmod 640 opsnote.com.zone

]# ll opsnote.com.zone

-rw-r-----. 1 root named 240 Jan 18 17:29 opsnote.com.zone

检查语法

检查/etc/named.conf配置语法

]# named-checkconf

检查自定义区域数据库文件语法

]# named-checkzone opsnote.com opsnote.com.zone

查看一下当前区域数量

]# rndc status

number of zones: 101

重新载入配置文件

]# rndc reload

再查看一下区域数量

]# rndc status

number of zones: 102

说明刚刚的opsnote.com添加成功

测试:

]# dig -t A www.opsnote.com @172.18.7.77

配置反向解析:

定义反向区域

反向区域的名字为.in-addr.arpa,本机地址为172.18.7.77

]# vim /etc/named.rfc1912.zones

zone "7.18.172.in-addr.arpa" IN {

type master;

file "172.18.7.zone";

};

定义反向区域解析库文件

]# cd /var/named

]# vim 172.18.7.zone

$TTL 3600

$ORGIN 7.18.172.in-addr.arpa.

@        IN        SOA        opsnote.com.        admin.opsnote.com. (

0

1H

10M

3D

12H )

IN        NS        ns1.opsnote.com.

77        IN        PTR        ns1.opsnote.com.

73        IN        PTR        www.opsnote.com.

74        IN        PTR        bbs.opsnote.com.

61        IN        PTR        bbs.opsnote.com.

修改属组和权限

]# chgrp named 172.18.7.zone

]# chmod o= 172.18.7.zone

检查语法

]# named-checkconf

]# named-checkzone 7.18.172.in-addr.arpa 172.18.7.zone

配置从DNS服务器

这次使用另一台centos 6 作为上面DNS服务器的从服务器

定义从区域

方法与主服务器相似,指定file在/var/named/slaves目录下,但不需手动创建,可分别指明一个以上主服务器.

安装bind.

]# yum install bind -y

]# ps aux | grep named

编辑配置文件

]# vim /etc/named.conf

//listen-on port 53 { 127.0.0.1; };

//allow-query { localhost; };

dnssec-enable no;

dnssec-validation no;

启动服务

]# service named start

查看服务状态

]# service named status

version: 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4

CPUs found: 4

worker threads: 4

number of zones: 19

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

named (pid 15052) is running...

配置主配置文件,添加从区域

zone "opsnote.com" IN {

type slave;

file "slaves/opsnote.com.zone";

masters { 172.18.7.77; };

};

回到主服务器,添加从服务器NS记录

]# vim /var/named/opsnote.com.zone

IN        NS         ns2

ns2        IN        A        172.18.7.61

检查语法

]# named-checkconf

重载

]# rndc reload

查看服务状态

]# rndc status

88

version: 9.9.4-RedHat-9.9.4-50.el7 <id:8f9657aa>

CPUs found: 4

worker threads: 4

UDP listeners per interface: 4

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

回到从服务器


重载服务

]# rndc reload

查看状态

]# service named status

version: 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4

CPUs found: 4

worker threads: 4

number of zones: 19

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

named (pid 15052) is running...

测试:

]# dig -t A www.opsnote.com @172.18.7.61

验证主从同步过程

修改主服务器区域文件内容

]# vim /var/named/opsnote.com.zone

增加内容

bbs3        IN        A        172.18.7.74

修改版本号0 –> 2

重载

]# rndc reload

查看日志

]# systemctl status named

Jan 20 15:14:21 ce7.qt named[1407]: client 172.18.7.61#52689 (opsnote.com): transfer of 'opsnote.com/IN': AXFR-style IXFR started

Jan 20 15:14:21 ce7.qt named[1407]: client 172.18.7.61#52689 (opsnote.com): transfer of 'opsnote.com/IN': AXFR-style IXFR ended

Jan 20 15:14:21 ce7.qt named[1407]: client 172.18.7.61#9134: received notify for zone 'opsnote.com'

去从服务器检查同步结果

]# tail /var/log/messages

Jan 20 15:14:21 centos6 named[15052]: client 172.18.7.77#60229: received notify for zone 'opsnote.com'

Jan 20 15:14:21 centos6 named[15052]: zone opsnote.com/IN: Transfer started.

Jan 20 15:14:21 centos6 named[15052]: transfer of 'opsnote.com/IN' from 172.18.7.77#53: connected using 172.18.7.61#52689

Jan 20 15:14:21 centos6 named[15052]: zone opsnote.com/IN: transferred serial 2

Jan 20 15:14:21 centos6 named[15052]: transfer of 'opsnote.com/IN' from 172.18.7.77#53: Transfer completed: 1 messages, 10 records, 254 bytes, 0.001 secs (254000 bytes/sec)

Jan 20 15:14:21 centos6 named[15052]: zone opsnote.com/IN: sending notifies (serial 2)

在其他主机上测试从服务器

]# dig -t A bbs3.opsnote.com @172.18.7.61

可通过axfr类型获得服务器上整个正向和反向区域的资源记录

]# dig -t axfr opsnote.com @172.18.7.77

]# dig -t axfr 7.18.172.in-addr.arpa @172.18.7.77

子域授权

1.在父域的主DNS服务器的正向区域数据库文件/var/named/opsnote.com.zone上授权子域

]# vim /var/named/opsnote.com.zone

aaa        IN        NS        ns3.aaa

ns3.aaa        IN        A        172.18.7.73

记得增加版本号

重载

]# rndc reload

2.子域服务器上(172.18.7.73)


安装bind

]# yum install bind –y

3.编辑主配置文件

]# vim /etc/named.conf

//listen-on port 53 { 127.0.0.1; };

//allow-query { localhost; };

dnssec-enable no;

dnssec-validation no;

4.启动named服务并查看53端口是否已绑定

]# systemctl start named

]# systemctl status named

]# ss -tunl

172.18.7.73:53

编辑主配置文件

]# vim /etc/named.rfc1912.zones

zone "aaa.opsnote.com" IN {

type master;

file "aaa.opsnote.com.zone";

};

5.创建aaa.opsnote.com.zone文件

]# vim /var/named/aaa.opsnote.com.zone

$TTL 3600

@        IN        SOA        ns3.aaa.opsnote.com. admin.opsnote.com. (

0 ;序列号

1H ;刷新时间

10M ;重试时间

1D ;过期时间

2H ) ;否定回答的TTL值

IN        NS        ns3

ns3        IN        A        172.18.7.73

www        IN        A        172.18.7.73

6.修改属组和权限

]# chmod 640 aaa.opsnote.com.zone

]# chgrp named aaa.opsnote.com.zone

]# ll aaa.opsnote.com.zone

-rw-r----- 1 root named 162 Jan 20 16:14 aaa.opsnote.com.zone

7.检查语法

]# named-checkzone aaa.opsnote.com aaa.opsnote.com.zone

zone aaa.opsnote.com/IN: loaded serial 0

OK

8.重载服务

]# rndc reload

9测试正向解析

]# dig -t A www.aaa.opsnote.com @172.18.7.73

如果想通过子域服务器解析父域,子域会先找根,再找.com顶级域进行的带查询,但只要给子域定义了转发区域,就可以让子域解析自己的父域.

给子域服务器定义转发区域

子域服务器(172.18.7.73)

1.编辑主配置文件

]# vim /etc/named.rfc1912.zones

zone "opsnote.com" IN {

type forward;

forward only;

forwarders { 172.18.7.77; 172.18.7.61; };

};

2.检查语法

]# named-checkconf

3.重载

]# rndc reload

4.测试

在父域主服务器(172.18.7.77)上解析子域

]# dig -t A www.aaa.opsnote.com @172.18.7.77

会得到标志位flags: qr rd ra; 其中没有权威应答aa标志,说明不是父域自己解析的.

父域解析自己负责的域

]# dig -t A www.opsnote.com @172.18.7.77

会得到标志位flags: qr aa rd ra; 其中包含的aa为权威应答,说明是自己负责的解析内容.

在子域服务器(172.18.7.73)上解析父域

]# dig -t A www.opsnote.com @172.18.7.73

得到标志位flags: qr rd ra;因为父域只能去找父域解析,所以这里没有aa

如果要子域解析其他域名,如www.qq.com,默认情况下子域服务器会因为自己数据库中没有定义而去互联网上找跟服务器询问并得到结果,假如只想通过父域解析,需要定义全局转发.

在子域服务器上定义全局转发

]# vim /etc/named.conf

options段中添加

forward only;

forwarders { 172.18.7.77; };

forward 有两个参数

firest: 先转发.如果转发器不响应,自己回去迭代查询.

only:只转发,不迭代.

重载

]# rndc reload

测试:

]# dig -t A www.qq.com @172.18.7.73

此时由父域主服务器(172.18.7.73)解析www.qq.com

只允许从服务器进行区域传送,访问控制列表

之前我们通过

]# dig -t axfr opsnote.com @172.18.7.77

直接得到了主服务器上的区域数据库内容,这是不安全的,应该限制为只允许从服务器才能读取.下面为实现方法.

1.在主服务器上编辑/etc/named.conf文件,如添加在options段则全局生效,如添加在zone段则只对当前区域生效.

这里添加在zone,所以可以直接编辑/etc/named.rfc1912.zones文件,找到之前定义的zone "opsnote.com" IN {段,在其中添加allow-transfer { slaves; };

]# vim /etc/named.rfc1912.zones

zone "opsnote.com" IN {

type master;

file "opsnote.com.zone";

allow-transfer { myslaves; };

};

myslaves表示自定义访问控制列表.

2.在主服务器中改配置访问控制列表:

在/etc/named.conf 文件options段前添加

]# vim /etc/named.conf

acl myslaves {

172.18.7.61;

127.0.0.1;

};

检查语法

]# named-checkconf

重载

]# rndc reload

测试:

在非从服务器中测试:

]# dig -t axfr opsnote.com @172.18.7.77

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> -t axfr opsnote.com @172.18.7.77

;; global options: +cmd

; Transfer failed.

在从服务器测试:

]# dig -t axfr opsnote.com @172.18.7.77

传送成功

在主服务器测试:

]# dig -t axfr opsnote.com @172.18.7.77

]# dig -t axfr opsnote.com @127.0.0.1

.7.77传送失败,因为不在访问控制列表中

127.0.0.1传送成功,但是因为我把/etc/named.conf中的listen-on port 53一行注释掉了,所以本机的任何ip都可以接受传送,如果把注释去掉,并且括号中没有127.0.0.1的话,则会传送失败.

DNS配置范例的更多相关文章

  1. Linux 如何查看修改DNS配置

    DNS服务器介绍 DNS是计算机域名系统(Domain Name System 或Domain Name Service) 的缩写,它是由域名解析器和域名服务器组成的.域名服务器是指保存有该网络中所有 ...

  2. Redhat 一则关于路由及DNS配置的实例

    安装了Redhat 7.2, 配置路由, 但发现路由重启之后,不能生效. 配置路由: touch /etc/sysconfig/static-router, 然后编辑路由信息如下. any defau ...

  3. liunx之:解决liunx下dns配置重启失效的问题

    有时候能ping同ip地址,却ping不通域名,这就是dns没有配置的缘故. 但是DNS配置文件 /etc/resolv.conf 每次重启就会失效. 打开这个配置文件,发现有注释提示: Dynami ...

  4. 彻底解决Ubuntu 14.04 重启后DNS配置丢失的问题

    最近得到一个比较好用的DNS,每次重启后都修改DNS配置文件 /etc/resolv.conf 重启就会失效 从网上得知 /etc/resolv.conf中的DNS配置是从/etc/resolvcon ...

  5. 从DNS配置

    从服务器可以从主服务器上抓取指定的区域数据文件起到备份解析记录和负载均衡的作用. 主DNS服务器IP:192.168.16.20 从DNS服务器IP:192.168.16.30 1,修改主服务器区域配 ...

  6. 安装Oracle 11g RAC R2 之Linux DNS 配置

    Oracle 11g RAC 集群中引入了SCAN(Single Client Access Name)的概念,也就是指集群的单客户端访问名称.SCAN 这个特性为客户端提供了单一的主机名,用于访问集 ...

  7. Redhat linux DNS配置指南(SCANIP配置手册)

    在oracle 11g的RAC中增加了SCAN IP,而使用 SCAN IP的一种方式就是使用DNS,这里介绍在Redhat Linux 5.4中DNS的详细配置操作在配置DNS之前修改主机名Redh ...

  8. 21. DNS 配置和端口检测

    一.将本机的 DNS 配置为 8.8.8.8 ,用 nslookup (还可以使用 host.dig)验证 # 修改配置文件     # vim /etc/resolv.conf # 在文件的最后加入 ...

  9. Ubuntu系统下静态DNS配置详解

    1.DNS服务的简介: DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器.DNS中保存了一张域 ...

随机推荐

  1. MYSQL中数据类型介绍

    一.MySQL的数据类型 主要包括以下五大类: 主要包括以下五大类: 整数类型:bit.  int . bit int . small int . tiny int . medium int .boo ...

  2. AbstractQueuedSynchronizer,ReentraLock部分代码分析

    /* * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * ...

  3. HighCharts理解与总结

    摘自:http://www.highcharts.com/docs/getting-started/installation Installation Highcharts requires two ...

  4. Group by、having、order by、Distinct 使用注意事项

    直奔主题,如下SQL语句 SELECT COUNT(*) AS COUNT,REQUEST,METHOD FROM REQUESTMETH GROUP BY REQUEST,METHOD HAVING ...

  5. SharePoint 2007 form.js兼容性修改

    因SharePoint 2007发布时微软的主要IE的版本是7,所以其中不少的JS是不规范的,在新的IE8 9 10 11等版本中碰到不少的问题,以下是部分的修复,记录下,不断完善. ()语法问题 d ...

  6. HTML5 的拖放(实例:两个div之间拖放图片)

    重点解释: 首先,为了使元素(如本图片)可拖动,把 draggable 属性设置为 true : dataTransfer.setData() 方法设置被拖数据的数据类型和值: ondragover ...

  7. amazeui笔记-CSS 布局相关

    CSS 等分网格: 说明:.am-avg-sm-2  数字表示几等分 会将子元素 <li>的宽度设置为 50%. 只能用于 <ul> / <ol> 结构 辅助类: ...

  8. 使用Redis进行简单的数据缓存

    引入spring-data-redis包.jedis.connection-pool包 applicationContext.xml的配置 <!-- redis Connection --> ...

  9. [javaSE] 数据结构(二叉查找树-插入节点)

    二叉查找树(Binary Search Tree),又被称为二叉搜索树,它是特殊的二叉树,左子树的节点值小于右子树的节点值. 定义二叉查找树 定义二叉树BSTree,它保护了二叉树的根节点BSTNod ...

  10. Spark Pregel参数说明

    Pregel是个强大的基于图的迭代算法,也是Spark中的一个迭代应用aggregateMessage的典型案例,用它可以在图中方便的迭代计算,如最短路径.关键路径.n度关系等.然而对于之前对图计算接 ...