这里使用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. 浅谈内存映射I/O(MMIO)与端口映射I/O(PMIO)的区别

    最近在看NVMeDirect和SPDK的源码,觉得有必要梳理一下MMIO和PMIO的区别.关于MMIO和PMIO,维基百科上是这么讲滴, Memory-mapped I/O (MMIO) and po ...

  2. Integer源码分析

    Integer中包含了大量的static方法. 1.分析Integer的缓存机制:首先定义了一个缓存区,IntegerCache,其实就是一个Integer数组cache[],它默认存储了从-128~ ...

  3. selector.select()和selector.selectedKeys()

    当调用selector.select()时会阻塞: This method performs a blocking selection operation. It returns only after ...

  4. 14 线程间协作的两种方式:wait、notify、notifyAll和Condition

    原文链接:http://www.cnblogs.com/dolphin0520/p/3920385.html 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作.比如说最经典的生产者- ...

  5. handler与anr机制

    1. handler 参考资料:http://blog.csdn.net/ly502541243/article/details/52062179/ 首先说明Android的两个特性: 1. 只能在主 ...

  6. echarts实现自动轮播tooltip

    最近需要实现echarts图形中hover效果轮播(即tooltip在各个数据点上轮流显示)的功能,以下就是我学习的一个过程,只是提供思路,具体场景需要自己修改.(仅针对echarts 2.2.7及以 ...

  7. webstorm中es6语法报错,.vue文件中es6语法报错

    1.webstorm中es6语法报错,解决方法: 打开 Settings => Languages & Frameworks => Javascript把 Javascript L ...

  8. [译]用R语言做挖掘数据《一》

    介绍 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到程序: 1. ...

  9. jQuery选择器,外加例子讲解

    jQuery选择器的优势: (1) 代码更简单(2) 支持CSS1到CSS3选择器(3) 完善的处理机制 jQuery选择器的分类 (1) 基本选择器 基本选择器是jQuery中使用最多的选择器,它又 ...

  10. anaconda使用,jupyter notebook的使用方法

    1. 通过anaconda安装不同的python环境 1) conda create -n python36 python=3.5 2)  激活虚拟环境: activate python36  # 进 ...