实验:智能DNS服务
当用户访问一个网站的时候怎么样能是访问速度达到最佳呢?这是所有的网站都会在意的问题,这时候智能DNS就出现了,它的意思就是当一台主机访问一个网站,DNS服务器会把离它最近的区域代理服务器的地址给它,它访问的就是所谓的区域代理服务器。区域代理服务器存放的一部分的静态信息,动态资源的特定的信息转发到web服务器,不同地区的用户访问的数据库的是不同的,就能够实现访问速度快,单纯的cname的设置是只能随机访问,并不能很好的提高用户的访问速度。实现智能dns需要定义ACI和view,view把acl和区域数据库关联起来。如果有view,必须把所有的区域信息放在view里,根域也是一样放进去。
第一步:建立域名数据库,本地已经写过一个域名数据库,直接复制,记得加上-p。
1、cd /var/named/
2、cp magedu.com.zone magedu.com.zone.beijing -p
$TTL 1D
@ IN SOA dns1 mail.magedu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns1
dns1 A 192.168.253.195
WWW CNAME websrv
websrv A 172.17.253.22
3、cp magedu.com.zone magedu.com.zone.henan -p
$TTL 1D
@ IN SOA dns1 mail.magedu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns1
dns1 A 192.168.253.129
WWW CNAME websrv
websrv A 192.168.253.22
第二步:定义acl,记住必须在/etc/named.conf配置文件中的options前面定义。
acl henannet {
192.168.253.0/24;
};
acl beijingnet {
172.17.0.0/16;
};
第三步:j需要把本地端口给解绑,这个是必须做的,只要需要域名解析都得解绑允许其他的机器访问,不能只能让本主机服务器才能用。
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
第四步:定义view视图,把acl和区域数据库关联起来。
vim /etc/named.conf
方法1:
view beijingview {
match-clients { beijingnet;};
zone "magedu.com" {
type master;
file "magedu.com.zone.beijing";
};
zone "." IN {
type hint;
file "named.ca";
};
};
方法2:
view henanview {
match-clients {henannet;};
include "/etc/named.rfc1912.zones";
zone "." IN {
type hint;
file "named.ca";
};
};
/etc/named.rfc1912.zones
zone "magedu.com" IN {
type master;
file "magedu.com.zone.henan";
};
问题:本地地址能访问吗?可以看出是拒绝访问的。
dig www.magedu.com@127.0.0.1
解决方式:
第一步:定义一个any的acl包含自己的网段,或者是漏掉的网段。
view other {
match-clients {any;};
include "/etc/named.rfc1912.zones.henan";
zone "." IN {
type hint;
file "named.ca";
};
};
第二步:定义一个域名在/etc/named.rfc1912.zones.henan。
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
};
第三步:搭建域名数据库。
vim magedu.com.zone
$TTL 1D
@ IN SOA dns1 mail.magedu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS dns1
@ NS dns2
dns1 A 192.168.134.161
dns2 A 192.168.134.162
WWW CNAME websrv
websrv A 6.6.6.6