RHEL5自帶BIND9的安裝配置 這是我發在blogbus(http://zabc.blogbus.com)上的一篇文章,blogbus不給力,時不時就要維護一下,網絡訪問速度還奇慢,很是擔心發在這個博客的文章哪一天就沒了,趁着現在有精力,慢慢給博客搬個家。
原文的路徑:http://zabc.blogbus.com/logs/62117854.html
RHEL5自帶BIND9的安裝配置
需要安裝的包
system-config-bind-4.0.3-2.el5
bind-9.3.4-6.P1.el5
bind-libs-9.3.4-6.P1.el5
bind-utils-9.3.4-6.P1.el5
bind-chroot-9.3.4-6.P1.el5
caching-nameserver-9.3.4-6.P1.el5
[root@vmrhel5 etc]# more /etc/sysconfig/named
ROOTDIR=/var/named/chroot ##顯示chroot目錄是/var/named/chroot
chroot下原有文件爲
[root@vmrhel5 etc]# cd /var/named/chroot/etc
[root@vmrhel5 etc]# pwd
/var/named/chroot/etc
[root@vmrhel5 etc]# ll
total 32
-rw-r--r-- 1 root root 405 Jan 18 2009 localtime
-rw-r----- 1 root named 1100 Feb 29 2008 named.caching-nameserver.conf
-rw-r----- 1 root named 955 Feb 29 2008 named.rfc1912.zones
-rw-r----- 1 root named 113 Apr 11 18:37 rndc.key
複製模板文件得到named.conf,文件屬主爲root.named
[root@vmrhel5 etc]# cp -a named.caching-nameserver.conf named.conf
[root@vmrhel5 etc]# ll
total 40
-rw-r--r-- 1 root root 405 Jan 18 2009 localtime
-rw-r----- 1 root named 1100 Feb 29 2008 named.caching-nameserver.conf
-rw-r----- 1 root named 1100 Feb 29 2008 named.conf
-rw-r----- 1 root named 955 Feb 29 2008 named.rfc1912.zones
-rw-r----- 1 root named 113 Apr 11 18:37 rndc.key
##cp -a
-a, --archive same as -dpR
-d same as --no-dereference --preserve=link
-p same as --preserve=mode,ownership,timestamps
--preserve[=ATTR_LIST] preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: links, all
-R, -r, --recursive copy directories recursively
##
編輯named.conf文件
[root@vmrhel5 etc]# vi named.conf
options {
listen-on port 53 { 127.0.0.1;any; };
// 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";
query-source port 53;
// query-source-v6 port 53;
forwarders { 192.168.1.1; };
allow-transfer { 192.168.1.2;192.168.1.11; };
allow-query { 192.168.0.0/24;192.168.1.0/24; };
};
include "/etc/rndc.key" ;
view "internal" {
match-clients { 192.168.1.0/24; };
match-destinations { any; };
recursion yes;
include "/etc/internal.zones";
include "/etc/intranet.zones";
};
//view "external" {
// match-clients { !192.168.1.0/24; };
// match-destinations { !localhost; };
// recursion no;
// include "/etc/external.zones";
//};
1:偵聽本機所有IP的DNS請求,但只響應192.168.0.0/24及192.168.1.0/24二個網段的客戶端。
2:當客戶的IP屬於192.168.1.0/24網段時,啓用/etc/internal.zones這個主配置文件; 當客戶的IP不屬於192.168.1.0/24網段時,啓用/etc/external.zones這個主配置文件
[root@vmrhel5 ~]# rndc-confgen -b 512 -k rndckey > /var/named/chroot/etc/rndc.conf
[root@vmrhel5 etc]# more rndc.conf
# Start of rndc.conf
key "rndckey" {
algorithm hmac-md5;
secret "2LCjhE/whqwgqI0OBYab40nS5rN3Tr5n8uRDNJgD+rDDutpnCd57NI8k9YcU+5NmGyS4spfNmVMHpeTTKbMBdA==";
};
options {
default-key "rndckey";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndckey" {
# algorithm hmac-md5;
# secret "2LCjhE/whqwgqI0OBYab40nS5rN3Tr5n8uRDNJgD+rDDutpnCd57NI8k9YcU+5NmGyS4spfNmVMHpeTTKbMBdA==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndckey"; };
# };
# End of named.conf
[root@vmrhel5 etc]# head -n 5 rndc.conf|grep -v "# Start of rndc.conf" >rndc.key
[root@vmrhel5 etc]# vi rndc.key
key "rndckey" {
algorithm hmac-md5;
secret "2LCjhE/whqwgqI0OBYab40nS5rN3Tr5n8uRDNJgD+rDDutpnCd57NI8k9YcU+5NmGyS4spfNmVMHpeTTKbMBdA==";
};
創建主配置文件
在etc目錄下有一個主配置的例子文件,將其複製一份改名爲internal.zones。
如下圖複製時一定要加-a,因爲如果主配置文件的擁有組不是named時,BIND服務是無法運行的。
[root@vmrhel5 etc]# cp -a named.rfc1912.zones internal.zones
##internal.zones內容無需修改
[root@vmrhel5 etc]# more intranet.zones
zone "xyz.com" IN {
type master;
file "data/xyz.com.zone";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "data/192.168.1.zone";
allow-update { none; };
};
zone "abc.com" IN {
type slave;
masters { 192.168.1.11; };
file "slaves/abc.com.zone";
allow-update { none; };
};
[root@vmrhel5 etc]# chown root.named intranet.zones rndc.conf rndc.key
[root@vmrhel5 etc]# ll
total 64
-rw-r----- 1 root named 955 Feb 29 2008 internal.zones
-rw-r----- 1 root named 348 Apr 13 14:47 intranet.zones
-rw-r--r-- 1 root root 405 Jan 18 2009 localtime
-rw-r----- 1 root named 1100 Feb 29 2008 named.caching-nameserver.conf
-rw-r----- 1 root named 1631 Apr 13 16:04 named.conf
-rw-r----- 1 root named 955 Feb 29 2008 named.rfc1912.zones
-rw-r--r-- 1 root named 603 Apr 13 14:29 rndc.conf
-rw-r--r-- 1 root named 154 Apr 13 14:34 rndc.key
創建區域文件
[root@vmrhel5 named]# pwd
/var/named/chroot/var/named
[root@vmrhel5 named]# ll
total 72
drwxrwx--- 2 root named 4096 Apr 13 14:46 data
-rw-r----- 1 root named 198 Feb 29 2008 localdomain.zone
-rw-r----- 1 root named 195 Feb 29 2008 localhost.zone
-rw-r----- 1 root named 427 Feb 29 2008 named.broadcast
-rw-r----- 1 root named 1892 Feb 29 2008 named.ca
-rw-r----- 1 root named 424 Feb 29 2008 named.ip6.local
-rw-r----- 1 root named 426 Feb 29 2008 named.local
-rw-r----- 1 root named 427 Feb 29 2008 named.zero
drwxrwx--- 2 named named 4096 Apr 13 15:01 slaves
[root@vmrhel5 named]# cd data
[root@vmrhel5 data]# ls
192.168.1.zone named_mem_stats.txt named.run xyz.com.zone
[root@vmrhel5 data]# more xyz.com.zone
$TTL 86400
@ IN SOA xyz.com. root (
2010041200 ; Serial
1H ; Refresh
15M ; Retry
1W ; Expire
1D ) ; Minimum
IN NS @
IN A 192.168.1.4
IN MX 10 mail
www IN A 192.168.1.4
mail IN A 192.168.1.4
news IN CNAME www
[root@vmrhel5 data]# more 192.168.1.zone
$TTL 86400
@ IN SOA xyz.com. root.xyz.com. (
2010041200 ; Serial
1H ; Refresh
15M ; Retry
1W ; Expire
1D ) ; Minimum
IN NS xyz.com.
4 IN PTR www.xyz.com.
1:選項配置如下:
◆ listen-on port 53 { 127.0.0.1; };這個是DNS偵聽本機的端口及IP。這裏設置表示只偵聽127.0.0.1這個地址。如不定義此選項表示偵聽所有網絡
◆ directory “/var/named”指主配置文件路徑,這個路徑也是相對路徑,它的絕對路徑/var/named/chroot/var/named
◆ query-source port 53;客戶端在進行DNS查詢時必須使用53做爲源端口
◆ allow-query { localhost; };允許提交查詢的客戶端,如不定義此選項表示允許所有查詢
◆ allow-recursion {192.168.0.0/24;192.168.0.1/24}:允許提交遞歸查詢的客戶端,如不定義此選項表示允許所有
◆ allow-transfer {192.168.0.254;}:允許區域傳輸的DNS服務器(輔助DNS),不寫表示允許所有
◆ forwarders {192.168.0.9;}:轉發器
◆ forward only|first:only表示如果在指定的轉發器找不到,不會去向根查詢,first表示快速轉發(默認)
2:定義主配置文件,此部分可有多個,只要求localhost_resolver這個名字不重複
◆ match-clients { localhost; };客戶端的源IP
◆ match-destinations { localhost; };解析出的目標IP
◆ recursion yes;如果客戶端提交的FQDN本服務器沒有,那麼服務器會幫助客戶端去查詢
◆ include “/etc/named.rfc1912.zones”; 指定主配置文件
上面參數中所有指定地址範圍(如:listen-on、match-clients等)時都可以多個寫法如下:
◆ 單個IP:192.168.0.1;
◆ 網段:192.168.0.0/24;
◆ 指定多個IP:192.168.0.1;192.168.0.2;
◆ 網段:192.168.0.;
還可以使用!表示不包括
◆ none:不匹配所有
◆ any:匹配所有
◆ localhost:DNS主機
◆ localnet:與DNS主機同網段
zone:指定區域名稱;type:指定類型
Master
主DNS服務器:擁有區域數據文件,並對此區域提供管理數據
Slave
輔助區域:擁有主DNS服務器區域數據文件的副本,輔助DNS服務器從主DNS服務器同步所有區域數據
Stub
stub區域和slave類似,但它只複製主DNS服務器上的NS記錄,而不像輔助DNS服務器會複製所有區域數據
Forward
一個forward zone是每個域的配置轉發的主要部分。一個zone語句中的type forward可以包括一個forward和或forwarders子句,它會在區域名稱給定的域中查詢。如果沒有forwarders語句或forwarders是空表,那麼這個域就不會轉發,消除了options語句中有關轉發的配置
Hint
根域名服務器的初始化組指定使用的線索區域hint zone,當服務器啓動時,它使用根線索來查找根域名服務器,並找到最近的根域名服務器列表。如果沒有指定class IN的線索區域,服務器使用編譯時默認的根服務器線索。不是IN的類別沒有內置的默認線索服務器
file:指定區域配置文件,該文件中將定義資源記錄allow-update:指定動態更新類型,none表示不允許動態更新