码迷,mamicode.com
首页 > 其他好文 > 详细

DNS篇之六 智能dns的搭建

时间:2014-07-23 00:29:48      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:dns   智能   实现   

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";

};

};


修改权限;

[root@localhost named]# chgrp named a.net.zone 

[root@localhost named]# chmod 640 a.net.zone 

[root@localhost 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;

将我们的用户账号进行注册,需要我们先在网上注册一个域名,然后将域名服务器指向这个服务器即可。


本文出自 “汗水成就梦想” 博客,请务必保留此出处http://redhatdragon.blog.51cto.com/9183870/1441400

DNS篇之六 智能dns的搭建

标签:dns   智能   实现   

原文地址:http://redhatdragon.blog.51cto.com/9183870/1441400

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!