DNS高级应用:子域授权、转发和view的实现方法

DNS高级应用:子域授权、转发和view的实现方法

在上面的功能实现之前我们先来复习一下DNS 一些配置的基本格式:

  • ACL:

    acl string {
    address_match_element;
    address_match_element;
    ... };
  • ZONE :
    #主服务器
    zone string optional_class {
            type  master ;
            file quoted_string;
            ...
            };
    
    #从服务器
    zone string optional_class {
            type slave ;
            masters { MASTER_ADDRESS; }
            file quoted_string;
            ...
            };
    
    #转发服务器
    zone string optional_class {
            type  forward ;
            forward {first|only};
            forwarders { forward_address; }
            ...
            };
  • VIEW
  • # 一旦启动view,所有的zone只能定义在view中。
    view string optional_class {
            match-clients { address_match_element; ... };
            match-destinations { address_match_element; ... };
            zone string optional_class {
                 ...
            };
  • 访问控制指令:
    allow-query { address_match_element; ... };
    allow-transfer { address_match_element; ... };
    allow-recursion { address_match_element; ... };
    allow-update { address_match_element; ... };

    详情man named.conf


子域授权:

环境:两台centos6.5

IP1:192.168.1.16 , IP2:192.168.1.20

实现方式:将IP1配置成DNS服务器,在其下配置一个以IP2为域名的DNS服务器(子域)。只需在IP1的解析库文件里定义一个子域即可。

START:

  1. 关闭防火墙和selinux
  2. 首先配置IP1(192.168.1.16):

修改配置文件

    # cat /etc/named.conf
    options {
        listen-on port 53 { 192.168.1.16; 127.0.0.1; };//or delete this line
    //  listen-on-v6 port 53 { ::1; };
        directory   "/var/named";
        dump-file   "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        recursion yes;

        dnssec-enable no;
        dnssec-validation no;

        /* Path to ISC DLV key */
    //  bindkeys-file "/etc/named.iscdlv.key";

    //  managed-keys-directory "/var/named/dynamic";
    };

添加zone:

# tail /etc/named.rfc1912.zones
    zone "jiajie.com" IN {
    type master;
    file "jiajie.zone";
};

配置解析库文件:

# vim /var/named/jiajie.zone 
$TTL 1D
@       IN      SOA     ns1.jiajie.com. jjzgood.126.com. (
                    20170509
                    1H
                    10M
                    5D
                    1D )
    IN      NS      ns1
    IN      NS      ns2
    ns1     IN      A       192.168.1.16
    ns2     IN      A       192.168.1.17
    www     IN      A       192.168.1.17
    *       IN      A       192.168.1.16
    #在解析库里定义一个字域
    ops     IN      NS      ns1.ops
    ops     IN      NS      ns2.ops
    ns1.ops IN      A       192.168.1.20
    ns2.ops IN      A       192.168.1.21

修改权限和组:

#chmod 640 /var/named/jiajie.zone 
# chown :named /var/named/jiajie.zone 
# ll /var/named/jiajie.zone 
 -rw-r----- 1 root named 292 5月   9 16:30 /var/named/jiajie.zone

重启服务:# service named restart

查看端口号:# ss -tlnp|grep :53

验证:

# host -t a www.jiajie.com 192.168.1.16
Using domain server:
Name: 192.168.1.16
Address: 192.168.1.16#53
Aliases: 

www.jiajie.com has address 192.168.1.17

3.配置子域(IP2:192.168.1.20)

修改配置文件:

# cat /etc/named.conf
    options {
        listen-on port 53 { 192.168.1.16; 127.0.0.1; };//or delete this line
    //  listen-on-v6 port 53 { ::1; };
        directory   "/var/named";
        dump-file   "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        recursion yes;

        dnssec-enable no;
        dnssec-validation no;

        /* Path to ISC DLV key */
    //  bindkeys-file "/etc/named.iscdlv.key";

    //  managed-keys-directory "/var/named/dynamic";
    };

添加ZONE:

# tail  /etc/named.rfc1912.zones
zone "ops.jiajie.com" IN {
    type master;
    file "ops.jiajie.com.zone";
};

配置解析库文件:

# vim /var/named/ops.jiajie.com.zone 
$TTL 1D
@       IN      SOA     ns1.ops.jiajie.com. jjzgood.126.com. (
                    20170509
                    1H
                    10M
                    5D
                    1D )
    IN      NS      ns1
    IN      NS      ns2
ns1     IN      A       192.168.1.20
ns2     IN      A       192.168.1.21
www     IN      A       192.168.1.20
 *       IN      A       192.168.1.21

修改权限和组:

# chmod 640 /var/named/ops.jiajie.com.zone 
# chown named  /var/named/ops.jiajie.com.zone

重启服务:# service named restart

查看端口号:# ss -tlnp|grep :53

验证:

# host -t a www.ops.jiajie.com 192.168.1.20
Using domain server:
Name: 192.168.1.20
Address: 192.168.1.20#53
Aliases: 

www.ops.jiajie.com has address 192.168.1.20
# host -t a ftp.ops.jiajie.com 192.168.1.20
Using domain server:
Name: 192.168.1.20
Address: 192.168.1.20#53
Aliases: 

ftp.ops.jiajie.com has address 192.168.1.21
--------------------------------------------
#注意上下两个使用的dns服务器是不同的
---------------------------------------------
# host -t a www.ops.jiajie.com 192.168.1.16
Using domain server:
Name: 192.168.1.16
Address: 192.168.1.16#53
Aliases: 

www.ops.jiajie.com has address 192.168.1.20
[[email protected] ~]# host -t a ftp.ops.jiajie.com 192.168.1.16
Using domain server:
Name: 192.168.1.16
Address: 192.168.1.16#53
Aliases: 

ftp.ops.jiajie.com has address 192.168.1.21

由上可以看出如果用父域来解析子域的地址是可以的,但是如果使用子域去解析父域的是解析不出来的(如下图)。此时我们可以在子域上设置一个转发服务器来解决上面的尴尬状况。

如下图:

# host -t a ftp.jiajie.com 192.168.1.20
Using domain server:
Name: 192.168.1.20
Address: 192.168.1.20#53
Aliases: 

Host ftp.jiajie.com not found: 3(NXDOMAIN)

转发服务器

注意:本实验是基于上面的实验进行的。

首先在IP2(192.168.1.20)服务器上增加一个转发区域:

# tail /etc/named.rfc1912.zones

zone "jiajie.com" IN { 
type forward;
forward only;
forwarders { 192.168.1.16; };
};

重新加载配置服务:# rndc reload

此时我们就可以在子域上解析父域的地址了:

# host -t A  ftp.jiajie.com 192.168.1.20
Using domain server:
Name: 192.168.1.20
Address: 192.168.1.20#53
Aliases: 

ftp.jiajie.com has address 192.168.1.16
  • 转发分为全局转发和区域转发
  • 全局转发:凡是非本机所负责的解析区域的,统统转发给指定服务器。
    option {
        forward {first|only};
        forwarders { address; }
    };
  • 区域转发:只转发对特定区域的请求到指定服务器
    zone {
        type forward;
        forward {first|only};
        forwarders { address; }
    };

智能view的实现:

本实验是在上面两个实验的基础上进行修改的。

注意

  • 一旦启用view,所有的zone都能定义在view中
  • 一个bind可以定义多个view,每个view中可以定义一个或者多个zone。
  • 多个view内可能需要对同一个区域进行解析,但使用不同的区域解析文件。
  • 客户端请求到达时是自上而下检查view的。

配置:

配置IP1(192.168.1.16)

1.首先先把/etc/named.conf中的根区域移到/etc/named.rfc1912.zones文件中。

# vim /etc/named.conf
zone "." IN {
        type hint;
        file "named.ca";
};

2.在/etc/named.conf文件首部添加一个acl

#vim /etc/named.conf
acl in_net {
    192.168.1.16;
    192.168.1.10;
    127.0.0.0/24;
};

3.添加两个view,注意第一个view将文件中的zone都圈起来,第二个view添加在文件的底部。

#将匹配acl内的IP
# vim /etc/named.rfc1912.zones
view innet {
    match-clients { in_net; };
    allow-recursion { in_net; };
    zone ... 
    ...
};
};

