DNSVIEW巧妙写法.docx
- 文档编号:30057962
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:18
- 大小:23.12KB
DNSVIEW巧妙写法.docx
《DNSVIEW巧妙写法.docx》由会员分享,可在线阅读,更多相关《DNSVIEW巧妙写法.docx(18页珍藏版)》请在冰豆网上搜索。
DNSVIEW巧妙写法
----------------------------------------------------------------------------------
(1)配置BIND9DNSViews的原理和需求
----------------------------------------------------------------------------------
DNS服務器最基本的任務就是響應域名的查詢,返回該域名的地址資料.在DNS服務器中將一個
域名分成內部與外部做不同的View解析,可以提升安全性,以及分類應付不同區域的查詢請求.
例如您的單位需要分成內部網和外部網,希望將同一個域名解析為不同的IP地址,以提高安全
防護的目的,或者應付不同業務的應用;又比如您需要將業務按地域來劃分,打算在各個地區
分別設置各自的主機來處理訪問請求(或者單機雙線也適用),以圖解决中国南北網(电信/网通)
互不相通所導致的速度差异之问题,希望將電信用戶解釋到由電信網絡所提供的IP地址上,而
網通用戶則解釋到由網通網絡所提供的IP地址上;
要實現將來自不同地域(用IP段來標識)的請求,自動引導到不同區域的主機,可以采用域名的
多解釋方法來簡單實現.在BIND9中有個新的view指令可以完成達到這個目的,方法就是設置
多個view段落來響應同一個域名的查詢請求.只需要在每個view段落的match-clients項目中,
設置所需匹配的客戶端IP段落,并且在每個段落中都設置該域名的區域資料,但不同的view則
指向不同的區域文件,然后在各自的區域文件中分別設置相應的區域內容,這樣就可以達到按
請求者的IP段落,來分別響應并提供不同的查詢結果了.
針對訪問者不同的IP段,來解釋主機域名的相應的IP地址,也可以輕易實現負載均衡或者化解
地區局限.舉個例子來說,目前國內的網絡因為種種原因,同外部網絡的連線經常出現不穩定
的狀況,造成從大陸內部無法訪問外部,而外部也無法訪問內部,尤其是導致電郵收發異常緩慢
甚至丟失反彈,非常令人頭疼.而且很多時候造成這種不穩定的因素,還常常是源自于國家級
主干網絡的非技術性故障,這就很難從主機供應商方面尋求解決問題的方案.如果要徹底解決
這個問題的話,那么一個可能的方案就是按地域來劃分業務.例如,分別在不同地區設置一臺
主機(假設在北京設置一臺主機,在廣州設置一臺主機,在香港設置另一臺主機),然后就可設法
將大陸內部北方的客戶引導到北京(網通)的主機,將南方的客戶引導到廣州(電信)的主機,而
將海外的客戶則引導到香港的主機.
請注意:
view指令是BIND9的新功能,BIND8以前的版本無此功能;
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
(2)配置BIND9DNSViews的實驗范例
----------------------------------------------------------------------------------
【實驗環境】
操作系统:
Debian4.1;
BIND版本:
BIND9.3.4;
DNS服务器:
192.168.0.8;
内部IP段:
192.168.0.0/24;
外部IP段:
除192.168.0.0/24之外的所有IP;
解釋域名:
;
希望内部IP和本機IP(192.168.0.8)所解析到的IP地址为1.1.1.1;
希望外部IP段(192.168.0.7和192.168.0.17)则解析到2.2.2.2;
希望其他IP段(我的測試IP是192.168.0.2)則解釋到3.3.3.3;
【BIND9的配置文件】
vi/etc/bind/named.conf; #
-----------------------------------------
include"/etc/bind/named.conf.options";
view"internal"{
match-clients {localhost;192.168.0.8;};
match-destinations{any;};
recursionyes;
allow-query {localhost;192.168.0.0/24;};
allow-transfer {192.168.0.7;};
include"/etc/bind/named.internal.zones";
include"/etc/bind/named.conf.local";
};
view"external"{
match-clients {192.168.0.7;192.168.0.17;};
match-destinations{any;};
recursionyes;
allow-query {any;};
allow-transfer {192.168.0.7;};
include"/etc/bind/named.external.zones";
include"/etc/bind/named.conf.local";
};
view"others"{
match-clients {any;};
match-destinations{any;};
recursionyes;
allow-query {any;};
allow-transfer {192.168.0.7;};
include"/etc/bind/named.others.zones";
include"/etc/bind/named.conf.local";
};
-----------------------------------------
請注意:
各個View指令的應用是按先后順序執行的,即是按首先符合的條件返回結果,例如本地
請求首先符合第一View指令,則返回結果,不再檢查其他的View;來自192.168.0.7的請求符合
第二個View指令,則返回結果,不再檢查后面的View;所以,如果要在該View的match-clients
中設置任何條件(即any)的話,就必須將這個View擺在最后面,而絕不能放在其他View的前面.
vi/etc/bind/named.internal.zones;
-----------------------------------------
zone"."{
typehint;
file"/etc/bind/db.root";
};
zone"localhost"{
typemaster;
file"/etc/bind/db.local";
};
zone"127.in-addr.arpa"{
typemaster;
file"/etc/bind/db.127";
};
zone"0.in-addr.arpa"{
typemaster;
file"/etc/bind/db.0";
};
zone"255.in-addr.arpa"{
typemaster;
file"/etc/bind/db.255";
};
zone""IN{
typemaster;
file"/etc/bind/.internal";
};
-----------------------------------------
vi/etc/bind/named.external.zones;
-----------------------------------------
zone"."{
typehint;
file"/etc/bind/db.root";
};
zone"localhost"{
typemaster;
file"/etc/bind/db.local";
};
zone"127.in-addr.arpa"{
typemaster;
file"/etc/bind/db.127";
};
zone"0.in-addr.arpa"{
typemaster;
file"/etc/bind/db.0";
};
zone"255.in-addr.arpa"{
typemaster;
file"/etc/bind/db.255";
};
zone""IN{
typemaster;
file"/etc/bind/.external";
};
-----------------------------------------
vi/etc/bind/named.others.zones;
-----------------------------------------
zone"."{
typehint;
file"/etc/bind/db.root";
};
zone"localhost"{
typemaster;
file"/etc/bind/db.local";
};
zone"127.in-addr.arpa"{
typemaster;
file"/etc/bind/db.127";
};
zone"0.in-addr.arpa"{
typemaster;
file"/etc/bind/db.0";
};
zone"255.in-addr.arpa"{
typemaster;
file"/etc/bind/db.255";
};
zone""IN{
typemaster;
file"/etc/bind/.others";
};
-----------------------------------------
vi/etc/bind/.internal;
-----------------------------------------
$TTL4320 ;1hour12minutes
@ IN SOA . . (
2007101701 ;
3600 ;
1800 ;
36000 ;
3600) ;
IN NS .
ns IN A 192.168.0.8
www IN A 1.1.1.1
-----------------------------------------
vi/etc/bind/.external;
-----------------------------------------
$TTL4320 ;1hour12minutes
@ IN SOA . . (
2007101701 ;
3600 ;
1800 ;
36000 ;
3600) ;
IN NS .
ns IN A 192.168.0.8
www IN A 2.2.2.2
-----------------------------------------
vi/etc/bind/.others;
-----------------------------------------
$TTL4320 ;1hour12minutes
@ IN SOA . . (
2007101701 ;
3600 ;
1800 ;
36000 ;
3600) ;
IN NS .
ns IN A 192.168.0.8
www IN A 3.3.3.3
-----------------------------------------
【測試與結果】
設置好後重啟BIND服務:
/etc/init.d/bind9restart;
如果一切設置正常的話,現在DNS服務器應該能分別針對不同IP地址的請求,來返回不同的主機
解釋了,這里測試從192.168.0.2,192.168.0.7和192.168.0.8(本機)查詢結果是:
從192.168.0.2查詢(dig@191.168.0.2;)則返回3.3.3.3;
從192.168.0.7查詢(dig@191.168.0.7;)則返回2.2.2.2;
從192.168.0.8查詢(dig@191.168.0.8;)則返回1.1.1.1;
----------------------------------------------------------------------------------
(3)配置BIND9DNSViews的實作案例
----------------------------------------------------------------------------------
【實作環境】
操作系统:
Debian4.1;
BIND版本:
BIND9.3.4;
DNS服务器:
192.168.0.1;
内部IP段:
192.168.0.0/24;
外部IP段:
采用ADSL撥號上網,本次測試時的動態IP是210.209.111.254;
解釋域名:
子域名(**鳈C();
假設我的域名現在需要針對來自四個不同區域的DNS查詢,分別返回不同的主機IP地址,我計劃
把DNS的配置文件分為如下四個View段落:
本機內網 internal 對應主機IP:
1.1.1.1
中國網通 chinanetcom 對應主機IP:
2.2.2.2
中國電信 chinatelecom 對應主機IP:
3.3.3.3
其他網絡 others 對應主機IP:
4.4.4.4
因為我沒有可用的注冊域名,所以首先要在免費的DNS注冊機構申請一個子域名.很快就找到了
一個可以提供免費DNS注冊的機構:
freedns.afraid.org,這個網站所提供的注冊服務比較多,
包括了免費的NS記錄(其他大部分免費注冊機構都不提供NS記錄的注冊).
因為我的測試主機是用撥號上網的,IP是動態地址,所以下面的注冊資料只是臨時測試使用的.
在本次測試中,我先注冊了一個A記錄(ns-),并將這個A記錄指向我的撥號上網的
主機IP(210.209.111.254); 然后再注冊一個用來委派子域的NS記錄,我將這個測試用的子域
命名為,顧名思義,注冊子域名的NS記錄,當然需要指定一個NS(名稱服務器)地址,
而且NS地址不能用動態IP地址,所以就用前面剛剛注冊的A記錄作為本子域的NS服務器地址.
注冊資料是立即生效的(效率不錯),看看注冊結果:
digns-@ns1.afraid.org; #這是A記錄;
-----------------------------------------
;<<>>DiG9.3.4<<>>ns-@ns1.afraid.org
;(1serverfound)
;;globaloptions:
printcmd
;;Gotanswer:
;;->>HEADER<<-opcode:
QUERY,status:
NOERROR,id:
23072
;;flags:
qraard;QUERY:
1,ANSWER:
1,AUTHORITY:
4,ADDITIONAL:
4
;;QUESTIONSECTION:
;ns-. IN A
;;ANSWERSECTION:
ns-. 3600 IN A 210.209.111.254
;;AUTHORITYSECTION:
. 86400 IN NS ns1.afraid.org.
. 86400 IN NS ns2.afraid.org.
. 86400 IN NS ns3.afraid.org.
. 86400 IN NS ns4.afraid.org.
;;ADDITIONALSECTION:
ns1.afraid.org. 1800 IN A 67.19.72.206
ns2.afraid.org. 1800 IN A 66.252.1.255
ns3.afraid.org. 1800 IN A 72.20.25.134
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DNSVIEW 巧妙 写法
![提示](https://static.bdocx.com/images/bang_tan.gif)