exec04_advanced_dns.txt

--

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功能




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#DESCRIPTION:Resource namespaces pidns01 pidns01 pidns02 pidns02 pidns03 pidns03 pidns04 pidns04 pidns05 pidns05 pidns06 pidns06 pidns10 pidns10 pidns12 pidns12 pidns13 pidns13 pidns16 pidns16 pidns17 pidns17 pidns20 pidns20 pidns30 pidns30 pidns31 pidns31 pidns32 pidns32 mqns_01 mqns_01 mqns_01_clone mqns_01 -m clone mqns_01_unshare mqns_01 -m unshare mqns_02 mqns_02 mqns_02_clone mqns_02 -m clone mqns_02_unshare mqns_02 -m unshare mqns_03 mqns_03 mqns_03_clone mqns_03 -clone mqns_04 mqns_04 mqns_04_clone mqns_04 -clone netns_netlink netns_netlink netns_breakns_ip_ipv4_netlink netns_breakns.sh netns_breakns_ip_ipv6_netlink netns_breakns.sh -6 netns_breakns_ip_ipv4_ioctl netns_breakns.sh -I netns_breakns_ip_ipv6_ioctl netns_breakns.sh -6I netns_breakns_ns_exec_ipv4_netlink netns_breakns.sh -e netns_breakns_ns_exec_ipv6_netlink netns_breakns.sh -6e netns_breakns_ns_exec_ipv4_ioctl netns_breakns.sh -eI netns_breakns_ns_exec_ipv6_ioctl netns_breakns.sh -6eI netns_comm_ip_ipv4_netlink netns_comm.sh netns_comm_ip_ipv6_netlink netns_comm.sh -6 netns_comm_ip_ipv4_ioctl netns_comm.sh -I netns_comm_ip_ipv6_ioctl netns_comm.sh -6I netns_comm_ns_exec_ipv4_netlink netns_comm.sh -e netns_comm_ns_exec_ipv6_netlink netns_comm.sh -6e netns_comm_ns_exec_ipv4_ioctl netns_comm.sh -eI netns_comm_ns_exec_ipv6_ioctl netns_comm.sh -6eI netns_sysfs netns_sysfs.sh shmnstest_none shmnstest -m none shmnstest_clone shmnstest -m clone shmnstest_unshare shmnstest -m unshare shmem_2nstest_none shmem_2nstest -m none shmem_2nstest_clone shmem_2nstest -m clone shmem_2nstest_unshare shmem_2nstest -m unshare shm_comm shm_comm mesgq_nstest_none mesgq_nstest -m none mesgq_nstest_clone mesgq_nstest -m clone mesgq_nstest_unshare mesgq_nstest -m unshare msg_comm msg_comm sem_nstest_none sem_nstest -m none sem_nstest_clone sem_nstest -m clone sem_nstest_unshare sem_nstest -m unshare semtest_2ns_none semtest_2ns -m none semtest_2ns_clone semtest_2ns -m clone semtest_2ns_unshare semtest_2ns -m unshare sem_comm sem_comm utsname01 utsname01 utsname02 utsname02 utsname03_clone utsname03 -m clone utsname03_unshare utsname03 -m unshare utsname04_clone utsname04 -m clone utsname04_unshare utsname04 -m unshare mountns01 mountns01 mountns02 mountns02 mountns03 mountns03 mountns04 mountns04 userns01 userns01 userns02 userns02 userns03 userns03 userns04 userns04 userns05 userns05 userns06 userns06 userns07 userns07 userns08 userns08 # time namespaces sysinfo03 sysinfo03 clock_nanosleep03 clock_nanosleep03 clock_gettime03 clock_gettime03 timens01 timens01 timerfd04 timerfd04
最新发布
07-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值