1. 程式人生 > >DNS服務的配置

DNS服務的配置

DNS伺服器

  1. DNS伺服器概念
    在網際網路上通訊需要藉助於IP地址,但人類對於數字的記憶能力遠不如文字,那麼將IP地址轉換成容易記憶的文字是個好辦法,可是計算機只能識別0、1程式碼,這時就需要一種機制來解決IP地址與主機名的轉換問題
    DNS全稱為Domain Name System,即域名系統,其作用就是將我們經常使用的“網址”解析為IP地址
  2. DNS相關概念
    DNS利用樹形目錄結構,將主機名的管理分配給不同的層級,這樣可以實現更加快速的完成主機名的查詢,修改主機名解析時也更加方便

域:
TLD:Top Level Domain (頂級域名)
組織域:.com, .org, .net, .edu,.gov,.mil,.cc,…
國家域:.cn, .us, .tw, .iq,…
反向域: .in-addr-arpa
在這裡插入圖片描述

FQDN:
FQDN全稱為Fully Qualified Domain Name,即完全合格域名
FQDN由兩個部分組成:主機名和域名。因為DNS是逐級管理的 ,所以在不同的層級中主機名與域名也是不同
的;以www.google.com為例,在第二層中,.com就是域名,google就是主機名,而到了第三層
中,.google.com就成了域名,www就成了主機名
正向解析:
從FQDN轉換為IP地址稱為正向解析
反向解析:
從IP地址轉換為FQDN稱為反向解析
區域:
正向解析或反向解析中,每個域的記錄就是一個區域

  1. DNS伺服器解析
    DNS的主要作用是進行主機名的解析
    解析:根據使用者提供一種名稱,去查詢解析庫,以得到另一種名稱。 域名—>IP,IP—>域名
    資源記錄:rr(resource record)
    有型別的概念;用於此記錄解析的屬性
    SOA記錄:起始授權記錄,一個區域檔案只能有一個
    A記錄:用來指定主機名(或域名)對應的IP地址記錄。(AAAA ipv6)
    CNAME記錄:別名解析(域名)
    NS記錄:域名伺服器記錄,用來指定該域名由哪個DNS伺服器來進行解析。
    MX記錄:郵件交換記錄,指向郵件伺服器
    PTR記錄:反向DNS記錄,A記錄的反向
    TTL值:生存時間,DNS記錄在DNS伺服器上快取時間

  2. DNS伺服器原理
    DNS採用兩種查詢機制:遞迴和迭代
    客戶端向DNS伺服器發起查詢請求,DNS伺服器搜尋本地解析庫沒有結果,於是向根域發起查詢請求,根域告訴DNS伺服器.com伺服器上有它需要的資源,DNS伺服器又向.com伺服器發起查詢請求,結果被告知.google.com伺服器上有它想要的結果,最後終於在.google.com伺服器上找到了解析記錄,並返回給了客
    戶端。
    在上面的查詢過程中,客戶端只發起了一次請求,並得到了最後的結果,這種查詢方式被稱為遞迴 而DNS伺服器在查詢過程中不停的發起請求,直到找到想要的結果,這種查詢方式被稱為迭代

  3. DNS查詢順序
    本地hosts檔案
    本地DNS快取
    本地DNS伺服器
    發起迭代查詢

  4. DNS伺服器埠
    TCP UDP 53

  5. DNS伺服器型別
    主DNS伺服器:為客戶端提供域名解析的主要區域,主DNS伺服器宕機,會啟用從DNS伺服器提供服務
    從DNS伺服器 :主伺服器DNS長期無應答,從伺服器也會停止提供服務
    主從區域之間的同步採用週期性檢查+通知的機制,從伺服器週期性的檢查主伺服器上的記錄情況,一旦發現修改就會同步,另外主伺服器上如果有資料被修改了,會立即通知從伺服器更新記錄
    快取伺服器:伺服器本身不提供解析區域,只提供非權威應答
    轉發伺服器:當DNS伺服器的解析區域(包括快取)中無法為當前的請求提供權威應答時,將請求轉發至其它的DNS伺服器,此時本地DNS伺服器就是轉發伺服器

