这里使用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. 我和ARM的那些事儿3 beep之旅,最详细的ARM裸机工程设置

    前言 在博客园里面我搜索了老半天,找相应的mini2440的裸机开发的程序,让我挺失望的就是居然没有人对做arm这块做详细的解答,到底如何去做,到底如何去配置,都不清楚,让我很纠结,那么我花了近一星期 ...

  2. C# Winform 跨线程更新UI控件常用方法汇总

    https://www.cnblogs.com/marshal-m/p/3201051.html

  3. 十一:image 图片

    属性名 类型 默认值 说明 src String   图片资源地址 mode String 'scaleToFill' 图片裁剪.缩放的模式 binderror HandleEvent   当错误发生 ...

  4. facebook 登录开发记录

    1.注册一个 facebook 的账号 2.进入 facebook 开发者的网站.(也可以在 facebook 登录后,点击自己的名字进入用户信息页面,在该页面的底部有个“更多”的链接,点击进去会看到 ...

  5. jQuery事件篇---事件对象

    内容提纲: 1.事件对象 2.冒泡和默认行为 发文不易,转载请注明出处! JavaScript 在事件处理函数中默认传递了 event 对象,也就是事件对象.但由于浏览器的兼容性,开发者总是会做兼容方 ...

  6. 10、List、Set

    List接口 List接口的特点 *A:List接口的特点: a:它是一个元素存取有序的集合. 例如,存元素的顺序是11.22.33.那么集合中,元素的存储就是按照11.22.33的顺序完成的). b ...

  7. 4、构造方法、this、super

    构造方法 构造方法引入 * A:构造方法的引入 在开发中经常需要在创建对象的同时明确对象的属性值,比如员工入职公司就要明确他的姓名.年龄等属性信息. 那么,创建对象就要明确属性值,那怎么解决呢?也就是 ...

  8. 设计模式之——外观or门面模式

    1.概念 定义一个高层的统一的外观接口类,该接口用于客户端调用,和一个实现类用来包装子系统中多个类,客户端可以通过客户端完成对子系统的方法调用. 2.适用场景 2.1 代码移植,降低了现有系统的复杂度 ...

  9. 理解webpack4.splitChunks之cacheGroups

    cacheGroups其实是splitChunks里面最核心的配置,一开始我还认为cacheGroups是可有可无的,这是完全错误的,splitChunks就是根据cacheGroups去拆分模块的, ...

  10. C#读取Json文件

    C#读取Json文件并赋值给初始值 一.有Json文件如下(若用记事本编辑记得另存为-编码选择 U-TF8): 二.读取方法: using Newtonsoft.Json;using Newtonso ...