这里使用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. wpf 自定义ListView

    1.listview.itemtemplate设置item的外层父元素的控件. 2.listview.template设置item的样式(datatemplate),也可以使用itemcontaine ...

  2. Perl入门

    Perl 是一门开源的脚本语言,由 Larry Wall 所创造,该语言以实用,快速开发为主要目标,与当前流行的面向对象结构化编程有些格格不入,但这并不妨碍 Perl 被广泛流传和使用,世界范围内围绕 ...

  3. centOS 7下无法启动网络(service network start)错误解决办法(应该是最全的了。。。)

    今天在centOS 7下更改完静态ip后发现network服务重启不了,翻遍了网络,尝试了各种方法,终于解决了. 现把各种解决方法归纳整理,希望能让后面的同学少走点歪路... 首先看问题:执行serv ...

  4. 初识DataGridView 表格数据控件

    DataGridView控件提供了一种强大而灵活的以表格形式显示数据的方式,用户可以使用DataGridView控件来显示少量数据的只读视图,也可以对其进行缩放以显示特大数据集的可编辑视图. 扩展Da ...

  5. C++类数组的实现

    请看下面的代码: //xy_3_1 2013/10/26 #include<stdio.h> #include<iostream.h> #include<string.h ...

  6. MVC知识点

    一·  MVC MVC设计模式->MVC框架(前端开发框架),asp.net(webform) aspx M:Model (模型,负责业务逻辑处理,比如说去db中获取数据) V:View (视图 ...

  7. WPF月视图控件

    简介 在做一个应用时,需要做成日历月视图的形式.自己做较麻烦,于是上网找找看,在CodeProject上发现了这个Quick and Simple WPF Month-view Calendar,可是 ...

  8. LeetCode 第二天后续(两数相加 python3)

    # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # sel ...

  9. groovy和java的主要区别

    1.Default imports,默认情况下,导入下面的包: java.io. * java.lang.* java.math.BigDecimal中 java.math.BigInteger中 j ...

  10. docker 安装PIL python 报错 IOError: decoder zip not available

    按照网上得方法:安装依赖库:yum install freetype freetype-develyum install libjpeg libjpeg-develyum install zlib z ...