#匹配acl以外的IP
view outnet {
      match-clients { any; };
      zone "jiajie.com" IN {
            type master;
            file "jiajie.com.out";
            allow-update { none; };
};
};

4.cp /var/named/jiajie.zone /var/named/jiajie.com.out -a

5.编辑/var/named/jiajie.zone.out

# vim /var/named/jiajie.com.out 

$TTL 1D
@       IN      SOA     ns1.jiajie.com. jjzgood.126.com. (
                    20170509
                    1H
                    10M
                    5D
                    1D )
    IN      NS      ns1
    IN      NS      ns2
ns1     IN      A       192.168.1.16
ns2     IN      A       192.168.1.17
www     IN      A       2.2.2.2
 *       IN      A       2.2.2.3

6.运行# rndc reload

7.验证:

#基于IP1(192.168.1.16)平台验证
# host www.jiajie.com 192.168.1.16
Using domain server:
Name: 192.168.1.16
Address: 192.168.1.16#53
Aliases: 

www.jiajie.com has address 192.168.1.17

#基于IP2(192.168.1.20)平台验证
# host www.jiajie.com 192.168.1.16
Using domain server:
Name: 192.168.1.16
Address: 192.168.1.16#53
Aliases: 

www.jiajie.com has address 2.2.2.2

windows平台验证:

