centos6.5環境DNS-本地DNS服務器bind的搭建
域名系統(英文:Domain Name System,縮寫:DNS)是因特網的一項服務。它做爲將域名和IP地址相互映射的一個分佈式數據庫,可以令人更方便的訪問互聯網。DNS 使用TCP和UDP端口53。當前,對於每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。
開始時,域名的字符僅限於ASCII字符的一個子集。2008年,ICANN經過一項決議,容許使用其它語言做爲互聯網頂級域名的字符。使用基於Punycode碼的IDNA系統,能夠將Unicode字符串映射爲有效的DNS字符集。所以,諸如「x.臺灣」這樣的域名能夠在地址欄直接輸入,而不須要安裝插件。可是,因爲英語的普遍使用,使用其餘語言字符做爲域名會產生多種問題,例如難以輸入,難以在國際推廣等。
BIND(Berkeley InternetName Daemon)是現今互聯網上最常使用的DNS服務器軟件,使用BIND做爲服務器軟件的DNS服務器約佔全部DNS服務器的九成。BIND如今由互聯網系統協會(Internet Systems Consortium)負責開發與維護。
咱們使用的DNS軟件就是BIND。
實驗環境:
CentOS release 6.5(Final) 兩臺
IP地址:
192.168.3.17 DNS1 DNS服務器端
192.168.3.18 DNS2 測試機
咱們要架設一個本地DNS服務器通常須要下面三個軟件程序包:
bind-libs.x86_64 #提供庫文件
bind-utils.x86_64 #提供工具包
bind.x86_64 #提供主程序包
我還沒使用安全套件,因此沒有使用bind-chroot程序包。
chroot 環境爲了系統的安全性考慮,通常來講目前各主要 distributions 都已經自動的將你的 bind 相關程序給他 chroot 了。
一.安裝bind程序包
使用yum源安裝:
yum install -y bind-libs bind-utils bind.x86_64
檢查安裝狀況:
rpm -qa bind*
bind-libs-9.8.2-0.47.rc1.el6.x86_64
bind-utils-9.8.2-0.47.rc1.el6.x86_64
bind-9.8.2-0.47.rc1.el6.x86_64
二.配置Bind
Bind的配置文件存放在/etc/目錄下:
/etc/named.conf #主配置文件
/etc/named.rfc1912.zones #正反向區域文件
咱們首先配置主配置文件:/etc/named.conf
cat /etc/named.conf
===========================================================================
options {
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory
"/var/named";
dump-file
"/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside no;
/* Path to ISC DLV key */
/*bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
*/
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-transfer { none; };
};
zone "chinasoft.com." IN {
type master;
file "chinasoft.com.zone";
};
zone "3.168.192.in-addr.arpa" IN {
type master;
file "3.168.192.zone";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
===========================================================================
配置文件中的三個文件named.ca、named.localhost、named.loopback上面已經提供有一個了named.ca了、還有這兩個named.localhost、named.loopback、一樣咱們也得提供、也是在/var/named目錄下建立:
# vim /var/named/named.localhost
$TTL 86400 ;定義宏
@ IN SOA localhost admin.localhost. (
2014031101 ;序列號
2H ;刷新時間
10M ;失敗時重試間隔時間
7D ;過時時間
1D) ;否認答案的時間
IN NS localhost.
localhost. IN A 192.168.3.1
================================
$TTL 86400
@ IN SOA localhost admin.localhost. (
2014031101 ;
2H ;
10M ;
7D ;
1D) ;
IN NS localhost.
localhost. IN A 192.168.3.1
================================
而後複製一份改寫named.loopback的文件:
# cp /var/named/named.localhost /var/named/named.loopback
# vim named.loopback
$TTL 86400
@ IN SOA localhost admin.localhost. (
2014031101
2H
10M
7D
1D )
IN NS localhost.
1 IN PTR localhost.
三.區域解析庫文件配置
1.區域解析庫文件的簡要說明:
常見的正解文件 RR 相關信息
[domain] IN [[RR type] [RR data]]
主機名. IN A IPv4 的 IP 地址
主機名. IN AAAA IPv6 的 IP 地址
區域名. IN NS 管理這個領域名的服務器主機名字.
區域名. IN SOA 管理這個領域名的七個重要參數(如上說明)
區域名. IN MX 順序數字 接收郵件的服務器主機名字
主機別名. IN CNAME 實際表明這個主機別名的主機名字.
單位:W=周、D=日、H=小時、M=分鐘。
$TTL 86400 宏定義全局TTL時間
@ IN SOA ns.chinasoft.com. root ( # ns.chinasoft.com. 是DNS服務器的名稱
0 ; serial (d. adams) 僅做爲序列號而已
1D ;refresh 服務器的更新時間
15M ; retry 從新更新時間間隔
1W ; expiry 多久以後宣佈失敗
1H ) ;minimum 至關於緩存記憶時間
@ IN NS ns.chinasoft.com.
@ IN MX 5 mail.chinasoft.com.(5爲優先級別)
ns IN A 172.16.31.3
www IN A 172.16.31.3
www IN A 172.16.31.3
mail IN A 172.16.31.3
2.配置正向解析庫文件:
vim /var/named/chinasoft.com.zone
$TTL 43200
#定義宏,通用變量,單位爲秒
@ IN SOA dns.chinasoft.com admin.chinasoft.com. (
2014031101 ; #序列號
2H ; #刷新時間
10M ; #失敗重試時間
7D ; #過時時間
1D) ; #否認答案時間
@ IN NS dns
@ IN MX 10 mail
dns IN A 192.168.3.17
mail IN A 192.168.3.10
www IN A 192.168.3.11
pop IN CNAME mail #mail別名
ftp IN CNAME www #www別名
3.配置反向解析庫文件:
vim /var/named/3.168.192.zone
$TTL 43200
@ IN SOA dns.chinasoft.com. admin.chinasoft.com. (
2014031202
2H
10M
7D
1D )
IN NS dns.chinasoft.com.
87 IN PTR dns.chinasoft.com.
10 IN PTR mail.chinasoft.com.
11 IN PTR www.chinasoft.com.
四.更改目錄權限及屬組
cd /var/named
更改文件屬組:
chown :named chinasoft.com.zone
chown :named 3.168.192.zone
更改文件權限:
chmod 640 chinasoft.com.zone
chmod 640 3.168.192.zone
檢查防火牆,selinux狀態:
service iptables status
iptables: Firewall is not running.
getenforce
Disabled
檢測區域解析庫配置文件語法:
named-checkzone "chinasoft.com" chinasoft.com.zone
zone chinasoft.com/IN: loaded serial 2014121001
OK
五.啓動服務
service named restart
這兩個配置好以後還要改一下你的NDS服務器的指向、編輯/etc/resolv.conf:
# vim /etc/resolv.conf
domain chinasoft.com
search chinasoft.com
nameserver 192.168.3.86
六.測試DNS服務器的域信息是否正常:
dig命令:
測試正向區域解析狀況:
# dig -t SOA chinasoft.com @192.168.3.17
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t SOA chinasoft.com @192.168.3.17
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20339
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;chinasoft.com. IN SOA
;; ANSWER SECTION:
chinasoft.com. 43200 IN SOA dns.chinasoft.com.chinasoft.com. admin.chinasoft.com. 2014031101 7200 600 604800 86400
;; AUTHORITY SECTION:
chinasoft.com. 43200 IN NS dns.chinasoft.com.
;; ADDITIONAL SECTION:
dns.chinasoft.com. 43200 IN A 192.168.3.17
;; Query time: 0 msec
;; SERVER: 192.168.3.17#53(192.168.3.17)
;; WHEN: Tue Sep 13 10:49:41 2016
;; MSG SIZE rcvd: 125
測試反向區域解析狀況:
dig -x 192.168.3.11
報錯:
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -x 192.168.3.11
;; global options: +cmd
;; connection timed out; no servers could be reached
修改:/etc/named.conf
修改下面兩個句子
options {
listen-on port 53 { 192.168.3.17; }; (我就是在這裏出問題的默認此處是127.0.0.1,就是由於沒把這次IP改成本機IP因此一直解析不到)
allow-query { any; }; (這裏可能也要改默認是localhost)
host命令:
檢測正向解析庫;
# host -t A www.chinasoft.com 192.168.3.17
Using domain server:
Name: 192.168.3.17
Address: 192.168.3.17#53
Aliases:
www.chinasoft.com has address 192.168.3.11
檢測反向解析庫: # host -t ptr 192.168.3.11 192.168.3.17 Using domain server: Name: 192.168.3.17 Address: 192.168.3.17#53 Aliases: 11.3.168.192.in-addr.arpa domain name pointer www.chinasoft.com. # host -t ptr 192.168.3.10 192.168.3.17 Using domain server: Name: 192.168.3.17 Address: 192.168.3.17#53 Aliases: 10.3.168.192.in-addr.arpa domain name pointer mail.chinasoft.com.