DNS的子域授权与智能解析(2)

智能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 // (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:解析出了不同的结果。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d84ffce7212bc5fd4b25446e41c0fb76.html