DNS篇之六 智能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;

將我們的用戶賬號進行註冊,需要我們先在網上註冊一個域名,然後將域名服務器指向這個服務器即可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章