DNS伺服器的搭建

關閉防火牆&Selinux

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl disable firewalld
[[email protected] ~]# setenforce 0
setenforce: SELinux is disabled
[[email protected] ~]# getenforce
Disabled

安裝DNS伺服器軟體

[[email protected] ~]# yum -y install bind-chroot
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package bind-chroot.x86_64 32:9.9.4-50.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================
 Package             Arch           Version                 Repository        Size
===================================================================================
Installing:
 bind-chroot         x86_64         32:9.9.4-50.el7         c7-media          86 k

Transaction Summary
===================================================================================
Install  1 Package

Total download size: 86 k
Installed size: 3.3 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 32:bind-chroot-9.9.4-50.el7.x86_64                              1/1 
  Verifying  : 32:bind-chroot-9.9.4-50.el7.x86_64                              1/1 

Installed:
  bind-chroot.x86_64 32:9.9.4-50.el7                                               

Complete!

修改主配置檔案

#主配置檔案/etc/named.conf

vi /etc/named.conf
listen-on port 53 { any; }; #伺服器上的所有IP地址均可提供DNS域名解析服務
allow-query { any; }; #允許所有人對本伺服器傳送DNS查詢請求
named-checkconf 命令檢測語法

修改區域配置檔案

#用來儲存域名和IP地址對應關係的所在位置,在這個檔案中,定義了域名與IP地址解析規則儲存的檔案位置以及服務型別等內容,而沒有包含具體的域名、IP地址對應關係等資訊。服務型別有三種,分別為hint(根區域)、master(主區域)、slave(輔助區域),其中常用的master和slave指的就是主伺服器和從伺服器

[[email protected] ~]# vi /etc/named.rfc1912.zones 
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package 
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
// 
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//


zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "0.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
};

zone "bk.com" IN {
        type master;			#服務型別
        file "bk.com.zone";			#域名與IP地址解析規則儲存檔案
        allow-update { 192.168.130.200; };			#允許哪些客戶機動態更新解析資訊
        also-notify { 192.168.130.200; };
};			#正向解析引數

zone "130.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.130.arpa";
};			#反向解析引數

正向解析

修改區域配置檔案,可在原有的基礎上進行修改,也可清空,保留只用的資訊

zone "bk.com" IN {
        type master;
        file "bk.com.zone";
        allow-update { 192.168.130.200;192.168.130.132; };
        also-notify { 192.168.130.200;192.168.130.132; };
};

編輯資料配置檔案。從/var/named目錄中複製一份正向解析的模板檔案(named.localhost),然後把域名和IP地址的對應資料填寫資料配置檔案中並儲存。在複製時記得加上-a引數,這可以保留原始檔案的所有者、所屬組、許可權屬性等資訊

[[email protected] ~]# cd /var/named
[[email protected] named]# cp -a named.localhost bk.com.zone 
cp: overwrite ‘bk.com.zone’? y
[[email protected] named]# vi bk.com.zone
  1 $TTL 1D
  2 @       IN SOA  bk.com. root.bk.com. (
  3                                         0       ; serial
  4                                         1D      ; refresh
  5                                         1H      ; retry
  6                                         1W      ; expire
  7                                         3H )    ; minimum
  8 @               NS      ns.c74.com.
  9 ns      IN      A       192.168.130.128
 10         IN      MX 10   mail.c74.com.
 11 mail    IN      A       192.168.130.128
 12 www     IN      A       192.168.130.128
 13 news    IN      A       192.168.130.200

啟動服務及測試

[[email protected] named]# systemctl restart named
[[email protected] named]# yum install -y bind-utils			#bind-utils為客戶端 測試dns使用
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package bind-utils.x86_64 32:9.9.4-50.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================
 Package             Arch            Version                     Repository   Size
