DNS试图及日志系统:
allow-recursion {}; #能够被递归的客户端来源;
allow-query {}; #允许被查询的客户端;
allow-transfer {};#允许进行区域传送的客户端;
axfr
ixfr
allow-query { 172.16.0.0/16; 127.0.0.0/8; 10.0.0.0/8; }
如果我们的query,recursion,都需要进行修改怎么办?
我们可以定义一个acl,将我们的客户端取个名字,想使用的时候,直接拿过来用即可。同时可以被多次使用,这个就叫做acl。
举例如下:
acl ACL_NAME {
172.16.0.0/16;
127.0.0.0/8;
};
acl innet {
172.16.0.0/16;
127.0.0.0/8;
};
allow-query { innet; };
none; #一个都没有;
any; #任意的,所有的。
DNS-BIND可以看看。
中国的运营商电信和联通:telecom;unicom;
我们建了个网络放在电信机房里面,想通过联通的来访问,用户体验速度非常慢。
将我们的服务器变成双线接入的即可。于是将中国进行划分区域,在每一个区域里面放一组服务器。根据用户的IP地址不同,根据客户端的来源能够判定用户到底
来自哪里。能否将其固定下来,用户的每一次请求都是返回的本地服务器的地址?如何实现这种解析机制?dns能够根据客户端所属的网络进行判断,并且返回一个我们
事先定义好的IP地址。这种方法我们就将其称为智能dns。
现在我们将我们的客户端分为两类:
Unicom
Telecom
如何实现将来自电信的发往电信的机房?来自联通的发往联通的机房?
实现方法:将数据文件分成两部分,分别应对不同的网络。这种结果我们将其称为split brain。然后还可以将其根据不同的区域行政区分,进行不同的数据转发,这样全国
就需要70多台服务器。他们放的最多的服务器是缓存服务器。像这种能够判断服务器来源,叫做CDN(内容分发网络,Conten Delivery Network).
模拟下这种功能如何实现?
172.16.0.0/16,127.0.0.0/8 telecom;认定其他网段的ip地址为unicom的网络。
我将100.8的IP地址进行改变成192.168.100.141。一旦使用了视图,所有的区域都必须要定义在视图里面去。所有的区域都必须定义在视图中,
根区域只要定义在需要递归的区域中就行了。
于是我们将视图分为三个类型,一个联通,一个电信,还有一个是本地用户。每一个视图都要有一个区域数据文件。
view telecom {
zone "zledu.com" IN {
type master;
file "telecom.zledu.com.zone";
};
};
view unicom {
zone "zledu.com" IN {
type master;
file "unicom.zledu.com.zone";
};
};
那我们怎么判断客户端用户来自于那个网络呢?可以使用man named.conf,查看match_clients
acl telecom {
172.16.0.0/16;
127.0.0.0/8;
};
options {
directory "/var/named";
};
view telecom {
match-clients { telecom; };
zone "zledu.com" IN {
type master;
file "telecom.zledu.com.zone";
};
};
view unicom {
match-clients { any; };
zone "zledu.com" IN {
type master;
file "unicom.zledu.com.zone";
};
};
之后就可以演示CDN的效果。
如果我们有些域,想实现不同的主机来访问都是相同的情况,该怎么操作呢?
acl telecom {
172.16.0.0/16;
127.0.0.0/8;
};
options {
directory "/var/named";
};
view telecom {
match-clients { telecom; };
zone "zledu.com" IN {
type master;
file "telecom.zledu.com.zone";
};
zone "a.net" IN {
type master;
file "a.net.zone";
};
};
view unicom {
match-clients { any; };
zone "zledu.com" IN {
type master;
file "unicom.zledu.com.zone";
};
zone "a.net" IN {
type master;
file "a.net.zone";
};
};
修改权限;
[[email protected] named]# chgrp named a.net.zone
[[email protected] named]# chmod 640 a.net.zone
[[email protected] named]# cat a.net.zone
$TTL 600
@ IN SOA ns1.a.net. admin.a.net. (
20140524
1H
5M
2D
5D)
IN NS ns1
ns1 IN A 172.16.100.1
www IN A 172.16.100.100
以上说明了解析两个域都是可以的。解析任何一个区域都是可以的。但是发现这些区域就要写很多次数。
后来为了记忆的方便,它将我们的数据给写入到数据库里面去,这样就不需要重新启动服务器。速度放慢了,但是占用内存少了。
dnspod能够实现智能解析,它能实现分教育网、电信、联通、国外的各个地方的网络等。
www.dns.la;
将我们的用户账号进行注册,需要我们先在网上注册一个域名,然后将域名服务器指向这个服务器即可。