概述:
任何主機要想在網絡上通信都要借助IP位址來實作,IP位址是以數字的形式出現,如:202.202.96.39,但是人們使用網絡時難于記憶這樣的數字,這給網絡的發展帶來了不便,後來人們想出了一個辦法:用具有實際意義的名字來代替IP位址,這就與網絡通信相沖突了?必須要設計出一種能在名字與IP位址互相轉換的機制,DNS(域名解析系統)就是在這樣的一個需求環境下出現的。當我們在浏覽器位址欄裡輸入
www.wudionline.com時,它會主動查詢DNS伺服器索要www.wudionline.com的IP位址,然後根據傳回的IP位址找尋找相應的網頁,再把浏覽結果回傳給用戶端浏覽器。
DNS(Domain Name System)域名系統将主機名解析成IP位址使用了一個層次結構的分布式資料庫系統,資料庫層次性允許将域名空間劃分成獨立的管理區域,這樣各域名伺服器可以實作獨立的管理,它是以點分的形式出現,通常劃分時按照位址域和通用域劃分,如:cn代表中國、tw代表台灣、hk代表香港、com代表商業機構、edu代表教育機構、org代表非利組織等,完整的域名像一模倒挂的樹,由點來分隔,最右邊代表根域(實際上當點出現在最右邊時常常省略掉),從後面起第一個區域名叫頂級域、第二個區域名叫二級域...,協定後第一個名稱叫主機名。如
www.wudionline.com www是主機名,wudionline叫二級域、com叫頂級域
工作原理:
1、用戶端提出請求并将請求發送給本地域名伺服器
2、本地域名伺服器收到請求後,先查詢本地緩存是否有用戶端請求的記錄位址,如果有就直接把查詢結果傳回給用戶端
3、如果本地緩存沒有相應的記錄,則本地伺服器直接把請求發送給根域名伺服器
4、根域名伺服器根據查詢的記錄傳回一個所查詢域(子域)的IP位址,直到查詢到該域伺服器
5、該域伺服器根據請求的主機名傳回該主機對應的IP位址
6、本地域名伺服器收到傳回的IP位址後将其存入本地緩存中,備下次使用不用再重複上述過程
7、把結果傳回給用戶端
常用的域名伺服器軟體為BIND(Berkeley Internet Name Domain),一般分為三種類型的伺服器:唯緩沖伺服器(caching-forward)、主域名伺服器(server)、輔助域名伺服器(second server)
唯緩存伺服器:唯緩存伺服器有一塊緩存空間用來緩存DNS的對應記錄,當接收到請後先是檢視自己的緩存空間是否有對應的記錄,如果有就直接傳回,如果沒有就轉發到指定的伺服器查詢,自己就相當于一台DNS用戶端,每次都将查詢的結果保留一份到緩存空間裡,以便下次不用再重複查詢,适當設定唯緩存伺服器可以減少網絡的負擔和提高通路速度(唯緩存伺服器不具有權威性)
主域名伺服器:主域名伺服器負責查詢本區域域名解析服務(它是最權威的伺服器)
輔助域名伺服器:輔助域名伺服器負責本區域主域伺服器的備份工作,當主域名伺服器遇到故障時輔助伺服器可以代替主域伺服器工作
NDS在Linux下的守護程序名稱叫named,它開放tcp、udp53端口,如果開啟了防火牆就要允許tcp、udp53端口,開啟端口方法:
iptables -A FORWARD --dport 53 -j ACCEPT
安裝DNS的封包件:
bind-9.3.3-7.el5 主程式檔案
ypbind-1.19-7.el5
bind-libs-9.3.3-7.el5
bind-chroot-9.3.3-7.el5 牢籠程式,可以把BIND限制在籠子裡,加強安全
bind-utils-9.3.3-7.el5 所需的單元檔案
bind-sdb-9.3.3-7.el5
caching-nameserver-9.3.3-7.el5
安裝好後所涉及的檔案:
主程式檔案/etc/rc.d/init.d/named
named.conf主配置檔案
named.caching-nameserver.conf
named.ca指明根域名伺服器IP位址
named.local回送檔案
啟動named:
1、service named start
2、/etc/rc.d/init.d/named start
檢視是否啟動成功:
1、service named status 檢視運作狀态
2、netstat -anp |grep named 檢視開啟端口号
開機自動啟動:
chkconfig --level 345 named on 如果要取消開機自啟動把on改成off即可
ntsysv
配置檔案:
配置檔案存放在/etc目錄下,如果安裝了牢籠(chroot)的支援,配置檔案放在/var/named/chroot/etc目錄下,區域檔案(區域資料庫)存放
在/var/named/chroot/var/named目錄下,注意:named配置檔案權限需要加入named組才能正确運作.為友善我們可以直接複制、修改原來配置檔案,不要忘記權限啊:).
cp -p /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf
打開配置檔案:
cd /var/named/chroot/etc
vi named.conf
options {
listen-on port 53 { any; }; 監聽端口
listen-on-v6 port 53 { ::1; }; 在IP_V6上監聽的端口号
directory "/var/named"; 對應的目錄
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
query-source port 53; 在ip_V4上查詢端口
query-source-v6 port 53; 在ip_V6上查詢端口
allow-query { 192.168.2.0/24; }; 允許查詢的用戶端,一般企業内部用時,為提高安全性通常指定允許範圍
version "unsupported on this platform"; 指明DNS版本号,最好别讓有心之人知道具體版本号,為提高安全性
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
view localhost_resolver {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
# include "/etc/named.rfc1912.zones"; 這個行本來是有,可以注釋掉,加入根域就夠了
zone "." { 指明是根域
type hint;
file "named.ca"; 根域檔案名
zone "wudionline.com" IN { 正向解析檔案
type master; 區域資料庫檔案類型
file "wudionline.com.zone"; 區域資料庫檔案名
allow-update {none;}; 是否允許更新
zone "2.168.192.in-addr.arpa" IN { 反向解析檔案,.in-addr.arpa不要寫錯啊
type master; 類型
file "192.168.2.zone"; 區域資料庫檔案名
這個是主配置檔案,還有兩個區域資料庫檔案,正向區域檔案名:wudionline.com.zone,反向區域解析檔案名:192.168.2.zone
vi /var/named/chroot/var/named/192.168.2.zone
$TTL 86400
@ IN SOA localhost. root.localhost. (
2009053100 ; 同步号
28800 ; 重新整理時間
14400 ; 重試時間
3600000 ; 過期時間
86400 ) ; 最小生存時間
IN NS www.wudionline.com.
12 IN PTR wudionline.com.
12 IN PTR www.wudionline.com.
12 IN PTR ftp.wudionline.com.
12 IN PTR mail.wudionline.com.
解釋:
$TTL 後面跟記錄生存時間,是秒為機關
@ IN SOA localhost. root.localhost.
@ 相當于本域名
IN定義記錄類型,記錄類型可以有SOA、PTR、A、MX,SOA是起始授權記錄,PTR是反向域名解析、A是正向域名解析、MX是郵件交換記錄
SOA 起始授權記錄,任何區域都需要SOA記錄,且一般列在第一個資源記錄
localhost.是本機完全合格域名,不要忘記後面有個點
root.localhost是管理區域資料檔案的管理郵箱位址,為防止與前面的@混淆,特地把@定義成.(點)
2009053100 ; 同步号,同步主、輔助域名伺服器的編号,輔助伺服器根據編号來确認是否要更新區域資料庫内容
28800 ; 重新整理時間,每隔2880秒同步一次
14400 ; 重試時間,如果同步失敗,則經過14400秒再重試一次
3600000 ; 過期時間,當第一次重試失敗後3600000秒,如果仍無法同步主域伺服器,則放棄
86400 ) ; 最小生存時間,記錄生存時間
IN NS www.wudionline.com. 說明本區域由www.wudionline.com這台伺服器負責,後面有點号
12 IN PTR wudionline.com. 反向解析位址,指明IP位址為192.168.2.12對應的域名是wudionline.com,注意後面的點号
vi /var/named/chroot/var/named/wudionline.com.zone
@ IN SOA localhost root (
IN NS localhost
wudionline.com. IN A 192.168.2.12
www (也可以寫成www.wudionline.com.) IN A 192.168.2.12
ftp IN A 192.168.2.12
wudionline.com. IN MX 5 mail.wudionline.com
mail IN A 192.168.2.12
同上,IN A記錄說明是正向解析
wudionline.com. IN A 192.168.2.12,這句說明wudionline.com對應的IP位址是192.168.2.12,當用完全合格域名是請不要忘記域
名後面跟一個點号
www IN A 192.168.2.12當簡化域化域名時隻寫主機名,後面不加點号
還有一種類型:IN CNAME 它是定義别名的寫法,格式如下:
别名 IN CNAME 完全合格域名(或主機名)
MX郵件記錄:
區域名 IN MX 郵件記錄優先級 郵件伺服器的完全合格域名
測試:
測試區域檔案的正确性:named-checkzone
測試配置檔案的正确性:named-checkconf
如果沒有問題的話會顯示“OK“字樣
把DNB設定為自己的DNS伺服器位址
vi /etc/resolv.com
nameserver 192.168.2.12 192.168.2.12是DNS伺服器的IP位址
host www.wudionline.com
host ftp.wudionline.com
host -t mx wudionline.com
host 192.168.2.12
nslookup www.wudionline.com
nslookup ftp.wudionline.com
nslookup
set t=mx
wudionline.com
下一篇将介紹執行個體操作