===================================================================================
Installing:
 bind-utils          x86_64          32:9.9.4-50.el7             c7          203 k

Transaction Summary
===================================================================================
Install  1 Package

Total download size: 203 k
Installed size: 435 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 32:bind-utils-9.9.4-50.el7.x86_64                               1/1 
  Verifying  : 32:bind-utils-9.9.4-50.el7.x86_64                               1/1 

Installed:
  bind-utils.x86_64 32:9.9.4-50.el7                                                

Complete!
[[email protected] named]# nslookup 
> www.bk.com
Server:         192.168.130.128
Address:        192.168.130.128#53

Name:   www.bk.com
Address: 192.168.130.128
> ns.bk.com                
Server:         192.168.130.128
Address:        192.168.130.128#53

Name:   ns.bk.com
Address: 192.168.130.128
> mail.bk.com
Server:         192.168.130.128
Address:        192.168.130.128#53

Name:   mail.bk.com
Address: 192.168.130.128

反向解析

#反向解析的作用是將使用者提交的IP地址解析為對應的域名資訊,它一般用於對某個IP地址上繫結的所有域名進行整體遮蔽,遮蔽由某些域名傳送的垃圾郵件

修改區域配置檔案


[[email protected] ~]# vi /etc/named.rfc1912.zones
zone "130.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.130.arpa";
};

編輯配置檔案

[[email protected] ~]# cd /var/named
[[email protected] named]# cp -a named.loopback 192.168.130.arpa
  1 $TTL 1D
  2 @       IN SOA  bk.com. root.bk.com. (
  3                                         0       ; serial
  4                                         1D      ; refresh
  5                                         1H      ; retry
  6                                         1W      ; expire
  7                                         3H )    ; minimum
  8         IN      NS      ns.bk.com.
  9 128     IN      PTR     www.bk.com.
 10 200     IN      PTR     news.bk.com.
 11 128     IN      PTR     ftp.bk.com.

啟動服務及測試

[[email protected] ~]# systemctl restart named
[[email protected] ~]# nslookup               
> 192.168.130.128      
Server:         192.168.130.128
Address:        192.168.130.128#53

128.130.168.192.in-addr.arpa    name = ftp.bk.com.
128.130.168.192.in-addr.arpa    name = www.bk.com.
128.130.168.192.in-addr.arpa    name = mail.bk.com.
> 192.168.130.200
Server:         192.168.130.128
Address:        192.168.130.128#53

200.130.168.192.in-addr.arpa    name = news.bk.com.

DNS高階之主從服務

#在DNS域名解析服務中,從伺服器可以從主伺服器上獲取指定的區域資料檔案,從而起到備份解析記錄與負載均衡的作用,因此通過部署從伺服器可以減輕主伺服器的負載壓力,還可以提升使用者的查詢效率。
#其中主伺服器為192.168.130.128,從伺服器為192.168.130.200,及192.168.130.132

修改主伺服器的區域配置檔案

#在主伺服器的區域配置檔案中允許該從伺服器的更新請求,即修改allow-update {允許更新區域資訊的主機地址;};引數,然後重啟主伺服器的DNS服務程式

[[email protected] ~]# vi /etc/named.rfc1912.zones 
  1 // named.rfc1912.zones:
  2 //
  3 // Provided by Red Hat caching-nameserver package
  4 //
  5 // ISC BIND named zone configuration for zones recommended by
  6 // RFC 1912 section 4.1 : localhost TLDs and address zones
  7 // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
  8 // (c)2007 R W Franks
  9 //
 10 // See /usr/share/doc/bind*/sample/ for example named configuration files.
 11 //
 12 
 13 
 14 zone "localhost" IN {
 15         type master;
 16         file "named.localhost";
 17         allow-update { none; };
 18 };
 19 
 20 zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
 21         type master;
 22         file "named.loopback";
 23         allow-update { none; };
 24 };
 25 
 26 zone "1.0.0.127.in-addr.arpa" IN {
 27         type master;
 28         file "named.loopback";
 29         allow-update { none; };
 30 };
 31 
 32 zone "0.in-addr.arpa" IN {
 33         type master;
 34         file "named.empty";
 35         allow-update { none; };
 36 };
 37 
 38 zone "bk.com" IN {
 39         type master;
 40         file "bk.com.zone";
 41         allow-update { 192.168.130.200;192.168.130.132; };
 42         also-notify { 192.168.130.200;192.168.130.132; };
 43 };
 44 
 45 zone "130.168.192.in-addr.arpa" IN {
 46         type master;
 47         file "192.168.130.arpa";
 48 };
 
