DNS(Domain Name System)域名系統,在TCP/IP網路中有非常重要的地位,能夠提供域名與IP地址的解析服務.
DNS域名解析工作原理
<1> 客戶機提交域名解析請求,並將該請求發送給本地的域名伺服器.
<2> 當本地的域名伺服器收到請求后,就先查詢本地的緩存.如果有查詢的DNS信息記錄,則直接返回查詢的結果.如果沒有該記錄,本地域名伺服器就把請求發給根域名伺服器.
<3> 根域名伺服器再返回給本地域名伺服器一個所查詢域的頂級域名伺服器的地址.
<4> 本地伺服器再向返回的域名伺服器發送請求.
<5> 接收到該查詢請求的域名伺服器查詢其緩存和記錄,如果有相關信息則返回客戶機查詢結果,否則通知客戶機下級的域名伺服器的地址.
<6> 本地域名伺服器將查詢請求發送給返回的DNS伺服器.
<7> 域名伺服器返回本地伺服器查詢結果(如果該域名伺服器不包含查詢的
正向解析與反向解析
1)正向解析
正向解析是指域名到IP地址的解析過程.
2)反向解析
反向解析是從IP地址到域名的解析過程.反向解析的作用為伺服器的身份驗證.
DNS查詢類型
1.遞歸查詢: 簡單的理解就是以最終結果查詢,就是返回最終的結果給客戶機,而客戶機在此階段是處於等待的狀態!(就好比,你在家裡地位最高,你都是衣來伸手飯來張口的,最什麼事情就只要一句話不用自己親自動手)
資源記錄
為了將名字解析為IP地址,伺服器查詢它們的區(又叫DNS資料庫文件或簡單資料庫文件).區中包含組成相關DNS域資源信息的資源記錄(RR).例如,某些資源記錄把友好名字映射成IP地址,另一些則把IP地址映射到友好名字.
某些資源記錄不僅包括DNS域中伺服器的信息,還可以用於定義域,即指定每台伺服器授權了哪些域,這些資源記錄就是SOA和NS資源記錄.
1)SOA資源記錄
每個區在區的開始處都包含了一個起始授權記錄(Start of Authority Record)
2)NS資源記錄
名稱伺服器(NS)資源記錄表示該區的授權伺服器,它們表示SOA資源記錄中指定的該區的主和輔助伺服器,也表示了任何授權區的伺服器.每個區在區根處至少包含一個NS記錄.
用於指定一個區域的權威DNS伺服器,通過在NS資源記錄中列出伺服器的名字,其他主機就認為它是該區域的權威伺服器.這意味著在NS資源記錄中指定的任何伺服器都被其他伺服器當作權威的來源並且能應答區域內所含名稱的查詢.
NS資源記錄語法格式:
區域名 IN NS 完整主機名(FQDN)
3)A資源記錄
地址(
A資源記錄語法格式:
完整主機名(FQDN) IN A IP地址
4)PTR資源記錄
相對於A資源記錄,該記錄與A記錄相反,用於查詢IP地址與主機名的對應關係.
PTR資源記錄語法格式:
IP地址 IN PTR 主機名(FQDN)
5)CNAME
資源記錄6)MX資源記錄
郵件交換(MX)資源記錄為DNS域名指定郵件交換伺服器.郵件交換伺服器是為DNS域名處理或轉發郵件的主機.處理郵件指把郵件投遞到目的地或轉交另一不同類型的郵件傳送者.轉發郵件指把郵件發送到最終目的伺服器,用簡單郵件傳輸協議SMTP把郵件發送給離最終目的地最近的郵件交換伺服器,或使郵件經過一定時間的排隊.
MX資源記錄語法格式:
區域名 IN MX 優先順序(數字) 郵件伺服器名稱(FQDN)
type欄位指定區域的類型
type欄位指定區域的類型,對於區域的管理至關重要,一共分為六種:
Master:主DNS伺服器:擁有區域數據文件,並對此區域提供管理數據
Slave:輔助DNS伺服器:擁有主DNS伺服器的區域數據文件的副本,輔助DNS伺服器會從主DNS伺服器同步所有區域數據.
Stub:stub區域和slave
Forward:一個forward zone是每個域的配置轉發的主要部分.一個zone語句中的type forward可以包括一個forward和/或forwarders子句,它會在區域名稱給定的域中查詢.如果沒有forwarders語句或者forwarders是空表,那麼這個域就不會有轉發,消除了options語句中有關轉發的配置.
Hint:根域名伺服器的初始化組指定使用線索區域hint zone,當伺服器啟動時,它使用根線索來查找根域名伺服器,並找到最近的根域名伺服器列表.如果沒有指定class IN的線索區域,伺服器使用編譯時默認的根伺服器線索.不是IN的類別沒有內置的默認線索伺服器.
Delegation-only:用於強制區域的delegation .ly狀態.
應用案例
一 技術部所在域為“tech.org
”,部門內有三台主機,主機名分別是client1.tech.org,client2.tech.org,client3.tech.org.對應ip為192.168.10.1,192.168.10.2,192.168.10.3 現要求DNS伺服器(192.168.10.254) dns.tech.org可以解析3台主機名和IP地址的對應關係.確保yum能夠使用,然後安裝所需要的軟體包和主從域名伺服器的參考配置文件
yum install bind caching-nameserver
vim /etc/named.conf
options {
directory "/var/named" ;
};
zone "." IN { //設置根區域
type hint ; //設置區域類型(hint表示根域,master表示主域,
//slave
表示從域};
zone "tech.org" IN { //設置正向DNS區域名稱
type master ;
file "tech.org.zone" ; //設置正向區域地址資料庫文件
allow-transfer { 192.168.10.253 ; } ; //設置允許下載區域資料庫的從域名伺服器
};
zone "10.168.192.in-addr.arpa" IN { //設置反向DNS區域
type master ;
file "192.168.10.zone" ; //設置對應的反向區域地址資料庫文件
allow-transfer { 192.168.10.253; }
};
vim /var/named/tech.org.zone
$TTL 86400
@ IN
NS dns.tech.org.client3 IN A 192.168.10.3
vim /var/named/192.168.10.zone
@ IN SOA dns.tech.org. root.tech.org. (
2009070900
1H
1W
1D
)
@ IN NS dns.tech.org.
254 IN PTR dns.tech.org.
1 IN PTR client1.tech.org.
2 IN PTR client2.tech.org.
3 IN PTR client3.tech.org.
配置完成後重啟服務,使用nslookup client1.tech.org 測試是否能夠正向解析
nslookup 192.168.10.1 測試是否能夠反向解析
二 構建從域名伺服器
從域名伺服器作為主伺服器的冗餘備份,可以與主域名伺服器一起,同時提供本域內主機名與ip地址的解析,從域名伺服器的地址資料庫文件需要從主域名伺服器中定期更新.
從域名伺服器的ip為192.168.10.253 主機名為dns2.tech.org
客戶端將DNS指向192.168.10.254 192.168.10.253 當主域名伺服器中斷服務時,由從域名伺服器繼續處理客戶端的DNS請求
配置過程:
vim /etc/named.conf
options {
directory "/var/named" ;
};
zone "tech.org" IN { //設置正向DNS區域名稱
type slave; //使用slave輔助的區域類型
masters { 192.168.10.254; }; //指向主伺服器的ip
file "slaves/tech.org.zone" ; //
};
zone "10.168.192.in-addr.arpa" IN {
type slave;
master { 192.168.10.254; };
file "slaves/192.168.10.zone" ;
};
測試,讓客戶端的DNS指向從域名伺服器,可以解析主域名伺服器的記錄
三 授權子域或稱子域委派
當DNS區域層次較多時,域名數量巨大時,就可以使用子域授權,將某一個子域的各域名解析工作交給另外一台伺服器來完成.
配置過程:
主域名伺服器上的配置文件/etc/named.conf保持不變
vim /var/named/tech.org.zone //解析庫文件增加子域記錄
IN NS dns2.zyp.com. //子域域名伺服器記錄
bj IN A 192.168.0.23 //子域名主機記錄
配置子域的主配置文件
vim /etc/named.conf
option { directory "/var/named"; };
zone “bj.tech.org" IN
type master;
file bj.tech.org.zone";}
zone "tech.org" IN
type forward;
fordwarders { 192.168.0.254; }; //轉發主域名伺服器的請求
vim /var/named/bj.tech.org.zone
@ IN NS ns2.zyp.com.
dns2 IN A 192.168.10.252
www IN A 192.168.0.252
配置完成後可以解析www.bj.tech.org
也可以解析dns.tech.orgserver named configtest 測試dns文件
四、構建分離解析的域名伺服器
分離解析的域名伺服器實際上還是主域名伺服器,這裡所說的分離解析主要針對不同的客戶端提供不同的解析記錄,如當dns同時為internet和內網提供服務時,可能需要內網用戶訪問公司的web服務和mail服務直接發往位於內網的web和mail伺服器上,減輕伺服器地址轉換的負擔
域名伺服器架設在網關伺服器上,伺服器有二塊網卡一個地址為公網地址173.0.0.1 一個為私網地址192.168.10.254
負責域名為tech.org,當公網用戶訪問時直接解析為173.0.0.1 當內網用戶訪問時直接解析為web伺服器192.168.0.5地址和mail伺服器192.168.0.6的地址
配置過程:
vim /etc/named.conf
options { directory "/var/named";};
view "LAN" {
match-clients { 192.168.10.0/24; };
zone "tech.org" IN {
type master;
file "tech.org.zone.lan";};
}
view "WAN" {
match-clients { any; };
zone "tech.org" IN {
type master;
file "tech.org.wan";};
};
vim /var/named/tech.org.lan
$TTL 36400
@ IN SOA tech.org. root.tech.org (
2011012801
1H
10M
7D
1D)
IN NS dns.tech.org.
IN MX 10 mail.tech.org.
ns
IN A 192.168.10.254www IN A 192.168.10.5
mail IN A 192.168.10.6
vim /var/named/tech.org.wan
$TTL 36400
@ IN SOA tech.org root.tech.org.(
2011012801
1H
10M
7D
1D)
IN NS dns.tech.org.
IN MX 10 mail.tech.org.
ns IN A 173.0.0.1
www IN A 173.0.0.1
mail IN A 173.0.0.1
配置完成後重啟服務,當公網公網用戶訪問web和mai伺服器時,解析為173.0.0.1
當內網用戶訪問web或者mail時解析為實際的伺服器地址
本文出自 「linuxlover」 博客,請務必保留此出處http://linuxlover.blog.51cto.com/1318618/500957
[火星人 ] DNS服務-詳解已經有780次圍觀