1. 程式人生 > >ubuntu搭建dns伺服器

ubuntu搭建dns伺服器

因為工作需要,需在區域網內搭建一臺dns伺服器。確實遇到一些問題,也有一些好的文章,作為記錄。

1.安裝:

sudo apt-get update
sudo apt-get install bind9 bind9utils bind9-doc

2.修改/etc/bind/named.conf.local檔案

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
//domain -> ip zone "test.com" in { type master; file "/var/cache/bind/db.test.com"; }; //ip -> domain zone "0.168.192.in-addr.arpa" in { type master; file "/var/cache/bind/db.0.168.192"; };

這裡是配置一個 主dns 伺服器,所以配置為master,如果需要配置備份伺服器,配置為slave。

⚠️配置檔案中的兩個檔案,一個域名到ip的解析,一個是ip到域名的解析。

3.配置域名到IP解析檔案:/var/cache/bind/db.test.com

;
;BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     test.com. root.test.com. (
                        2               ;Serial
                        604800          ;Refresh
                        86400           ;Retry
                        2419200         ;Expire
604800 ) ;Negative Cache TTL ; @ IN NS ns.test.com. @ IN A 192.168.0.191 ns IN A 192.168.0.191 test01 IN A 192.168.0.191 test02 IN A 192.168.0.192 test10 IN A 192.168.1.100 test10 IN A 192.168.1.101 test10 IN A 192.168.1.102

⚠️ 除了“root.test.com.”前後是空格之外,其它均為tab⚠️
上圖中配置了一個域名對應多個ip 的情況,cname的配置不詳述

4.修改IP到域名解析的檔案:/var/cache/bind/db.0.168.192

$TTL    604800
@       IN      SOA     test.com. root.test.com. (
                2               ;Serial Number
                604800          ;Refresh
                86400           ;Retry
                2419200         ;Expire
                86400   );      ;Minimum

@       IN      NS      test.com.
191     IN      PTR     ns.test.com.
191     IN      PTR     test.test.com.
191     IN      PTR     test01.test.com.
192     IN      PTR     test02.test.com.

⚠️ 注意域名後面的”.”⚠️

5.在 /etc/bind/named.conf.option中做些檔案日誌位置指向

//dump-file     "/var/cache/bind/cache_dump.db";
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.

        dump-file "/var/cache/bind/cache_dump.db";
        statistics-file "/var/cache/bind/named.stats";
        managed-keys-directory "/etc/bind";

        // forwarders {
        //      0.0.0.0;
        // };

        allow-query { any; };

⚠️這一步是參考別的文件填寫的,具體用處暫時說不上來,哈哈

6.確認本機dns nameserver 已經設定
檔案路徑:/etc/resolv.conf
我的機子好像預設有nameserver 127.0.0.1
如果沒有配置的話,解析域名會失敗,關注。

7.重啟bind9服務

sudo service bind9 restart

8.測試 使用host 或者nslookup

$ host test01.test.com
$ nslookup
>test01.test.com
Server:    192.168.0.191
Address:   192.168.0.191#53

Name:     test01.test.com
Address:  192.168.0.191

yeah!測試通過!

如果出現問題,建議多看日誌,在搭建的時候第一次重啟,服務沒有啟動,看日誌解決的,後來又一次,修改了db.test.com,重啟之後,發包使用wireshark 抓包,發現“server failure”再檢視日誌,發現原來IP 地址的格式有問題,超過了255汗。。。總之出現問題多看日誌。

tail -20 /var/log/syslog