Linux DNS服务系列之主从复制、子域授权和转发、view配置详解

前言

上文我们讲解了DNS服务的原理及正反向解析配置,相信大家对DNS服务已经有了初步了解。接下来,让我们进一步了解DNS服务的其它功能,本文将详解主从复制、子域授权和转发以及view的相关配置。

主从服务器配置

主从服务器关系

如果公司内DNS服务器负载过重或者为了实现冗余这一类功能就需要用到一个备份DNS服务器,备份服务器和主DNS服务器就形成了主从关系,如果主服务器的区域文件更新就会通知从服务器同步最新的区域文件,平时从服务器不提供解析服务,如果主服务器有故障从服务器就立刻激活提供域名解析服务。

主从复制工作过程

1.jpg

主从复制配置

①开始配置从服务器之前,请确保主从服务器时间同步

②从服务器bind版本可高于主服务器

实战主从复制配置

案例要求:

实验接上文,为主DNS服务器172.16.10.10添加从服务器172.16.10.100,要求只允许从服务器传输区域文件,其它主机一律禁止传送。

添加从服务器

在主服务器正反向配置文件中添加从服务器

[root@lab named]# vim scholar.com.zone 

$TTL 3600
@       IN      SOA     dns.scholar.com.        admin.scholar.com. (
                                        2015040801 #每次主服务器更新,必须更改版本号
                                        2H
                                        10M
                                        7D
                                        1D )
@       IN      NS      dns
@       IN      NS      dns2      #添加从服务器NS记录
@       IN      MX 10   mail
dns     IN      A       172.16.10.10
dns2    IN      A       172.16.10.100   #添加从服务器地址
mail    IN      A       172.16.10.12
www     IN      A       172.16.10.10
pop     IN      CNAME   mail
ftp     IN      CNAME   www
[root@lab named]# vim 172.16.10.zone

$TTL 3600
@       IN      SOA     dns.scholar.com.        admin.scholar.com. (
                                                        2015040801
                                                        2H
                                                        10M
                                                        7D
                                                        1D )
@       IN      NS      dns.scholar.com.
@       IN      NS      dns2.scholar.com. #添加从服务器NS记录
10      IN      PTR     dns.scholar.com.
100     IN      PTR     dns2.scholar.com. #添加从服务器地址
12      IN      PTR     mail.scholar.com.
10      IN      PTR     www.scholar.com.

在主服务器添加区域传送限制,只允许从服务器传送

[root@lab named]# vim /etc/named.conf   #区域定义在哪就修改那个配置文件

zone "scholar.com" IN {
        type master;
        allow-transfer { 172.16.10.100; };  #定义传输白名单,可多个IP用分号分隔
        file "scholar.com.zone";
};
zone "10.16.172.in-addr.arpa" IN {
        type master;
        allow-transfer { 172.16.10.100; }; #定义反向区域传输白名单
        file "172.16.10.zone";
};

检查语法,重启服务

2.jpg

定义从区域

在从服务器上定义与主服务器相同的正反向区域

[root@scholar ~]# vim /etc/named.conf   #也可编辑/etc/named.rfc1912.zones


zone "scholar.com" IN {
        type slave;                       #定义服务器类型为从服务器
        masters { 172.16.10.10; };        #定义主服务器,可多个IP用分号分隔 
        file "slaves/scholar.com.zone";
};
zone "10.16.172.in-addr.arpa" IN {
        type slave;
        masters { 172.16.10.10; };
        file "slaves/172.16.10.zone";
};

测试语法,启动服务并设置开机自启

3.jpg

查看53端口是否开启

4.jpg

查看日志,是否传输成功

5.jpg

注意:此处报错,请设置防火墙规则

看一下文件传输过来了没

6.jpg

从服务器解析测试

7.jpg

到这里主从复制就配置完了,让我们再看一下子域授权和转发功能。

子域授权和转发

子域授权概念

为了方便公司部门管理运营,每个部门需要独立的域名服务器,这就要在父域下分配子域,比如,运维部的子域ops.scholar.com,而子域需要父域授权,所谓子域授权就是在父域的区域解析库中添加胶水记录(glue record)

胶水记录包括:

授权的子区域域名称

子区域的名称服务器

子区域的名称服务器IP地址 

子域授权和转发工作过程

8.jpg

子域授权和转发配置

正向子域授权

