Ubuntu Linux 學習篇 配置DNS服務器


BIND9

DNS(Domain Name Server,域名服務器)是進行域名(domain name)和與之相對應的IP地址 (IP address)轉換的服務器。DNS中保存了一張域名(domain name)和與之相對應的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一台計算機或計算機組的名稱,用於在數據傳輸時標識計算機的電子方位(有時也指地理位置)。域名是由一串用點分隔的名字組成的,通常包含組織名,而且始終包括兩到三個字母的后綴,以指明組織的類型或該域所在的國家或地區。

DNS是計算機域名系統 (Domain Name System 或Domain Name Service) 的縮寫,它是由域名解析器域名服務器組成的。域名服務器是指保存有該網絡中所有主機的域名和對應IP地址,並具有將域名轉換為IP地址功能的服務器。其中域名必須對應一個IP地址,一個IP地址可以有多個域名,而IP地址不一定有域名。域名系統采用類似目錄樹的等級結構。域名服務器通常為客戶機/服務器模式中的服務器方,它主要有兩種形式:主服務器和轉發服務器。將域名映射為IP地址的過程就稱為“域名解析”。

 

總的來說DNS服務器就是負責域名和IP地址之間的轉換。

 

1.Bind9配置文件介紹 

Bind的配置文件,放在/etc/bind9/目錄下,主要的配置文件有以下4個,分別是:

/etc/bind/
  • /etc/bind9/named.conf(主配置文件)    //主配置文件,通過include關鍵字加載其他三個配置文件
  •     |_    /etc/bind9/named.default-zones;               //默認區域
  •     |_    /etc/bind9/named.conf.options;                 //轉發器配置文件
  •     |_    /etc/bind9/named.conf.local;                    //用戶配置文件,一般將DNS記錄放在這個文件里面
  •                |_    /var/cache/bind/db.xxx,com                    //正向配置文件
  •                 |_    /var/cache/bind/db.1.168.192                //反向配置文件

其中,/etc/bind9/named.conf是Bind的主配置文件,不過他並不包含DNS數據。查看/etc/bind9/named.conf文件可以發現,主配置文件里面使用了include關鍵字來加載其它3個配置文件。 

在/etc/bind9/named.conf.options文件中,有一句默認的配置(如下),該語句的所示的目錄的作用是存放正向解析以及反向解析的一些配置文件,該配置告訴Bind,到/var/cache/bind目錄下去尋找數據文件

2.完全卸載(如果你是首次安裝,請忽略) 

在你看這篇文章的時候,也許你已經在DNS配置里面掙扎了很久,然后沒有成功,那么,請你執行以下命令(卸載bind9,並且刪除配置文件)

$ sudo apt-get purge bind9

安裝DNS服務

$ apt-get install bind9

或者

$ sudo apt-get -y install bind9

3.創建正反向Zone(解析)文件路徑查找

創建正向Zone文件 

正向Zone文件是用來做正向解析的,即將域名解析為IP地址 

 

(1)首先,修改/etc/bind/named.conf.local文件

 

$ sudo mv /etc/bind/named.conf.local /etc/bind/named.conf.local-bak        //備份原始配置文件,如果配置錯誤可還可以再替換回來
$ sudo vim /etc/bind/named.conf.local                                      //使用vim編輯器編輯配置文件

添加下列信息:

zone "kevin.com" {                                                        //DNS服務器的名字
    type master;
    file "db.kevin.com";
};kevin.com" {                                                        //DNS服務器的名字
    type master;
    file "db.kevin.com";
};

該配置指定Bind作為kevin.com域的主域名服務器,db. kevin.com文件包含所有*.kevin.com 形式的域名轉換數據。文件 db.kevin.com 沒有指定路徑,所以默認是/var/cache/bind/。 

創建反向Zone文件 
反向Zone文件是用來做反向解析的,即把IP地址解析為域名。 

zone "191.168.192.in-addr.arpa" {
    type master;
    file "db.192.168.191";
};191.168.192.in-addr.arpa" {
    type master;
    file "db.192.168.191";
};

然后,我們復制一個現有的文件作為Zone文件正向解析的模板:

$ sudo cp /etc/bind/db.local /var/cache/bind/db.kevin.com            //模板為db.local

現在,我們來修改該Zone文件:

$ sudo vim /var/cache/bind/db.kevin.com

將其改為如下內容(其中的192.168.191.4是我的局域網IP地址,通過命令行ifconfig可查看主機的局域網IP地址)

;
; BIND data file for local loopback interface
;
$TTL   604800
@   IN  SOA localhost. root.localhost. (
                  2     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@   IN  NS  ns.
@   IN  A   192.168.191.4
www IN  A   192.168.191.4
@   IN  AAAA    ::1

再復制一個現有的文件作為Zone文件反向解析的模板

$ sudo cp /etc/bind/db.127 /var/cache/bind/db.191.168.192            //模板為db.127

修改該Zone文件

$ sudo vim /var/cache/bind/db.191.168.192

將其改為如下內容:

;
; BIND reverse data file for local loopback interface
;
$TTL   604800
@   IN  SOA localhost. root.localhost. (
                  1     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@   IN  NS  ns.
4   IN  PTR www.kevin.com
1.0.0   IN  PTR localhost.

左下角中的4代表IP的最后一個字節號,例如,我的局域網IP地址是192.168.191.4,那么最后一個字節就是4

配置轉發器

options {
    directory "/var/cache/bind";

    // If there is a firewall between you and nameservers you want
    // to talk to, you may need to fix the firewall to allow multiple
    // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

    // If your ISP provided one or more IP addresses for stable 
    // nameservers, you probably want to use them as forwarders.  
    // Uncomment the following block, and insert the addresses replacing 
    // the all-0's placeholder.

     forwarders {

        114.114.114.114;                                        //轉發器1
        114.114.115.115;                                        //轉發器2

     };

    //========================================================================
    // If BIND logs error messages about the root key being expired,
    // you will need to update your keys.  See https://www.isc.org/bind-keys
    //========================================================================
    dnssec-validation auto;

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};
114.114.114.114;                                        //轉發器1
        114.114.115.115;                                        //轉發器2

     };

    //========================================================================
    // If BIND logs error messages about the root key being expired,
    // you will need to update your keys.  See https://www.isc.org/bind-keys
    //========================================================================
    dnssec-validation auto;

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
};

 

修改主機域名解析地址,重啟Bind9 

 

(1)修改主機域名解析地址

$ sudo vim /etc/resolv.conf

修改為
search kevin.com
nameserver 192.168.191.4

 

(2)重啟Bind9

 

$ sudo service bind9 restart

 

四、測試

 

$ ping kevin.com

 

如果有數據的收發,則表示配置成功。

 

或者在同一局域網內的另一台主機上設置DNS地址為DNS服務器的地址

使用nslookup命令進行解析測試

# nslookup

如果解析出相應的IP或者域名就表示配置正確


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM