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;
將我們的用戶賬號進行註冊,需要我們先在網上註冊一個域名,然後將域名服務器指向這個服務器即可。