只需要在父域的区域解析库中添加“胶水记录”

例如:
ops 	IN  	NS  	dns.ops
ops     IN      A       172.16.10.110

配置转发器

转发所有非本机负责的区域的请求至某指定的DNS服务器

options {
	...
forward only|first;
forwarders { IP; };
		}
only/first:
only:只使用forwarders DNS服务器做域名解析,如果查询不到则返回查询失败。
first优先使用forwarders DNS服务器做域名解析,如果查询不到再使用本地DNS
服务器做域名解析。
访问控制:
allow-transfer {};  #区域传输白名单
allow-query {};     #查询白名单
allow-update {};    #更新白名单,一般为none
递归白名单:
allow-recursion {};
recursion yes;

配置转发区域

转发本区域解析不到的请求至某指定的DNS服务器,而非根

zone "ZONE NAME" IN {
type forward;
foward only|first;
forwarders { IP; };
}

bind acl

内置的acl:any (任何主机)、none(拒绝任何)、localhost(本机)、localnet(本机所在网络)

自定义acl:

acl ACL_NAME {
ip;
ip;
network;
};
例如:
acl localnetwork {
172.16.0.0/16;
192.168.0.0/24;
};
allow-recursion { localnetwork; }
#通常定义于options之上

实战子域授权和转发

案例要求:

父域服务器为172.16.10.10,域名scholar.com,运维部需要一个子域ops.scholar.com,子域服务器为172.16.10.110,要求完成子域授权,确保子域可以使用,将子域解析不到的请求向父域转发,只向父域查询,父域解析不了,返回失败。

在父域正向区域文件添加胶水记录

[root@lab named]# vim scholar.com.zone 

ops     IN      NS      dns.ops
dns.ops IN      A       172.16.10.110   #子域可在不同网段
 
#如有多个子域都需要一一添加

父域检查语法,重新启动服务

9.jpg

子域添加子域区域及转发域

[root@scholar ~]# vim /etc/named.conf

zone "ops.scholar.com" IN {       #添加正向区域
        type master;
        file "ops.scholar.com.zone";
};
zone "scholar.com" IN {           #添加转发域
        type forward;             #指定服务器类型为转发
        forwarders { 172.16.10.10; }; #转发列表,可多个IP
        forward only;                 #定义转发类型
};
include "/etc/named.rfc1912.zones";
//include "/etc/named.root.key";   #转发需注释此行

创建子域区域文件

[root@scholar named]# vim ops.scholar.com.zone

$TTL 3600
@       IN      SOA     dns.ops.scholar.com.    admin.ops.scholar.com. (
                                                2015040801
                                                2H
                                                10M
                                                7D
                                                1D )
@       IN      NS      dns.ops.scholar.com.
@       IN      MX 10   mail.ops.scholar.com.
dns     IN      A       172.16.10.110
www     IN      A       172.16.10.110
mail    IN      A       172.16.10.123
ftp     IN      CNAME   www
pop     IN      CNAME   mail

修改权限及属组

10.jpg

检查语法,启动服务并设置开机自启

11.jpg

测试子域能否解析

12.jpg

子域测试转发

13.jpg

子域授权和转发配置完成,解析通过,看一下最后一项view视图。

view视图

视图定义

根据客户端来源的不同,将同一个名称解析至不同的值。

视图工作过程

14.jpg

view配置

语法格式

acl telecom {

	};

	acl unicom {

	};



	view telecom {
		match-clients { telecom; };
		zone "scholar.com" IN {
			type master;
			file "scholar.com.tel";
		};

	};

	view unicom {
		match-clients { unicom; };
		zone "scholar" IN {
			type master;
			file "scholar.com.uni";
		};
	};

使用view注意的事项:

①通常只为内网客户端提供递归功能,提供根区域等;

②通常只为外网客户端提供本机所负责的区域的解析;

实战view配置

案例要求:

配置一个视图,要求内网访问(这里以172.16.0.0/16代表)返回一组解析结果,外网访问(这里以192.168.1.0/24代表)返回另一组解析结果。

DNS服务器:172.16.10.10(centos6.6),两个接口(172.16.10.10、192.168.1.100)

测试客户端:172.16.10.110(centos6.6)、192.168.1.5(winxp)

修改配置文件,添加view

