DNS的子域授权与智能解析

DNS子域授权

为什么需要子域授权?

子域授权,也就是DNS的分布式

通过在原有的域上划出一个小的区域,并给新DNS服务器管理。
如果有客户端请求解析在这个划分区域中的域名,则只要找新的子DNS服务器。
这样的做的好处可以减轻主DNS的压力,也便于管理

配置DNS子域授权

主机名 主机地址 角色
node1 192.168.2.201 主DNS服务器
node2 192.168.2.202 从DNS服务器
node3 192.168.2.203 子域授权服务器

以上节点均关闭了iptables和selinux

由于篇幅的原因,这次主要是演示子域授权的部分。
关于node1和node2配置主从同步的详细步骤以及注意事项,可以参考上一篇文章。

一、修改node1的资源记录
[root@node1 named]# vim /var/named/bc.com.zone 
  ops     IN      NS              ns3
  ns3     IN      A               192.168.2.203

在bc.com这个资源记录文件中添加两条记录。
其实这个的意思是说,
ops.bc.com这个域由ns3.bc.com来解析。
ns3.bc.com的IP地址在192.168.2.203

注意:这里需要将SOA记录的序列号手动+1才会触发node2的同步。

二、为node3配置安装dns服务,并配置资源记录
安装服务
 [root@node3 ~]# yum install bind -y

修改全局配置
[root@node3 ~]# vim /etc/named.conf 
options {
        listen-on port 53 { 192.168.2.203;127.0.0.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; };
        dnssec-enable no;
        dnssec-validation no;
}
定义可解析区域
[root@node3 ~]# vim /etc/named.rfc1912.zones 
zone "ops.bc.com" IN {
        type master;
        file "ops.bc.com.zone";
};

编辑资源记录
$ORIGIN ops.bc.com.
$TTL 86400
@               IN      SOA     ops.bc.com. admin.bc.com.       (
                                2016042301
                                1H
                                5M
                                7D
                                1D)
ops.bc.com.             IN              NS              ns1
ns1                     IN              A               192.168.2.203
www                     IN              A               192.168.2.213
*                       IN              A               192.168.2.223

注意:
除了SOA记录之外,这里定义了几条资源记录

ops.bc.com.             IN              NS              ns1
表示ops.bc.com这个域由ns1.ops.bc.com这个DNS服务器负责解析

ns1                     IN              A               192.168.2.203
表示ns1.ops.bc.com的IP地址是192.168.2.203

www                     IN              A               192.168.2.213
表示www.ops.bc.com的IP地址是192.168.2.213

*                       IN              A               192.168.2.223
表示*.ops.bc.com的IP地址是192.168.2.223
检查语法错误
[root@node3 ~]# named-checkzone  ops.bc.com /var/named/ops.bc.com.zone 
zone ops.bc.com/IN: loaded serial 2016042301
OK

没有问题则可以重启服务,因为dns服务经常配置文件缺少标点而启动不成功。
所以检查语法错误之后才重启,可以避免故障导致服务不可用。

重启服务
[root@node3 ~]# service named restart
Redirecting to /bin/systemctl restart  named.service
三、测试能否在node1上解析子域的资源记录
[root@node2 ~]# dig -t A ftp.ops.bc.com @192.168.2.201

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> -t A ftp.ops.bc.com @192.168.2.201
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28811
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ftp.ops.bc.com.            IN  A

;; ANSWER SECTION:
ftp.ops.bc.com.     86400   IN  A   192.168.2.223

;; AUTHORITY SECTION:
ops.bc.com.     86400   IN  NS  ns1.ops.bc.com.

;; ADDITIONAL SECTION:
ns1.ops.bc.com.     86400   IN  A   192.168.2.203

;; Query time: 3 msec
;; SERVER: 192.168.2.201#53(192.168.2.201)
;; WHEN: Fri Dec 30 18:02:12 CST 2016
;; MSG SIZE  rcvd: 93

;; ANSWER SECTION:字段中,解析到我们配置的*.ops.bc.com
所以ftp.ops.bc.com的IP地址是192.168.2.223。

后续问题:
[root@node3 ~]# nslookup 
> server 192.168.2.203
Default server: 192.168.2.203
Address: 192.168.2.203#53
> set q=A   
> www.jianshu.com
Server:     192.168.2.203
Address:    192.168.2.203#53

** server can't find www.jianshu.com: NXDOMAIN

我们发现,由于子域的node3中的资源记录只有那么几条。
所以当有客户端请求其他资源记录的时候,就会无法解析。
转而会向根服务器开始迭代,这样会很慢。
所以一般会定义一个转发器,在子域无法解析的时候
转发给特定服务器解析。

配置转发器:
[root@node3 ~]# vim /etc/named.conf 
options {
        forward only;
        forwarders { 192.168.2.1; };
}

这里无法解析的请求,都转发给192.168.2.1。
为什么不转发给主DNS服务器?
因为我们在主DNS中定义的资源记录也是有限的,所以主DNS也可能解析不出来。

加了转发器选项之后就可以正常解析了。
[root@node3 ~]# nslookup 
> server 192.168.2.203
Default server: 192.168.2.203
Address: 192.168.2.203#53
> set q=A
> www.jianshu.com
Server:     192.168.2.203
Address:    192.168.2.203#53

