DNS服務器簡單配置和view實現

簡介:

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;};

              zone "babyshen.com" in {

                        type master;

                        file "zone.babyshen.com.internal";

                        allow-update{none;};

              };

};


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 etc]# cd /var/named

[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

$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           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

zone babyshen.com/IN: loaded serial 2016121201

OK


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。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章