view internal {
        match-clients { 172.16.0.0/16; };
zone "." IN {
        type hint;
zone "localhost.localdomain" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "0.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
};
zone "scholar.com" IN {
        type master;
        allow-transfer { 172.16.10.100; };
        file "scholar.com.int";
};
zone "10.16.172.in-addr.arpa" IN {
        type master;
        allow-transfer { 172.16.10.100; };
        file "172.16.10.int";
};
};
view external {
        match-clients { any; };
        zone "scholar.com" IN {
        type master;
        file "scholar.com.ext";
};
};

创建internal正向区域文件

$TTL 3600
@       IN      SOA     dns.scholar.com.        admin.scholar.com. (
                                                        2015040803
                                                        2H
                                                        10M
                                                        7D
                                                        1D )
@       IN      NS      dns
@       IN      MX 10   mail
dns     IN      A       172.16.10.10
mail    IN      A       172.16.10.12
www     IN      A       172.16.10.10
pop     IN      CNAME   mail
ftp     IN      CNAME   www

创建external正向区域文件

$TTL 3600
@       IN      SOA     dns.scholar.com.        admin.scholar.com. (
                                                        2015040803
                                                        2H
                                                        10M
                                                        7D
                                                        1D )
@       IN      NS      dns
@       IN      MX 10   mail
dns     IN      A       172.16.10.10
mail    IN      A       11.1.1.2
www     IN      A       11.2.2.10

创建完别忘了,修改权限和属组,我这里是直接修改以前的文件,就不需要再修改了

测试语法,重启服务

15.jpg

测试不同客户端返回解析

16.jpg

17.jpg

解析返回结果不同,看看是不是我们定义的结果呢,好了view就讲到这里了。

The end

好了,到此为止Linux DNS服务系列的相关功能就讲解完了,林林总总写了这么多,希望可以对你有所帮助,以上仅为个人学习总结,如有错漏,大神勿喷~~~

原创文章,作者:书生,如若转载,请注明出处:http://www.178linux.com/2998

(0)
上一篇 2015-04-13 09:53
下一篇 2015-04-13 10:06

相关推荐

  • 网络及TCP三次握手四次挥手

    批处理应用程序     FTP 、TFTP 、库存更新     无需直接人工交互     带宽很重要,但并非关键性因素 交互式应用程序     库存查询、数据库更新。     人机交互。     因为用户需等待响应,所以响应时间很重要,但并非关键性因素,除非要等待很长时间。 实时应用程序     VoIP 、视频     人与人的交互     端到端的延时至…

    2017-05-06
  • N25_第十二周作业

    1、请描述一次完整的http请求处理过程;     1)建立或者处理连接:建立请求或拒绝请求     2)接收请求:接收来自于网络上的主机请求报文中对特定资源的一次请求的过程;     3)处理请求:对请求报文进行解析,主要获取客户端请求的…

    Linux干货 2017-03-06
  • 推荐-HA专题: 编译安装并配置DRBD

    HA专题: 编译安装并配置DRBD 前言 实验环境 DRBD介绍 安装前准备工作 获取并编译安装DRBD 配置DRBD 分区 配置文件 启动并设置DRBD 格式化并挂载 验证冗余性 总结 前言 上篇我们讲到使用corosync+pacemaker实现MySQL高可用, 但是NFS容易成为单点故障从而导致数据丢失等严重问题, 我们可以使用drbd来实现MySQ…

    Linux干货 2016-04-12
  • 进程理论和相关工具的使用

    内核的功用 进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等     Process: 运行中的程序的一个副本,是被载入内存的一个指令集合 进程ID(Process ID,PID)号码被用来标记各个进程     UID、GID、和SELinux语境决定对文件…

    Linux干货 2017-08-28
  • 内核与内核模块

    内核与内核模块 先来看一下,内核与内核模块放在哪?这里以centos6为例 内核: /boot/vmlinuz或/boot/vmlinuz-version 内核解压所需要RAMDisk: /boot/initrc(/boot/initrc-version) 内核模块:/lib/modules/version/kernel或/lib/modules/uname…

    2017-09-04
  • grep的基本用法详解

     grep是linux上常用的一个文本处理工具之一。它有着强大的文本处理能力,学会它,可以让工作更有效率。 一、初识grep   grep: Global search Regular Experssion and Print out line   从名字上也可以直观的了解到它是基于正则表达式进行全局搜索,并把结果打印到屏幕上来…

    系统运维 2015-05-25