1. 程式人生 > >簡述使用BIND配置本地DNS伺服器(centos 6.8)

簡述使用BIND配置本地DNS伺服器(centos 6.8)

DNS簡介:
DNS,Domain Name System,域名系統,用於Internet上域名和IP地址的相互對映,使得使用者不用記憶主機IP地址,僅通過與之對應的域名就可以訪問該主機。

下面是本地dns伺服器搭建過程,環境-centos6.8,本地IP-192.168.3.60。

1.yum安裝bind和bind-utils,後者包含dns查詢工具dig。

$ yum install bind bind-utils -y

2.修改配置檔案 named.conf

$ vim /etc/named.conf

修改內容如下:

options {
    //新增監聽IP-192.168.3.60
listen-on port 53 { 127.0.0.1;192.168.3.60; }; }; //建立正向解析域(本地域) zone "test.com" IN { type master; file "test.com.zone"; }; //建立反向解析域(本地域) zone "3.168.192.in-addr.arpa" IN { type master; file "3.168.192.zone"; };

檢查配置語法正確與否:

$ named-checkconf

3.建立區域檔案

正向解析:
使用named.localhost檔案的副本,更改屬組為named。

$ cp named.localhost test.com.zone
$ chgrp named test.com.zone
$ vim test.com.zone

test.com.zone 內容如下:

$TTL 1D
    @       IN SOA  @ admin.test.com. (
                                        2017020601       ; serial
                                        1D      ; refresh
                                        1
H ; retry 1W ; expire 3H ) ; minimum NS ns.test.com. MX 5 mail.test.com. ns A 192.168.3.60 mail A 192.168.3.61 www A 192.168.3.62 bbs A 192.168.3.63

檢查語法正確與否:

$ named-checkzone "test.com" /var/named/test.com.zone 

反向解析:
使用named.localhost檔案的副本,更改屬組為named。

$ cp named.localhost 3.168.192.zone
$ chgrp named 3.168.192.zone
$ vim 3.168.192.zone 

3.168.192.zone 內容如下:

$TTL 1D
@       IN SOA  @ admin.dt.com. (
                                        2017020701      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN NS   ns.dt.com.
60      IN PTR  ns.dt.com.
61      IN PTR  mail.dt.com.
62      IN PTR  www.dt.com.
63      IN PTR  bbs.dt.com.

檢查語法正確與否:

$ named-checkzone "3.168.192.in-addr.arpa" /var/named/3.168.192.zone 

4.啟動named,測試dns解析

$ /etc/init.d/named start
$ dig @192.168.3.60 bbs.test.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.4 <<>> @192.168.3.60 bbs.test.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16609
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;bbs.test.com.                    IN      A

;; ANSWER SECTION:
bbs.test.com.             86400   IN      A       192.168.3.62

;; AUTHORITY SECTION:
test.com.                 86400   IN      NS      ns.test.com.

;; ADDITIONAL SECTION:
ns.test.com.              86400   IN      A       192.168.3.60

;; Query time: 0 msec
;; SERVER: 192.168.3.60#53(192.168.3.60)
;; WHEN: Wed Feb  8 13:28:57 2017
;; MSG SIZE  rcvd: 77

遇到的問題和解決方法
1.修改完區域檔案,重啟named,出錯:

$ /etc/init.d/named restart
Stopping named:                                            [  OK  ]
Starting named: 
Error in named configuration:
dns_rdata_fromtext: test.com.zone:10: near 'mail.test.com.': not a valid number
zone test.com/IN: loading from master file test.com.zone failed: not a valid number
zone test.com/IN: not loaded due to errors.
_default/test.com/IN: not a valid number
zone 3.168.192.in-addr.arpa/IN: loaded serial 2017020701
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
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: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
                                                           [FAILED]

原因是正向解析區域檔案中,MX記錄缺少優先順序,由“MX mail.test.com”改為“MX 5 mail.test.com”,不再報錯。
2.使用named-checkzone檢查區域檔案,出錯:

dns_rdata_fromtext: /var/named/test.com.zone:3: near '1D': not a valid number
zone test.com/IN: loading from master file /var/named/test.com.zone failed: not a valid number
zone test.com/IN: not loaded due to errors.

解決方法:
在第2行” IN SOA “後、” ( “前,新增” @ “或” test.com. “,正確語句如下:

@       IN SOA    @    admin.test.com. (
......
@       IN SOA    test.com.    admin.test.com. (
......