由上面可以看出你虽然是访问同一个URL,但是如果你的IP地址不同,将会返回给你不同的地址,这样就实现了智能化。



2017/5/9 22:04:59

时间: 2024-10-05 12:22:23

DNS高级应用:子域授权、转发和view的实现方法的相关文章

DNS服务器综合实验(包含view下主从+子域授权+转发域)

说明:本文并不是一上来就搭建包含view下主从+子域授权+转发域的实验环境,我们按照先易后难的顺序逐渐深入搭建的.特此说明. ===============================实战======================================= 规划: 主DNS:192.168.0.10 从DNS:192.168.0.11 其他地址:192.168.0.13.192.168.0.14 子域DNS:192.168.0.12 注意:所有工作之前,将所有的主机进行如下设置 [

DNS主从服务,子域授权,view视图,日志系统,压力测试rsync配置

DNS主从服务,子域授权,view视图,日志系统,压力测试 DNS性能测试工具queryperfDNS查询过程: DNS主从建立: 环境: 主服务器:10.140.165.93 从服务器:10.140.165.169 关闭防火墙,关闭selinux. 主服务器建立: [[email protected] ~]# yum -y install bind-util bind #安装bind服务 [[email protected] ~]# vim /etc/named.conf #编辑主配置文件 o

DNS主从复制、子域授权和转发及智能解析

实验环境:centos 7 程序版本:bind-9.9.4-29.el7.x86_64 安装方法:yum install -y bind (base仓库): 端口: TCP53:负责主从服务器的数据复制传输 UDP53:负责解析 主配置文件:/etc/named.conf 区域配置文件存放目录:/var/named/ 从服务器的区域配置文件存放目录:/var/named/slaves 主服务器:192.168.1.12 从服务器:192.168.1.13 主从配置: ~]# cp -p /etc

DNS主从服务,子域授权,view视图,日志系统,压力测试

DNS性能测试工具queryperfDNS查询过程: DNS主从建立: 环境: 主服务器:10.140.165.93 从服务器:10.140.165.169 关闭防火墙,关闭selinux. 主服务器建立: [[email protected] ~]# yum -y install bind-util bind    #安装bind服务 [[email protected] ~]# vim /etc/named.conf    #编辑主配置文件 options {        director

linux中DNS子域授权和视图view

你有没有见过4 段的域名?大部分人打开网站只见过3段的域名,像www.baidu.com等,但是多段域名是真实存在的 当我们用dig命令解析www.baidu.com的NS记录时,就会出现四段域名了 这个域名,其实是百度众多dns域中的一个子域中的某一台主机,现在,我们来讨论一下子域 当你的公司有很多部门,销售部,生产部,财务部,这么多部门很多人都向公司里唯一的dns服务器解析,那你的dns服务器会忙死,所以,你可以为每一个部门分派一个子域服务器,各自部门的dns请求都发送到各自部门安置的子域d

DNS服务器之子域授权

一.子域授权 在一个较大的生产环境中,一般还需要在公司内分多个部门,这些部门负责的域是整个公司所负责的域的子域,这时公司内除了需要主从DNS服务器彼此之间互相协调提供服务之外,还需要为每个子域授权并让各个子域分别管理各自部门的主机,以减轻公司所在域的系统管理员的负担,这就是子域授权. 假设公司内有两个部门,分别是dev和ops,对于itab.com这个域来说,需要分别为dev.itab.com和ops.itab.com这两个子域授权,而在这两个子域下还分别管理www.dev.itab.com和w

Linux DNS之二DNS主从、子域授权及视图

上一篇讲了DNS的基础相关以及一个简单的DNS搭建过程,今天更加深入的讲一讲DNS的主从复制.子域授权以及视图功能. 大纲 一.DNS主从复制 二.DNS子域授权 三.DNS视图 一.DNS主从复制 环境准备 主DNS    172.16.1.111    soysauce 从DNS    172.16.1.110    CentOS5 1.首先建立主DNS [[email protected] ~]# yum install -y "bind" "bind-utils&qu

DNS转发器及子域授权

在bind环境下,named.conf配置文件中全局配置参数中配置转发器时,在针对zone下进行子域授权时,无法授权成功,需要在named.conf中的zone中禁用转发器. zone "xxx" in { forwarders{}; };

Linux服务器--3.DNS的子域授权,转发和视图

Linux服务器--DNS服务器的子域授权.转发和视图 一.DNS服务器子域授权: Linux DNS服务器的子域授权,是在原有的域上再划分小的区域并指定新的DNS服务器,在子区域的DNS服务器中,如果有客户端请求,则只要找到子DNS服务器即可,从而减轻了主DNS服务器的解析压力,也有利于管理. 实验环境:两台Linux主机,IP 分别为172.16.99.1(父域)  ,172.16.99.2(子域). DNS服务器子域授权的配置:(在原有的DNS服务器上创建) 1.在原有的父域正向区域数据解