--
DNS view dns视图
电信 , 联通 ,网通 , 铁通
不同IDC之间存在互联速度问题,电信用户访问电信的网络比较快,但访问联通的就比较慢
解决方案
智能DNS(dns view)
智能地判断用户端的访问IP,通过view解析到不同的服务器
还能应用于多个主机的负载均衡,这样可以使用来自各地的IP比较平均地分布到各个服务器
有些用户在国外也有服务器,可以通过智能DNS解析国外的用户访问国外的服务器,国内访问国内的服务器
实验环境
DNS服务器 10.1.1.192 dns.cluster.com
实验前准备
时间同步
ntpdate 10.1.1.1
或者写脚本,让它30秒同步一次
while true
do
ntpdate 10.1.1.1 >/dev/null 2>&1
sleep 30
done
主机名定义好
hostname dns.cluster.com
vim /etc/sysconfig/network
HOSTNAME=dns.cluster.com
vim /etc/hosts
10.1.1.192 dns.cluster.com
第一步,定义acl文件
实际情况下可以下载一个ripe工具,去下载不同IDC的IP段
wget http://ftp.apnic.net/apnic/dbase/tools/ripe-dbase-client-v3.tar.gz
tar xvf ripe-dbase-client-v3.tar.gz -C /usr/src/
cd /usr/src/whois-3.1/
./configure ;make ;make install
whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET > /var/named/chroot/var/named/chinanet
whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP > /var/named/chroot/var/named/cncgroup
下下来的文件,要经过 grep awk sed的处理得到IP或者IP段
这个在实验环境下实现不了
手动编写不同的ACL文件
vim /var/named/chroot/var/named/dianxin
acl dianxin {
10.1.1.35;
10.1.1.59;
192.168.1/24; --也可以写IP段
};
vim /var/named/chroot/var/named/wangtong
acl wangtong {
10.1.1.36;
10.1.1.56;
172.16.1/24;
};
第二步:定义DNS的主配置文件
vim /var/named/chroot/etc/named.conf
options {
directory "/var/named";
};
include "dianxin";
include "wangtong";
view "dianxin" {
match-clients {dianxin;};
zone "cluster.com" IN {
type master;
file "data/dianxin.cluster.com.zone";
};
};
view "wangtong" {
match-clients {wangtong;};
zone "cluster.com" IN {
type master;
file "data/wangtong.cluster.com.zone";
};
};
view "others" {
match-clients {any;};
zone "cluster.com" IN {
type master;
file "data/others.cluster.com.zone";
};
};
第三步:编写定义的三个zone文件
vim /var/named/chroot/var/named/data/dianxin.cluster.com.zone
$TTL 86400
@ IN SOA dns.cluster.com. root.cluster.com. (
2010070401
360
480
720
86400 )
IN NS dns.cluster.com.
dns IN A 10.1.1.192 --DNS服务器的地址
www IN A 10.1.1.40 --假设www.cluster.com的电信机房的服务器IP为10.1.1.40
vim /var/named/chroot/var/named/data/wangtong.cluster.com.zone
$TTL 86400
@ IN SOA dns.cluster.com. root.cluster.com. (
2010070401
360
480
720
86400 )
IN NS dns.cluster.com.
dns IN A 10.1.1.192
www IN A 10.1.1.41 --网通机房的服务器IP为10.1.1.41
vim /var/named/chroot/var/named/data/others.cluster.com.zone
$TTL 86400
@ IN SOA dns.cluster.com. root.cluster.com. (
2010070401
360
480
720
86400 )
IN NS dns.cluster.com.
dns IN A 10.1.1.192
www IN A 10.1.1.42 --其它的访问10.1.1.42这台服务器
第四步,最好修改一下属主,确保服务运行OK
chown named.named /var/named/chroot/var/named/data/*
chown named.named /var/named/chroot/etc/*
第五步,启动服务
/etc/init.d/named restart
第六步:测试
在客户端修改/etc/resolv.conf 把DNS的指向改为指向10.1.1.192这台DNS服务器
使用nslookup www.cluster.com去验证会发现
10.1.1.35和10.1.1.59的客户端返回的www.cluster.com的IP为10.1.1.40
10.1.1.36和10.1.1.56的客户端返回的www.cluster.com的IP为10.1.1.41
其它IP的客户端返回的www.cluster.com的IP为10.1.1.42
-----------------------------------------------------------------------
yum install caching-nameserver -y --bind软件的一个配置模版
ls /var/named/chroot/etc/
localtime named.caching-nameserver.conf named.rfc1912.zones rndc.key
named.caching-nameserver.conf + named.rfc1912.zones =named.conf
如果这三个文件同时存在,刚优先读取named.conf
可以查看配置样本
在/usr/share/doc/bind-9.3.6/sample/ 下
vim /var/named/chroot/etc/named.caching-nameserver.conf --此文件控制的参数更多
options {
listen-on port 53 { any; }; --修改为any,监听所有
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";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { any; }; --改为any,允许所有人查询
allow-query-cache { localhost; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver { --这个文件做出来后,本地不能解析,需要把这一段给注释掉才可以
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
include "dianxin";
include "wangtong";
view "dianxin" {
match-clients {dianxin;};
zone "cluster.com" IN {
type master;
file "data/dianxin.cluster.com.zone";
};
};
view "wangtong" {
match-clients {wangtong;};
zone "cluster.com" IN {
type master;
file "data/wangtong.cluster.com.zone";
};
};
view "others" {
match-clients {any;};
zone "cluster.com" IN {
type master;
file "data/others.cluster.com.zone";
};
};
后面的步骤也是一样
在这个配置文件里写,也一样能实现上面view功能
exec04_advanced_dns.txt
最新推荐文章于 2022-08-02 12:26:11 发布