RHEL6配置DNS服務器
DNS 服務器DNS 支持兩種查詢方式遞歸查詢迭代查詢DNS 組織結(jié)構圖DNS 工作原理 ,windows 清空本機DNS 緩存:ipconfig flushdns本地DN
DNS 服務器
DNS 支持兩種查詢方式
遞歸查詢
迭代查詢
DNS 組織結(jié)構圖
DNS 工作原理
windows 清空本機DNS 緩存:ipconfig flushdns
本地DNS 解析
hosts 文件是Linux 系統(tǒng)中一個負責IP 地址與域名快速解析的文件。
文件以ASCII 格式保存在“/etc”目錄下,文件名為“hosts”。
hosts 文件包含了IP 地址和主機名之間的映射,還包括主機名的別名。
hosts 文件的格式如下:
IP 地址主機名/域名 主機別名
Bind 的簡介
Linux 下架設DNS 服務器通常是使用Bind 程序來實現(xiàn)的。
Bind 是Berkeley Internet Name Domain Service 的簡寫,它是一款實現(xiàn)DNS 服務器的開放源碼軟件。
Bind 原本是美國DARPA 資助伯克里大學(Berkeley )開設的一個研究生課題,后來經(jīng)過多年的變化發(fā)展,已經(jīng)成為世界上使用最為廣泛的DNS 服務器軟件,目前Internet 上絕大多數(shù)的DNS 服務器有都是用Bind 來架設的。
DNS 服務
后臺進程:named
腳本:/etc/rc.d/init.d/named
使用端口:53(tcp ,udp )
所需RPM 包:bind-9.3.3-10.el5
相關RPM 包:bind-chroot
主配置文件:/var/named/chroot/etc/named.conf (RHEL6默認沒有這個文件)
區(qū)域(zone)文件:存放域名與IP 的對應關系
相關路徑:/var/named/
主配置文件
Bind 的主配置文件是/var/named/chroot/etc/named.conf ,該文件只包括Bind 的基本配置,并不包含任何DNS 區(qū)域數(shù)據(jù)。
在主配置文件中主要可分為兩部分
全局聲明(options )
options 語句在每個配置文件中只有一處。如果出現(xiàn)多個options, 則第一個options 的配置有效,并會產(chǎn)生一個警告信息。
區(qū)域聲明(zone )
zone 語句作用是定義DNS 區(qū)域,在此語句中可定義DNS 區(qū)域選項。
全局配置
options {
directory “/var/named”; //相對目錄:/var/named/chroot/var/named/
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
};
directory :指定zone file的存放位置。
dump-file :定義服務器存放數(shù)據(jù)庫的路徑。
statistics-file :設置服務器統(tǒng)計信息文件的路徑。
forward :設置轉(zhuǎn)發(fā)方式。
forwarders :指定其上級域名服務器
allow-query :指定允許向其提交請求的客戶
allow-transfer :指定允許復制zone 數(shù)據(jù)的主機
allow-recursion :遞歸查詢
,設置根區(qū)域
當DNS 服務器處理遞歸查詢時,如果本地區(qū)域文件不能進行查詢的解析,就會轉(zhuǎn)到根DNS 服務器查詢,所以在主配置文件named.conf 文件中還要定義根區(qū)域。
zone " . " {
type hint;
file "named.ca";
};
type:設置域的類型
file:設置根服務列表文件名
根域信息文件
amed.ca 是一個非常重要的文件,該文件包含了Internet 的根服務器名字和地址。
Bind 接到客戶端主機的查詢請求時,如果在Cache 中找不到相應的數(shù)據(jù),就會通過根服務器進行逐級查詢。
由于named.ca 文件經(jīng)常會隨著根服務器的變化而發(fā)生變化,因此建議最好從國際互聯(lián)網(wǎng)絡信息中心(InterNIC )的FTP 服務器下載最新的版本。
下載地址為:ftp://ftp.rs.internic.net/domain/named.root。
下載完后,應將該文件改名為named.ca ,并復制到“/var/named/chroot/var/named/”目錄下。
正向解析主區(qū)域
主區(qū)域用來保存DNS 服務器某個區(qū)域(如:example.com )的數(shù)據(jù)信息。
zone "example.com " {
type master ;
file "example.com.zone ";
allow-transfer { 192.168.0.1; };
allow-query { 192.168.0.2;192.168.0.3; };
};
type:設置域名服務器的類型為主域名服務器
file :設置主區(qū)域文件的名稱
allow-transfer:設置從域名服務器的地址。
反向解析區(qū)域
在大部分的DNS 查詢中,DNS 客戶端一般執(zhí)行正向查找,即根據(jù)計算機的DNS 域名查詢對應的IP 地址。但在某些特殊的應用場合中(如判斷IP 地址所對應的域名是否合法),也會使用到通過IP 地址查詢對應DNS 域名的情況(也稱為反向查找)。
zone “0.168.192.in-addr .arpa " {
type master;
file "192.168.0.zone";
allow-transfer { 192.168.0.20; };
};
注意:在DNS 標準中定義了固定格式的反向解析區(qū)域:反順序網(wǎng)絡地址.in-addr.arpa ,上例中,域所在的子網(wǎng)為192.168.0.0/24,故完整的反向解析域名為:0.168.192.in-addr.arpa 區(qū)域文件
一個區(qū)域內(nèi)的所有數(shù)據(jù)(包括主機名,對應IP 地址、輔助服務器與主服務器刷新間隔和過期時間等)必須存放在DNS 服務器內(nèi),而用來存放這些數(shù)據(jù)的文件就稱為區(qū)域文件(區(qū)域數(shù)據(jù)文件使用“;” 符號注釋)。
DNS 服務器的區(qū)域數(shù)據(jù)文件一般存放在/var/named/chroot/var/named目錄下。
@取代在/etc/named.conf中指定的域名。
,正向區(qū)域文件
/var/named/chroot/var/named/example.com.zone文件的完整例子。
$TTL 38400 ; 生存期
example.com. IN SOA dns.example.com. root.example.com. (
2005090503 ; 序列號
3600 ; 刷新時間
300 ; 重試時間
604800 ; 過期時間
60 ; 宣布無此域名
)
example.com . IN NS dns.example.com.
example.com. IN MX 5 mail.example.com.
@ IN MX 10 pop.example.com.
dns IN A 192.168.0.20
www IN A 192.168.0.20
mail IN A 192.168.0.21
起始授權段放在每一個域文件的開頭,并且定義了一些最基礎的參數(shù)。
SOA 段中的數(shù)字,分別為:序列號、刷新、重試、過期、生存期
序列號:序列號用于DNS 數(shù)據(jù)庫文件的版本控制。每當數(shù)據(jù)被改變,這個序列號就應該被增加。
刷新:從服務器向主服務器查詢最新數(shù)據(jù)的間隔周期。每一次檢查時從服務器的數(shù)據(jù)是否需要更改,則根據(jù)序列號來判別。
重試:一旦從服務器嘗試連接主服務器失敗,下一次查詢主服務器的延遲時間。過期:如果從服務器無法連通主服務器,則在經(jīng)過此時間后,宣告其數(shù)據(jù)過期。生存期:服務器回答 ‘無此域名’ 的間隔時間。
數(shù)字的默認單位為秒。否則:W=周、D=日、H=小時、M=分鐘。
NS (name server):設置域名服務器的域名
例:example.com. IN NS dns.example.com.
MX (Mail eXchanger):設置郵件交換器資源記錄
例:example.com. IN MX 5 mail.example.com.
example.com. IN MX 10 smtp.example.com.
A (Address ):設置主機地址資源記錄
例:dns.example.com. IN A 192.168.0.20
CNAME (Canonical Name):設置別名記錄
例:smtp IN CNAME mail.example.com.
反向解析區(qū)域文件
反向解析區(qū)域文件的結(jié)構和格式與區(qū)域文件類似,只不過它的主要內(nèi)容是建立IP 地址映射到DNS 域名的指針PTR 資源記錄。
注意:在反向解析區(qū)域文件中必須包括SOA 初始授權記錄與NS 記錄。
在var/named/chroot/var/named/192.168.0.arpa 文件中定義反向解析區(qū)域。
$TTL 38400 ; 生存期
@ IN SOA dns.example.com. admin.example.com. (
2005090503 ; 序列號
3600 ; 刷新時間
300 ; 重試時間
604800 ; 過期時間
60 ; 宣布無此域名
)
@IN NS dns.example.com.
,20 IN
20IN
21IN PTR PTR PTR dns.example.com. www.example.com. mail.example.com.
BIND 語法檢查工具
在BIND 出錯時使用如下工具:
named-checkconf
默認檢查的配置文件是 /etc/named.conf
named-checkzone 域 Zone 文件名
檢查一個文件的配置
主要名稱服務器的測試
測試前的準備
啟動DNS 服務
/etc/rc.d/init.d/named start
配置/etc/resolv.conf
使用nslookup 程序測試
非交互式通常用于返回單塊數(shù)據(jù)的情況,其命令格式為:
nslookup [-選項] 需查詢的域名 [DNS服務器地址]
交互式通常用于返回多塊數(shù)據(jù)的情況,其命令格式為:
nslookup [- DNS服務器地址]
使用host 程序測試
host [ip/域名] [DNS服務器的IP]
實現(xiàn)負載均衡
D NS 負載均衡的優(yōu)點是經(jīng)濟簡單易行,它在DNS 服務器中為同一個域名配置多個IP 地址(即為一個主機名設置多條A 資源記錄),在應答DNS 查詢時,DNS 服務器對每個查詢將以DNS 文件中主機記錄的IP 地址按順序返回不同的解析結(jié)果,將客戶端的訪問引導到不同的計算機上去,使得不同的客戶端訪問不同的服務器,從而達到負載均衡的目的。
例如,在企業(yè)網(wǎng)中需要使用3臺內(nèi)容相同的FTP 服務器共同承擔客戶對FTP 的訪問,它們的IP 地址分別對應192.168.0.11、192.168.0.12和192.168.0.13?,F(xiàn)只要在DNS 服務器的區(qū)域文件中加入以下3條A 資源記錄,就可以實現(xiàn)3臺FTP 服務器網(wǎng)絡負載均衡功能。
ftp 0 IN A 192.168.0.11
ftp 0 IN A 192.168.0.12
ftp 0 IN A 192.168.0.13
實現(xiàn)直接解析域名
DNS 服務器默認只能解析完全規(guī)范域名FQDN ,不能直接將域解析成IP 地址。為了方便用戶訪問,可以在DNS 服務器的區(qū)域文件中加入下面一條特殊的A 資源記錄,以便支持實現(xiàn)直接解析域名功能。
example.com. IN A 192.168.0.20
或
@ IN A 192.168.0.20
實現(xiàn)泛域名的解析
泛域名是指一個域名下的所有主機和子域名都被解析到同一個IP 地址上 ??梢栽贒NS 服務器的區(qū)域文件末尾(域名從上到下解析)加入下面一條特殊的A 資源記錄(符號“*”是代表任何字符的通配符),以便支持實現(xiàn)泛域名解析功能。
,例
*.example.com. IN A 192.168.0.20
或
?IN A 192.168.0.20
實現(xiàn)連續(xù)域解析
在一個企業(yè)中,可能有上百臺計算機,如果要為每一個計算機分配一個域名,如果一條一條的添加到域文件中,則相當耗時。
實現(xiàn)連續(xù)域解析
正向解析
$GENERATE 1-200 host$ IN A 192.168.0.$
反向解析
$GENERATE 1-200 $ IN PTR host$.example.com.
配置輔助名稱服務器
輔助名稱服務器也可以向客戶機提供域名解析功能,但它的數(shù)據(jù)不是直接輸入的,而是從主要名稱服務器或其他的輔助名稱服務器中復制過來的,只是一份副本,所以輔助名稱服務器中的數(shù)據(jù)無法被修改。在一個區(qū)域中設置多臺輔助名稱服務器具有以下優(yōu)點。
提供容錯能力。當主要名稱服務器發(fā)生故障時,由輔助名稱服務器提供服務。
分擔主要名稱服務器的負擔。在DNS 客戶端較多的情況下,通過架設輔助名稱服務器完成對客戶端的查詢服務,可以有效地減輕主要名稱服務器的負擔。
加快查詢的速度。例如,一個公司在遠地有一個與總公司網(wǎng)絡相連的分公司網(wǎng)絡,這時可以在該處設置一臺輔助名稱服務器,讓該分公司的DNS 客戶端直接向此輔助名稱服務器進行查詢,而不需要通過速度較慢的廣域網(wǎng)向總公司的DNS 服務器查詢,減少用于DNS 查詢的外網(wǎng)通信量。
輔助名稱服務器的主配置文件是/etc/named.conf,也需要設置服務器的選項和根區(qū)域,方法與配置主要名稱服務器的方法相同。
zone "example.com" {
type slave;
file "slaves/example.com.zone";
masters { 192.168.0.20; };
};
type:設置輔助名稱服務器的類型
file:設置同步后的zone 文件存放位置
masters:指定主名稱服務器的地址。
緩存服務器
Cache-only 服務器是很特殊的DNS 服務器,它本身并不管理任何區(qū)域,但是DNS 客戶端仍然可以向它請求查詢。
Cache-only 服務器類似于代理服務器,它沒有自己的域名數(shù)據(jù)庫,而是將所有查詢轉(zhuǎn)發(fā)到其他DNS 服務器處理。
當Cache-only 服務器收到查詢結(jié)果后,除了返回給客戶機外,還會將結(jié)果保存在緩存中。當下一個DNS 客戶端再查詢相同的域名數(shù)據(jù)時,就可以從高速緩存里查出答案,加快DNS 客戶端的查詢速度。
配置緩存服務器
修改主配置文件/var/named/chroot/etc/named.conf 具體的代碼如下。
options {
,directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file /var/named/data/named_stats.txt";
forward only;
forwarders { 192.168.0.20;61.139.2.69; };
};
forward only:設置本DNS 服務器只作轉(zhuǎn)發(fā)
forwarders:定義將客戶機的查詢轉(zhuǎn)發(fā)到哪些DNS 服務器,可以為多個IP 地址。
ACL
BIND 支持Access Control Lists(訪問控制列表),ACL 可以使BIND 的訪問控制便于維護。例
acl query { 192.168.0.0/24;192.168.1.0/24; };
options {
directory “/var/named”; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt";
allow-query { query; };
allow-transfer { query; };
};
DNS 服務器配置文件
/etc/resolv.conf
DNS 解析
host IP/域名