exec04_advanced_dns.txt

来源:互联网 发布:mac照片导入移动u盘 编辑:程序博客网 时间:2024/04/26 05:39
--

DNS view dns视图

电信 , 联通 ,网通 , 铁通

不同IDC之间存在互联速度问题,电信用户访问电信的网络比较快,但访问联通的就比较慢

解决方案

智能DNS(dns view)
智能地判断用户端的访问IP,通过view解析到不同的服务器

还能应用于多个主机的负载均衡,这样可以使用来自各地的IP比较平均地分布到各个服务器

有些用户在国外也有服务器,可以通过智能DNS解析国外的用户访问国外的服务器,国内访问国内的服务器


实验环境
DNS服务器 10.1.1.192dns.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功能




原创粉丝点击