[[email protected] ~]# vi /etc/resolv.conf			#在此檔案中將主從伺服器的IP地址寫入
# Generated by NetworkManager
nameserver 192.168.130.128
nameserver 192.168.130.200

修改從伺服器的區域配置檔案

#在從伺服器中填寫主伺服器的IP地址與要抓取的區域資訊,然後重啟服務。注意此時的服務型別應該是slave(從),而不再是master(主)。masters引數後面應該為主伺服器的IP地址,而且file引數後面定義的是同步資料配置檔案後要儲存到的位置,稍後可以在該目錄內看到同步的檔案

[[email protected] ~]# vi /etc/named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

zone "localhost.localdomain" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "0.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
};

zone "bk.com" IN {
        type slave;
        masters { 192.168.130.128; };
        file "slaves/bk.com.zone";
};

zone "130.168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.130.128; };
        file "slaves/192.168.130.arpa";
};

[[email protected] ~]# vi /etc/resolv.conf			#在此檔案中將主從伺服器的IP地址寫入
# Generated by NetworkManager
nameserver 192.168.130.128
nameserver 192.168.130.200

啟動服務及測試

#在主伺服器上重啟服務,在從伺服器上也重啟服務,然後檢視/var/named/slaves/目錄下是否有同步了的檔案,然後使用nslookup命令在從伺服器上測試

[[email protected] ~]# systemctl restart named
[[email protected] ~]# cd /var/named/slaves/
[[email protected] slaves]# ls  
192.168.130.arpa  bk.com.zone
[[email protected] slaves]# nslookup               
> www.bk.com
Server:         192.168.130.128
Address:        192.168.130.128#53

Name:   www.bk.com
Address: 192.168.130.128
> mail.bk.com
Server:         192.168.130.128
Address:        192.168.130.128#53

Name:   mail.bk.com
Address: 192.168.130.128
> news.bk.com
Server:         192.168.130.128
Address:        192.168.130.128#53

Name:   news.bk.com
Address: 192.168.130.200
> 192.168.130.128
Server:         192.168.130.128
Address:        192.168.130.128#53

128.130.168.192.in-addr.arpa    name = ftp.bk.com.
128.130.168.192.in-addr.arpa    name = mail.bk.com.
128.130.168.192.in-addr.arpa    name = www.bk.com.
> 192.168.130.200  
Server:         192.168.130.128
Address:        192.168.130.128#53

200.130.168.192.in-addr.arpa    name = news.bk.com.

使用Windows server 2008環境配置DNS從伺服器

配置DNS環境

安裝好Windows server 2008 環境,然後開啟伺服器管機器,點選角色→新增角色
在這裡插入圖片描述
選擇DNS伺服器並進行安裝
在這裡插入圖片描述
安裝後找到DNS伺服器,滑鼠右擊選擇配置DNS伺服器
在這裡插入圖片描述
選擇第二項
在這裡插入圖片描述
選擇輔助區域
在這裡插入圖片描述
填入主伺服器的IP地址
在這裡插入圖片描述
建立反向查詢區域,填入對應的IP地址網段
在這裡插入圖片描述
將此伺服器的IP地址配置為靜態,並將主從伺服器的IP地址填入DNS伺服器地址中
在這裡插入圖片描述