- 論壇徽章:
- 1
|
帶主從設(shè)置的DNS
View的實現(xiàn)
Bind的簡介
DNS系統(tǒng)是個多級別的、分布的數(shù)據(jù)庫系統(tǒng)。它保存互連網(wǎng)主機名和IP地址的對應(yīng)關(guān)系,也保存IP地址和主機名的對應(yīng)關(guān)系,郵件路由信息,和其一些互連網(wǎng)程式用到的信息。
DNS中客戶程序查找的信息叫解析庫(
resolver
library),
他發(fā)送
一個查詢到一個或多個服務(wù)器并等待回應(yīng),BIND
9包含了域名服務(wù)和解析庫。
DNS中的數(shù)據(jù)是按樹型結(jié)構(gòu)存儲的,或者說是按樹型管理的。樹的每個節(jié)
點,稱為一個域,由一個庫文件標示。表示節(jié)點的域名相互串聯(lián)直到根域
(root
node)。他從右到左寫成字符串,中間用“點”(.)分隔。一個域名
只需要在他的父域中名字唯一就可以了。
例如在Uplooking公司中
一個主機的名字是mail.uplooking.com,這
里com
是最高級的域名,mail.uplooking.com
屬于這個域,uplooking
是com的的子域,
mail 是主機的名字。
為了管理方便,名址空間被分隔成一些區(qū),這些區(qū)叫做區(qū)域(zones)。
每一個從一個節(jié)點開始,并且延伸至一個葉子節(jié)點,或延伸到另一個區(qū)域的開
始。每一個區(qū)域的數(shù)據(jù)都存在DNS中,他通過DNS協(xié)議應(yīng)答本區(qū)域的DNS查
詢。相關(guān)的域名數(shù)據(jù)存儲在資源記錄中(resource
records (RRs))。
正確的操作域名服務(wù)器,很重要的一點是理解區(qū)域(zone)和域domain)的區(qū)別。區(qū)域(
zone)是DNS樹中一個節(jié)點的代表。一個區(qū)域(zone)包含個
域樹(domain
tree)相鄰近的部分,對他來說,一個域名服務(wù)器擁有他完
整的信息,并擁有管理權(quán)。他包含從某一節(jié)點以下任何的域名,除了那些連接
到其他區(qū)的部分(那些部分可能由其他更低級的服務(wù)器管理)。一個節(jié)點會被
帶主從復(fù)制的DNS
view實現(xiàn)
一個或多個父區(qū)域的NS
記錄(NS
records )標注,他會被從根區(qū)域始逐層匹配。
例如,
uplooking.com 域中有host1.stu1.uplooking.com
和
host2.stu2.uplooking.com兩臺主機,但uplooking.com
區(qū)域中只有
stu1.example.com
和
stu2.example.com
兩個區(qū)域。一個區(qū)域
(zone)能夠精確的映射一個域(domain),
也能夠只包含一個域的部分,
其他部分由另一個域名服務(wù)器解釋。DNS中每一個名字都是個域,即使他是個
終點(terminal),沒有子域(subdomains)。
每一個子域都是個域,除
了根域外任何的域也都是子域。這些術(shù)語的意義都不但是字面能夠理解的,建
議閱讀RFCs
1033, 1034 and 1035來完整理解這些難點和細節(jié)。
雖然BIND
叫作
"域名服務(wù)軟件",他主要處理“區(qū)域”。named.conf
中
使用“主”(master)或從(slave)聲明區(qū)域,而不是域,假如請求一個域的
從服務(wù)器,實際是請求這個區(qū)域信息的一種“收集”(collection
of
zones)。每個區(qū)都至少有一個主域名服務(wù)器(authoritative
name
server),他包含了本區(qū)域完整的數(shù)據(jù),
為了使DNS服務(wù)更穩(wěn)定,很多區(qū)域
有兩個或兩個以上的主域名服務(wù)器。主域名服務(wù)器的應(yīng)答含有"authoritative
answer" (AA)
位,這使對DNS配置進行排錯時更容易。排錯工具能夠如dig。主域名服務(wù)器是區(qū)域數(shù)據(jù)保存的地方,這個服務(wù)器也叫“管理服務(wù)器”
(primary
master server),
或簡稱“管理服務(wù)器”(primary),他從
本地文檔中讀入數(shù)據(jù),這些數(shù)據(jù)可能是手工輸入的,也可能是由某些本地文檔
生成的,然后再由人來編輯的,這些文檔叫“區(qū)域數(shù)據(jù)文檔”(
zone
file)
或“主數(shù)據(jù)文檔”
(master
file )。其他的主服務(wù)器,從屬服務(wù)器,也叫第二服務(wù)器,從其他服務(wù)器中獲取區(qū)域數(shù)據(jù)信息,這個過程叫“區(qū)域數(shù)據(jù)傳送”(
zone
transfer)。典型的傳送
是從管理服務(wù)器傳送到從屬服務(wù)器,但也可能是從另外一個從屬服務(wù)器中獲得
數(shù)據(jù)。也就是說,一個從屬服務(wù)器對另外一個從屬服務(wù)器來說,也可能是管理
服務(wù)器角色。通常區(qū)域任何的主域名服務(wù)器都監(jiān)聽父區(qū)域的NS記錄,這些N記錄包含父區(qū)域的一個授權(quán),主域名服務(wù)器也會把自己列在區(qū)域文檔中,作為最高層或叫頂層。能夠在區(qū)域的頂層服務(wù)器的NS記錄中列出不在父NS記錄的其他服務(wù)器,
但是不能列出不在頂級區(qū)域文檔中而只在父域中的服務(wù)器。
一個秘密的服務(wù)器(stealth
server )是個主服務(wù)器,但沒有列在區(qū)
域的NS記錄中。他能夠用于保存一個區(qū)域的本地文檔,他能夠加速區(qū)域記錄
的存取,即使任何官方的DNS都失效。一個管理服務(wù)器配置成秘密服務(wù)器經(jīng)常會在配置文檔中有"hiddenprimary"
,使用這個配置常常是因為管理服務(wù)在防火墻后,因此不能直接和外網(wǎng)通訊。由大多數(shù)操作系統(tǒng)提供的解析庫(resolver
libraries)是很少的,意味著他們不能通過和管理DNS服務(wù)器通訊就完成完整的DNS解析,相反的,他
們依靠的是本地DNS解析。這個服務(wù)器叫遞歸查詢服務(wù)器(
recursive
name
server),他為本地客戶執(zhí)行遞歸查詢。
為了提高性能,遞歸查詢服
務(wù)器會存下查詢到的結(jié)果,遞歸查詢服務(wù)器和緩存服務(wù)器通常都是個意思。
緩
存中保存一個DNS記錄的時間由(TTL)字段規(guī)定。
即使一個緩存服務(wù)器無需執(zhí)行完整的遞歸查詢,假如他對自己的緩存不滿
意,他也能夠轉(zhuǎn)發(fā)部分或任何的查詢,通常這時服務(wù)器叫轉(zhuǎn)發(fā)器
(forwarder)。
可能有一個或多個轉(zhuǎn)發(fā)器,查詢在轉(zhuǎn)發(fā)器中查找,直到任
何的轉(zhuǎn)發(fā)器都找遍了,或找到了答案。轉(zhuǎn)發(fā)器典型的應(yīng)用是,不希望任何的服
務(wù)器和其他的互連網(wǎng)服務(wù)器相互作用。典型環(huán)境包括一組互連網(wǎng)服務(wù)器和防火
墻,服務(wù)器不能通過防火墻傳遞數(shù)據(jù)包,而轉(zhuǎn)發(fā)器則能夠,那個服務(wù)器將會使用內(nèi)網(wǎng)服務(wù)器行為查詢互連網(wǎng)服務(wù)器,另一個好處是,使用轉(zhuǎn)發(fā)器特性本地電腦將會有一個很完整的緩存信息BIND域名服務(wù)器能夠作為區(qū)域的管理服務(wù)器,從屬服務(wù)器或緩存服務(wù)器。然而,雖然主服務(wù)器服務(wù)和緩存/遞歸服務(wù)器從邏輯上是不同的,也經(jīng)常在不同的服務(wù)器上運行,一個主服務(wù)器能夠禁止遞歸
(an
authoritativeonlyserver),來提高可靠性和安全性。不作為任何區(qū)域的主服務(wù)器,只為本地客戶提供遞歸查詢
(a
cachingonlyserver) 則無需暴露在互連網(wǎng)上,因而能夠放在防火墻后面。
Bind
的安裝
rpm
-ivh bind-9.3.3-10.el5.i386.rpm
rpm
-ivh bind-chroot-9.3.3-10.el5.i386.rpm
rpm
-ivh caching-nameserver-9.3.3-10.el5.i386.rpm
vim
/var/name/chroot/etc/named.conf 添加:
include
"/etc/dx.cfg";
include
"/etc/wt.cfg";
view
dx {
match-clients
{ dx ; } ;
zone
"zhang.com" {
type
master;
file
"dx/zhang.com.zone";
};
};
view
wt {
match-clients
{ wt ; } ;
zone
"zhang.com" {
type
master;
file
"wt/zhang.com.zone";
};
};
view
other {
match-clients
{ any ; } ;
zone
"zhang.com" {
type
master;
file
"wt/zhang.com.zone";
};
};
在
/var/n amed/chroot/etc
vim
dx.cfg
acl
dx { 192.168.1.16/32 ; };
vim
wt.cfg
acl
wt { 192.168.1.13/32 ; };
在
/var/named/chroot/var/named
mkdir
dx
mkdir
wt
vim
dx/zhang.com.zone
IN
NS ns.zhang.com.
ns.zhang.com.
IN A 192.168.1.189
zhang.com.
IN A 192.168.1.189
vim
wt/zhang.com.zone
IN
NS ns.zhang.com.
ns.zhang.com.
IN A 192.168.1.189
zhang.com.
IN A 192.168.1.189
把zhang.com.zone
文件的
U
G 的權(quán)限更改為
named
chown
named. * zhang.com.zone
重啟Bind
service named restart
#ifconfig
查看本機的IP為
:192.168.1.19
#vim
/etc/resolv.conf
nameserver
192.168.1.19
測試
:
#nslookup
>zhang.com
Server: 192.168.1.18
Address: 192.168.1.18#53
#ssh
192.168.1.16
#nslookup
>zhang.com
Server:
192.168.1.189
Address: 192.168.1.189#53
#ssh
192.168.1.13
#nslooking
>zhang.com
Server:
192.168.1.18
Address:
192.168.1.18#53
成功
!
實踐
:
一個公司在互聯(lián)網(wǎng)上架設(shè)一個WEB服務(wù)器給全中國的用戶來訪問,為了提高用戶的訪問體驗度,在中國存在網(wǎng)通和電信兩大不同的網(wǎng)絡(luò)運營商,他們之間的網(wǎng)絡(luò)接口帶寬只有10G
,不同網(wǎng)絡(luò)之間訪問會很慢,所以在兩個網(wǎng)絡(luò)上分別架設(shè)兩臺服務(wù)器,讓不同的網(wǎng)絡(luò)用戶去分別去訪問相對應(yīng)的網(wǎng)絡(luò)上的服務(wù)器,而對用戶來說要是透明的!Bind
9為這個提供了很好的解決方案!
Master
和
Slave
master
的配置
vim
/var/named/chroot/etc/named.conf 添加
include
"/etc/dx.cfg";
include
"/etc/wt.cfg";
view
dx {
match-clients
{ dx;192.168.1.254;!192.168.1.251; };
allow-transfer
192.168.1.254;
zone
"zhang.com" {
type
master;
file
"dx/zhang.com.zone";
};
};
view
wt {
match-clients
{ wt;192.168.1.251;!192.168.1.254; };
allow-transfer
192.168.1.251;
zone
"zhang.com" {
type
master;
file
"wt/zhang.com.zone";
};
};
slave:
include
"/etc/dx.cfg";
include
"/etc/wt.cfg";
view
dx {
match-clients
{ dx;192.168.1.254;!192.168.1.251; };
transfer-source
192.168.1.254;
zone
"zhang.com" {
type
slave;
masters
{ 192.168.1.19; };
file
"dx/zhang.com.zone";
};
};
view
wt {
match-clients
{ wt;!192.168.1.254;192.168.1.251; };
transfer-source
192.168.1.251;
zone
"right.com" {
type
slave;
masters
{ 192.168.1.19; };
file
"wt/zhang.com.zone";
};
};
在
/var/named/chroot/etc
下面
vim
dx.cfg
acl
dx { 192.168.1.0/24; };
vim
wt.cfg
acl
wt { 192.168.0.0/24; };
在/var/named/chroot/var/named
下面mkdir
dx wt
要在slave
上面虛擬一個網(wǎng)卡并指定IP地址
:
#ifconfig
eth0:0 192.168.1.251 netmask 255.255.255.0
#ifconfig
有
兩個IP地址
分別是:192.168.1.251
;
192.168.1.254
分別啟動服務(wù)
:service
named restart
同步了
!
意義:
一臺DNS服務(wù)器是很“危機”的,要有至少兩臺服務(wù)器。當一臺
DOWN
了另一臺頂上去
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u3/94517/showart_1902900.html |
|