簡介:
DNS伺服器的作用就是就好比生活中的電話簿、114查号台一樣,為各種網絡程式找到對應目标主機的IP位址或對應的主機域名。
DNS系統的作用:
正向解析:根據主機名稱(域名)查找對應的IP位址(實際應用中最多的)
反向解析:根據IP位址查找對應的主機域名(不常用,一般用于搭建郵件伺服器時。)
根據伺服器與所提供域名解析記錄的關系,将DNS伺服器分為不同的角色:
緩存域名伺服器
也稱為 唯高速緩存伺服器
通過向其他域名伺服器查詢獲得域名->IP位址記錄
将域名查詢結果緩存到本地,提高重複查詢時的速度
主域名伺服器
特定DNS區域的官方伺服器,具有唯一性
負責維護該區域内所有域名->IP位址的映射記錄
從域名伺服器(通俗一點就是用于備份DNS伺服器的)
也稱為 輔助域名伺服器
其維護的 域名->IP位址記錄 來源于主域名伺服器
搭建DNS服務應用的軟體為:BIND(Berkeley Internet Name Daemon)
官方站點:https://www.isc.org/
相關軟體包:
bind-9.3.3-7.el5.i386.rpm
bind-utils-9.3.3-7.el5.i386.rpm
bind-chroot-9.3.3-7.el5.i386.rpm
caching-nameserver-9.3.3-7.el5.i386.rpm
cache-nameserver軟體包實際上隻是提供了一些配置樣例檔案,對于熟悉BIND配置檔案的系統管理者來說,也可以不用安裝該軟體包
bind,提供了域名服務的主要程式及相關檔案
bind-utils,提供了對DNS伺服器的測試工具程式(如nslookup、dig等)
bind-chroot,為bind提供一個僞裝的根目錄以增強安全性(将“/var/named/chroot/”檔案夾作為BIND的根目錄)
caching-nameserver,為配置BIND作為緩存域名伺服器提供必要的預設配置檔案,這些檔案在配置主、從域名伺服器時也可以作為參考
named作為标準的系統服務腳本,通過”service named start/stop/restart“的形式可以實作對伺服器程式的控制
named預設監聽TCP、UDP協定的53端口,以及TCP的953端口:
其中UDP 53端口一般對所有客戶機開放,以提供解析服務;
TCP 53端口一般隻對特定從域名伺服器開放,提高解析記錄傳輸通道;TCP 953端口預設隻對本機(127.0.0.1)開放,用于為rndc遠端管理工具提供控制通道
如果沒有安裝bind-chroot軟體包,則主配置檔案預設位于 /etc/named.conf,資料檔案預設儲存在 /var/named/ 目錄
1、安裝軟體包
[root@centos etc]# yum -y install bind
2、修改相關目錄權限
安裝完BIND以後,BIND的主配置檔案通常是儲存在兩個位置:
/etc/named.conf -BIND服務主配置檔案
/var/named/ -域的zone配置檔案
[root@centos etc]# cd /var/named
[root@centos named]# chown -R named:named /var/named/
[root@centos named]# chmod -R 664 /var/named/
[root@centos named]# chmod 775 /var/named
[root@centos named]#chmod +x /var/named/data /var/named/dynamic /var/named/slaves
或者直接暴力 chmod -R 770 /var/named/
[root@centos named]# chown root:named /etc/named.conf
3、修改/etc/named.conf
[root@centos etc]# cat /etc/named.conf
options {
listen-on {192.168.183.128;}; # 監聽位址
listen-on {172.20.33.33;}; # 監聽位址
allow-transfer {"none";};
recursion yes; # DNS是否可遞歸
allow-query {any;}; # 允許所有位址
max-cache-ttl 900;
directory "/var/named";
pid-file "/var/named/named.pid";
dump-file "/var/named/named_dump.db";
statistics-file "/var/named/named.status";
forward only;
forwarders { 180.76.76.76 ; }; # 轉發位址
query-source address 172.20.33.33; # 轉發請求源位址
};
acl external_ip {
172.20.32.0/22; # 定義外網位址段
view "external" { # 定義外網IP的區域檔案,這裡注意view的時候所有的zone都要寫在view區域裡面
match-clients {external_ip;};
zone "babyshen.com" in {
type master; # 指定我們要配置的是域主DNS伺服器
file "zone.babyshen.com.external"; # 指定域的zone檔案名
allow-update{none;};
};
acl internal_ip {
192.168.183.0/24; # 定義内網位址
view "internal" { # 定義内網IP的區域檔案,這裡注意view的時候所有的zone都要寫在view區域裡面
match-clients {internal_ip;};
type master;
file "zone.babyshen.com.internal";
view "default" { # 預設的,比對不到以上執行這個
match-clients {any;};
allow-query {any; };
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
4、建立zone.babyshen.com.external和zone.babyshen.com.internal檔案
[root@centos named]# cat zone.babyshen.com.external
$TTL 60
@ IN SOA babyshen.com admin.babyshen.com. (
2016121201 ; serial
86400 ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns1
ns1 IN A 172.20.33.33
@ IN A 172.20.33.33
www IN A 172.20.33.33
* IN A 172.20.33.33
[root@centos named]# cat zone.babyshen.com.internal
ns1 IN A 192.168.183.128
@ IN A 192.168.183.128
www IN A 192.168.183.128
* IN A 192.168.183.128
5、檢查檔案是否有文法錯誤
1)檢查主配置檔案是否有錯誤
[root@centos named]# named-checkconf /etc/named.conf
2)檢查區域檔案是否有錯誤
[root@centos named]# named-checkzone babyshen.com zone.babyshen.com.external
zone babyshen.com/IN: loaded serial 2016121201
OK
[root@centos named]# named-checkzone babyshen.com zone.babyshen.com.external
6、可以實作
1)當用192.168.183.0/24這個段去解析www.babyshen.com的時候,解析位址為192.168.183.128
2)當用172.20.32.0/22這個段去解析www.babyshen.com的時候,解析位址為172.20.33.33
3)當解析其他域名的時候(不在view裡面的域名,即babyshen.com以外的域名),轉發給180.76.76.76解析
即完成了DNS的簡單部署,實作了DNS轉發和view的實作
記錄類型
1.A記錄:A記錄是來指定與主機名對應的IP位址記錄,通俗的來說A記錄就是伺服器的IP位址,域名綁定A記錄就是告訴DNS伺服器,當你輸入域名時引導你去正确的對應伺服器。A記錄就是域名的IP位址。
2.NS記錄:NS記錄為域名伺服器記錄,用來指定該域名由哪個DNS伺服器來進行解析,注冊域名後,會有一個預設的DNS伺服器,每個注冊的域名都是由一個DNS域名伺服器來進行解析,一般NS記錄出現的形式說,ns1.domain.xx.. ns2.domain.xx等等。NS記錄就是指定由哪個DNS伺服器來進行你的域名解析。
3.MX記錄:MX記錄為郵件互動記錄,它指向一個郵件伺服器,在使用mail系統時,發件人根據收件人位址的字尾來定位mail server。例如我們要發郵件給[email protected],我的郵件系統通過DNS查找到basbyshen.com這個域名,繼而查找到的MX記錄,如果MX記錄存在,我的計算機就将郵件發送到MX記錄所指定的郵件伺服器。
4.CNAME記錄:CNAME記錄為别名記錄,允許多個名字映射到一台伺服器上,通常用于提供多個服務。例如我有一台計算機域名為host.babyshen.com,需要同時提供mail服務和www服務。則全稱為www.babyshen.com,和mail.babyshen.com。實際上這兩個域名指向的都是host.babyshen.com。
5.TXT記錄:TXT記錄一般用于某個主機名或者域名的記錄,IN TXT “location:””21vianet DAXING ROOM”這段應該是說明我們這台主機的存放位置的相關資訊。TXT記錄還有拓展的應用有SPF記錄。SPF記錄一般用于反垃圾遊戲,MX記錄作用是向發信人指明某個域名的郵件伺服器有哪些。SPF記錄則正好相反,SPF記錄向收信者表明,哪些郵件伺服器是經過某個域名的認可發郵件的。主要針對僞造域名的垃圾郵件。例如我的郵件伺服器收到郵件是來自[email protected]的郵件,那這份郵件到底是不是babyshen.com發送過來的。我們可以查詢babyshen.com的SPF記錄,防止别人僞造域名來發郵件。
6.TTL:簡單的說TTL值就是一條域名解析記錄在DNS伺服器裡的存留時間,當DNS伺服器接收到解析請求時,會向域名指定的NS伺服器發出解析請求從來獲得解析記錄,獲得這條記錄後,記錄會在DNS伺服器中保留一段時間這段時間DNS伺服器不再向NS伺服器送出請求,收到解析請求後直接傳回。這個記錄在DNS伺服器上儲存的時間就是TTL值。一般增大TTL值,可以節約域名解析時間,通路網站會加速。
7.PTR值:反向解析的記錄類型,可以看出是A記錄的反向。PTR主要用于郵件伺服器,比如[email protected]給[email protected]發郵件,郵件伺服器收郵件時會檢視頭檔案,并分析是由哪個IP位址發出來的。然後根據這個IP位址進行反解,如果解析的結果和IP位址相對應就接受這封郵件,不對應就拒絕。
8.泛域名以及泛解析:泛域名是指在一個域名的根下,所有以同樣形式未建立的子域名。例如*.babyshen.com。
泛解析是指把*.babyshen.com的A記錄解析到某個IP位址上,通過通路任意的babyshen.com都能通路到你解析的站點上去。
9.SOA記錄:初始授權記錄,SOA記錄表明了DNS伺服器之間的聯系,SOA記錄表明了誰是這個域的所有者。一般用于主從伺服器。
<1>Serial:表示目前DNS資料庫的版本号,供從伺服器判斷是否需要從主伺服器上擷取新資料。
<2>Refresh:設定SDNS多長時間與MDNS連接配接一次。
<3>Retry:當SDNS向MDNS試圖擷取serial時候,如果MDNS無響應,多長時間重新檢查。
<4>Expire:數值決定SDNS在沒有MDNS權威的提供下解析域名的時間長短。
<5>Minimum:一些沒有生存周期的解析記錄的生存時間。
<6>Notify:可設定MDNS更新時都會主動通知SDNS。
本文轉自 baby神 51CTO部落格,原文連結:http://blog.51cto.com/babyshen/1881989,如需轉載請自行聯系原作者