Ubuntu採用bind9配置DNS伺服器
Ubuntu採用bind9配置DNS伺服器
最近公司專案需要用到dns伺服器,就搭建了dns伺服器。
1. BIND9 的安裝與配置
1.1 bind簡介
BIND (Berkeley Internet Name Domain)是Domain Name System (DNS) 協議的一個實現,提供了DNS主要功能的開放實現,包括
* 域名伺服器 (named)
* DNS解析庫函式
* DNS伺服器執行除錯所用的工具
是一款開放原始碼的DNS伺服器軟體,由美國加州大學Berkeley分校開發和維護的,
按照ISC的調查報告,BIND是世界上使用最多最廣泛的域名服務系統。不論你的郵件伺服器,WEB伺服器或者其他的services如何的安全可靠,DNS的故障會給你帶來使用者根本無法訪問這些服務。
BIND,也是我們常說的named,由於多數網路應用程式使用其功能,所以在很多BIND的弱點及時被發現。主要分為三個版本:
v4
1998年多數UNIX捆綁的是BIND4,已經被多數廠商拋棄了,除了OpenBSD還在使用。OpenBSD核心人為BIND8過於複雜和不安全,所以繼續使用BIND4。這樣一來BIND8/9的很多優點都不包括在v4中。
v8
就是如今使用最多最廣的版本,其詳細內容可以參閱 BIND 8+ 域名伺服器安全增強
v9
最新版本的BIND,全部重新寫過,免費(但是由商業公司資助),也添加了許多新的功能(但是安全上也可能有更多的問題)。BIND9在2000年十月份推出,現在穩定版本是9.3.2。
2. 安裝方式
目前有兩種方式:原始碼安裝和apt-get或者rpm安裝。
2.1 原始碼安裝
|
tar zxvf bind-9.2.6.tar.gz
包括以下子目錄:bin(全部BIND二進位制原始碼,包括named),contrib(一些工具)
,doc(BIND的文件,包括資源手冊),lib(BIND使用的庫的原始碼),make(makefile檔案).
#./configure
編譯BIND,輸入:
#make all
安裝BIND
#make install
|
2.2 apt-get
apt-get install bind9
2種方式筆者都使用了第二種方式簡單很多,第二種方法會生成很多基礎的配置檔案,使用起來簡單了很多
這裡以第二種方法來介紹:安裝完成後,配置如下:
# ls /etc/bind/ -l
total 44
-rw-r--r-- 1 root root 237 Jan 16 2006 db.0
-rw-r--r-- 1 root root 271 Jan 16 2006 db.127
-rw-r--r-- 1 root root 237 Jan 16 2006 db.255
-rw-r--r-- 1 root root 353 Jan 16 2006 db.empty
-rw-r--r-- 1 root root 256 Jan 16 2006 db.local
-rw-r--r-- 1 root root 1507 Jan 16 2006 db.root
-rw-r--r-- 1 root bind 1611 Jan 16 2006 named.conf
-rw-r--r-- 1 root bind 165 Jan 16 2006 named.conf.local
-rw-r--r-- 1 root bind 672 Jan 16 2006 named.conf.options
-rw-r--r-- 1 root root 490 Feb 18 05:45 named.conf.default-zones
-rw-r----- 1 bind bind 77 Aug 4 08:41 rndc.key
-rw-r--r-- 1 root root 1317 Jan 16 2006 zones.rfc1918
配置檔案說明:
named.conf Bind主配置檔案
named.conf.options全域性選項
db.root 根伺服器指向檔案, 由Internet NIC建立和維護, 無需修改, 但是需要定期更新
db.local localhost正向區檔案,用於將名字localhost轉換為本地回送IP地址 (127.0.0.1)
db.127 localhost反向區檔案,用於將本地回送IP地址(127.0.0.1)轉換為名字localhost
其中,主配置檔案/etc/named.conf的配置語句
命令 用法
acl 定義IP地址的訪問控制清單
control 定義ndc使用的控制通道
include 把其他檔案包含到配置檔案中
key 定義授權的安全金鑰
logging 定義日誌寫什麼,寫到哪
opitons 定義全域性配置選項和預設值
server 定義遠端伺服器的特徵
trunsted-keys 為伺服器定義DNSSEC加密金鑰
zone 定義一個區
預設情況下, 內容如下:
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
可見主配置檔案主要是包含三個部分:
1、named.conf.options 一些配置選項
2、named.conf.default-zones 預設的本地規則,包含跟檔案、正向區檔案、反向區檔案等
[email protected]:/etc/bind# cat named.conf.default-zones
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};
// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
3、Named.conf.local 這個是用來使用者定義的,我們在這裡面新增域即可
測試域名:smart-clouds.cn
測試ip: 192.168.206.138 主域名伺服器
在Named.conf.local中增加
zone "smart-clouds.cn"{
type master;
file "/etc/bind/db.smart-clouds.cn";
// allow-query-cache { any; };
allow-query { any; };
allow-update { any; };
// recursion yes;
};
zone "206.168.192.in-addr.arpa"{
type master;
file "/etc/bind/db.192.smart-clouds.cn";
};
增加db.smart-clouds.cn
[email protected]:/etc/bind# touch db.smart-clouds.cn
[email protected]:/etc/bind# cat db.smart-clouds.cn
;ND data file for local loopback interface
;
$TTL 604800
$ORIGIN smart-clouds.cn.
@ IN SOA smart-clouds.cn. root.smart-clouds.cn. (
2006080401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1
@ IN A 192.168.206.138
ns1 IN A 192.168.206.138
www IN A 192.168.206.138
[email protected]:/etc/bind# cat /etc/bind/db.192.smart-clouds.cn
$TTL 604800
@ IN SOA smart-clouds.cn. root.smart-clouds.cn. (
2006080401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS smart-clouds.cn.
138 IN PTR http://www.smart-clouds.cn.
138 IN PTR ns1.smart-clouds.cn.
內容含義參看http://hi.baidu.com/ubuntu2me/blog/item/235b94c9f84ea3107e3e6f06.html
http://www.cnblogs.com/cobbliu/archive/2013/03/19/2970311.html
這樣一個簡單的dns服務就已經實現
4、啟動以及測試本地dns
[email protected]:/etc/bind# /etc/init.d/bind9 restart
檢視啟動日誌檔案
[email protected]:/etc/bind# tail /var/log/syslog
Mar 19 22:43:14 ubuntu named[61378]: managed-keys-zone: loaded serial 3
Mar 19 22:43:14 ubuntu named[61378]: zone 0.in-addr.arpa/IN: loaded serial 1
Mar 19 22:43:14 ubuntu named[61378]: zone 255.in-addr.arpa/IN: loaded serial 1
Mar 19 22:43:14 ubuntu named[61378]: zone 127.in-addr.arpa/IN: loaded serial 1
Mar 19 22:43:14 ubuntu named[61378]: zone localhost/IN: loaded serial 2
Mar 19 22:43:14 ubuntu named[61378]: zone smart-clouds.cn/IN: loaded serial 2006080401
Mar 19 22:43:14 ubuntu named[61378]: all zones loaded
Mar 19 22:43:14 ubuntu named[61378]: running
Mar 19 22:43:14 ubuntu named[61378]: zone smart-clouds.cn/IN: sending notifies (serial 2006080401)
啟動異常資訊都從該日誌中檢視
檢視bind程序是否啟動
[email protected]:/etc/bind# ps -aux|grep named
bind 61378 0.0 0.8 164688 12904 ? Ssl 22:43 0:00 /usr/sbin/named -u bind
root 61440 0.0 0.0 15940 916 pts/11 S+ 22:47 0:00 grep --color=auto named
遇到的問題
1、rndc: connect failed: 127.0.0.1#953: connection
解決http://blog.csdn.net/lujisheng/article/details/4637204
2、出現檔案不能生成
chown -R bind 某資料夾 如chown -R named /etc/bind/
修改/etc/resolv.conf檔案 該檔案用來設定採用dns伺服器 修改為nameserver 127.0.0.1即採用本地dns服務
測試
正向 [email protected]:/etc/bind# host smart-clouds.cn
smart-clouds.cn has address 192.168.206.138
反向 [email protected]:/etc/bind# host 192.168.206.138
138.206.168.192.in-addr.arpa domain name pointer ns1.smart-clouds.cn.
本地測試完成
5、增加日誌資訊
說明日誌配置資訊統一放到named.conf.options
日誌生成到哪取決於named.conf.options中的
directory "/var/cache/bind";的設定如果日誌不能生成同前面提到的
chown -R bind
[email protected]:/etc/bind# cat /var/cache/bind/query.log
19-Mar-2015 19:09:48.810 queries: client 127.0.0.1#50563 (smart.clouds.cn): query: smart.clouds.cn IN A + (127.0.0.1)
19-Mar-2015 19:11:01.011 queries: client 127.0.0.1#39147 (smart-clouds.cn): query: smart-clouds.cn IN A + (127.0.0.1)
6、公網dns伺服器實現
需要申請公網的域名,並且將伺服器的域名註冊。
參考文獻
http://hi.baidu.com/ubuntu2me/blog/item/235b94c9f84ea3107e3e6f06.html
http://www.cnblogs.com/cobbliu/archive/2013/03/19/2970311.html
http://blog.csdn.net/lujisheng/article/details/4637204