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

相关推荐

  • 关于大型网站技术演进的思考(五):存储的瓶颈(5)

    原文出处: 夏天的森林    上文里我遗留了两个问题,一个问题是数据库做了水平拆分以后,如果我们对主键的设计采取一种均匀分布的策略,那么它对于被水平拆分出的表后续的查询操作将有何种影响,第二个问题就是水平拆分的扩容问题。这两个问题在深入下去,本系列就越来越技术化了,可能最终很多朋友读完后还是没有找到解决实际问题的启迪,而且我觉得…

    Linux干货 2015-03-11
  • 通络通信

    网络详解: 网络的osi层次结构: 物理层: 以太网规定,连入网络的所有设备,都必须具有”网卡”接口。数据包必须是从一块网卡,传送到另一块网卡。 网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。 每块网卡出厂的时候,都有一个全世界独一无二的MAC地址,长度是48个二进制位,通常用12个十六进制数表示。 前6个十六进制数是厂商编号,后6个是该厂商…

    Linux干货 2016-09-02
  • 了解Nginx

    Nginx Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝…

    Linux干货 2016-11-07
  • 基于pxe部署系统

    一、前言 在生产环境中,我们经常遇到需要部署部署多台服务器。如果我们每部署一台服务器都要拿着系统盘到机房部署,守在服务器面前,那么我们的效率是十分低下的。况且有时候机房并不在我们身边。那么我们可以通过让机房值班人员为每台服务器配置好远程管理卡,运维人员通过远程管理卡,远程登入服务器进行操作。 二、pxe原理 pxe原理是通过服务器上网卡中支持的pxe启动,通…

    Linux干货 2015-09-14
  • 【N25第一周作业】Linux上命令的使用格式和基础命令详解

    一、Linux上命令的使用格式 命令行提示符详解: 用户通过终端的命令行接口来控制操作系统,登陆后如下: [root@localhost ~]# root: 当前登录的用户 @:分隔符 localhost: 当前主机的主机名,非完整格式;此处的完整格式为:localhost.localdomain [root@localhost ~]#&…

    Linux干货 2016-12-03
  • rsyslog基于mysql的日志集中存储,及loganalyzer日志分析工具的web配置

    Rsyslog是Linux系统自带的一款强大的日志系统,在业务量不是很大的情况下,能够满足大部分客户的日志分类搜集功能,是广大运维同事进行系统监控、分析不可或缺的利器。而在运维自动化高速发展的今天,如果我们还要“人工”智能的去每一个服务器上查看系统日志就显得太LOW了,并且,对我们来说也是一个不小的负担。 基于此,我们就简单的来介绍一下,rsyslog结合m…

    系统运维 2017-02-05