Non-authoritative answer:
Name:   www.jianshu.com
Address: 106.75.2.241
> 

有了转发器,就可以把自己负责的区域以外的请求都丢给其他DNS服务器代为处理。

智能DNS

智能DNS,也就是可以通过判断用户的IP来返回不同的资源记录
这样做的好处在于,能够通过这种方式选择一个用户最合适的服务器。
智能DNS也是CDN实现的一种方式
例如,通过判断用户是电信用户还是铁通用户来返回不同的结果。加快访问速度
例如,通过判断用户的地区,找出一个该地区的服务器。达到分流的效果,提高用户体验。

使用view功能配置使用dns智能解析
修改全局配置文件:
[root@node1 ~]# vim /etc/named.conf

  acl inter-network {
        127.0.0.1;
  };

  acl external-network {
        192.168.2.0/24;
  };

这里我们配置两个访问控制列表,也就是acl
也就是说,我们使用不同网段的时候,会得到不同的结果。

修改区域配置文件
[root@node1 ~]# vim /etc/named.rfc1912.zones 

// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
view internal {
        match-clients { inter-network; };
        allow-recursion { inter-network; };
        zone "localhost.localdomain" IN {
                type master;
                file "named.localhost";
                allow-update { none; };
        };

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

                type master;
                file "named.loopback";
                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 "bc.com" IN {
                type master;
                file "bc.com.zone";
                allow-transfer { 192.168.2.202; };
        };

        zone "." IN {
                type hint;
                file "named.ca";
        };
};

view external-network {
        match-clients { external-network; };
        zone "bc.com" IN {
                type master;
                file "bc.com.zone.external";
        };

};

这里我们定义了两个view:
一个是叫internal对应内网用户,一个是external-network对应外网用户。

不过这里我们只需要关注两个zone:
view internal中的bc.com
view external-network中的bc.com

修改external-network中的bc.com这个域的的文件
[root@node1 ~]# vim /var/named/bc.com.zone.external 
$TTL 86400
$ORIGIN bc.com.
@       IN      SOA     ns1.bc.com.     admin.bc.com (
                        2016122231
                        1H
                        5M
                        7D
                        1D )

                IN      NS      ns1
                IN      NS      ns2
ops     IN      NS              ns3
ns1     IN      A               192.168.2.201
ns2     IN      A               192.168.2.202
ns3     IN      A               192.168.2.203
node1   IN      A               202.192.72.211
*               IN      A       192.168.2.201

注意:
我们对应内网的node1,A记录是192.168.2.201
这里对应外网的node1的A记录则是202.192.72.211

检查语法错误
[root@node1 ~]# named-checkconf 

这一步真的很重要。

重启服务
[root@node1 ~]# service named restart
Redirecting to /bin/systemctl restart  named.service
测试功能是否正常
[root@node1 ~]# dig -t A node1.bc.com @192.168.2.201

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> -t A node1.bc.com @192.168.2.201
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45902
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;node1.bc.com.          IN  A

;; ANSWER SECTION:
node1.bc.com.       86400   IN  A   202.192.72.211

;; AUTHORITY SECTION:
bc.com.         86400   IN  NS  ns1.bc.com.
bc.com.         86400   IN  NS  ns2.bc.com.

;; ADDITIONAL SECTION:
ns1.bc.com.     86400   IN  A   192.168.2.201
ns2.bc.com.     86400   IN  A   192.168.2.202

;; Query time: 1 msec
;; SERVER: 192.168.2.201#53(192.168.2.201)
;; WHEN: Fri Dec 30 21:29:48 CST 2016
;; MSG SIZE  rcvd: 125

[root@node1 ~]# dig -t A node1.bc.com @127.0.0.1

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> -t A node1.bc.com @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6048
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;node1.bc.com.          IN  A

;; ANSWER SECTION:
node1.bc.com.       86400   IN  A   192.168.2.221
node1.bc.com.       86400   IN  A   192.168.2.211
node1.bc.com.       86400   IN  A   192.168.2.201

;; AUTHORITY SECTION:
bc.com.         86400   IN  NS  ns1.bc.com.
bc.com.         86400   IN  NS  ns2.bc.com.

;; ADDITIONAL SECTION:
ns1.bc.com.     86400   IN  A   192.168.2.201
ns2.bc.com.     86400   IN  A   192.168.2.202

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Dec 30 21:30:19 CST 2016
;; MSG SIZE  rcvd: 157

可以看出,;; ANSWER SECTION:解析出了不同的结果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 1. 概述 在网络环境中一般用户只需要在浏览器中输入url如www.sunny.com就可以到对应服务器获取相应的...
    ghbsunny阅读 2,864评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,585评论 18 139
  • DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能...
    一直在努力hard阅读 4,606评论 3 19
  • DNS简介DNS解析关键概念BIND 一、DNS简介: (一)DNS服务 DNS:Domain Name Serv...
    哈喽别样阅读 1,781评论 0 2
  • 目录: 一些基本概念主机名DNS名称解析DNS 解析的后端存储名称解析总结 大规模域名解析的体系架构DNS 解析需...
    C86guli阅读 12,475评论 3 34