linux下安装bind

一.、Bind 简介。

Bind是一款开放源码的DNS服务器软件,Bind由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。本文将介绍它在Red hat Linux 9中最基本的安装和配置。

二.、软件的相关资源。

官方网站:http://www.bind.com/源码软件包:Bind 是开源的软件,可以去其官方网站下载。http://www.isc.org/index.pl,目前最新版本为bind-9.3.1。帮助文档:http://www.isc.org/index.pl有该软件比较全面的帮助文档。FAQ:http://www.isc.org/index.pl回答了该软件的常见问题。配置文件样例:http://www.bind.com/bind.html 一些比较标准的配置文件样例。

三.、软件的安装。

1.安装

由其官方网站中下载其源码软件包bind-9.3.1. tar.gz。接下来我将对安装过程的一些重要步骤,给出其解释:

[root@localhost root]#tar –zvxf bind-9.3.1. tar.gz 
[root@localhost root]#cd bind-9.3.1 
[root@localhost bind-9.3.1]# ./configure--prefix=/usr/local/bind   
[root@localhost bind-9.3.1]#make 
[root@localhost bind-9.3.1]#make install



tar –zvxf bind-9.3.1.tar.gz 解压缩软件包。

./configure 针对机器作安装的检查和设置,大部分的工作是由机器自动完成的,但是用户可以通过一些参数来完成一定的设置,其常用选项有:

./configure --help 察看参数设置帮助。

--prefix= 指定软件安装目录(默认/usr/local/)。

--enable-ipv6 支持ipv6。

可以设置的参数很多,可以通过 -help察看需要的,一般情况下,默认设置就可以了。

默认情况下,安装过程是不会建立配置文件和一些默认的域名解析的,不过并不妨碍,可以从下载一些标准的配置文件(http://www.bind.com/bind.html),也可以使用本文所提供的样例文件。

默认情况下,安装在/usr/local/bind/sbin/named

默认的主配置文件,/usr/local/bind/etc/named.conf(须手动建立)。


 

四、建立BIND用户:

# groupadd bind 
 # useradd -g bind -d /usr/local/named -s /sbin/nologin bind



五、创建配置文件目录:

# mkdir  /usr/local/named/etc  
 # chown bind:bind /usr/local/bind/etc  
 # chmod 700 /usr/local/bind/etc


六、创建主要的配置文件:

# vi /usr/local/bind/etc/named.conf 
 ===========================named.conf======================= 

 acl "trust-lan" { 127.0.0.1/16; 192.168.0.0/24;}; 
 options { 
          directory "/usr/local/bind/etc/"; 
 pid-file "/var/run/named/named.pid"; 
 version "0.0.0"; 
 datasize 40M; 
 allow-transfer { 
 "trust-lan";}; 
 recursion yes; 
 allow-notify { 
 "trust-lan"; 
 }; 
 allow-recursion { 
 "trust-lan"; 
 }; 
 auth-nxdomain no; 
 forwarders { 
 202.106.124.90; 
 202.106.0.20;}; 
 }; 
 logging { 
         channel warning 
         { file "/var/log/named/dns_warnings" versions 3 size 1240k; 
         severity warning; 
         print-category yes; 
         print-severity yes; 
         print-time yes; 
         }; 
         channel general_dns 
         { file "/var/log/named/dns_logs" versions 3 size 1240k; 
         severity info; 
         print-category yes; 
         print-severity yes; 
         print-time yes; 
         }; 
         category default { warning; }; 
         category queries { general_dns; }; 
 }; 
 zone "." { 
         type hint; 
         file "named.root"; 
 }; 

 zone "0.0.127.IN-ADDR.ARPA" { 
         type master; 
         file "localhost"; 
 }; 

 zone "wang.st.com" { 
         type slave; 
         file "wang.st.com"; 
         masters { 
                 192.168.0.1; 
         }; 
 }; 

 zone "0.168.192.in-addr.arpa" { 
         type slave; 
         file "0.168.192.in-addr"; 
         masters { 
                 192.168.0.1; 
         }; 
 }; 
 =========================named.conf========================== 

 # vi /usr/local/bind/etc/home.com 

 ============================ wang.st.com ========================== 
 $TTL 86400 
 $ORIGIN home.com. 
 @       IN      SOA     wang.st.com. root.wang.st.com ( 
         2001111601 ; serial 
         28800 ; refresh 
         14400 ; retry 
         3600000 ; expire 
         86400 ; default_ttl 
         ) 
         IN      NS      wang.st.com. 

 ;; -- default address - 

 @       IN      A       192.168.0.1 

 ;; -- wang SerVer -- 

 wang    IN      A               192.168.0.1 
            IN      MX      0       wang.st.com. 
           IN       MX      10      wang.st.com  
 IN      HINFO           "Fedora 3". 
            IN      TXT             "The internet gateway". 

 dns     IN      CNAME   wang 
 www     IN      CNAME   wang 
 mail    IN      CNAME   wang 
 ftp     IN      CNAME   wang 
 ============================ wang.st.com ========================== 

 # vi /usr/local/bind/etc/0.168.192.in-addr 

 ======================== 0.168.192.in-addr ===================== 
 $TTL 86400 
 @       IN      SOA     wang.st.com. root.wang.st.com. ( 
                 2001111601      ; Serial 
                 28800           ; refresh 
                 14400           ; retry 
                 3600000         ; expire 
                 86400 )         ; minimum 

 @       IN      NS      wang.st.com. 
 1       IN      PTR     wang.st..com..
 1       IN      PTR     www.wang.com. 
 1       IN      PTR     mail.wang.com. 
 1       IN      PTR     ftp.wang.com. 
 ======================== 0.168.192.in-addr ====================== 

 # vi /usr/local/bind/etc/localhost 
 =========================== localhost =========================== 
 $TTL    3600 
 @       IN      SOA     wang.st.com. root.wang.st.com.  ( 
                                 20040526  ; Serial 
                                 3600       ; Refresh 
                                 900        ; Retry 
                                 3600000   ; Expire 
                                 3600 )    ; Minimum 
         IN      NS      wang.st.com. 
 1       IN      PTR    wang.st.com. 
 =========================== localhost ===========================



更新根区文件:

# cd /usr/local/bind/etc/ 
 # wget ftp://ftp.internic.org/domain/named.root

或者

# cd /usr/local/bind/etc/ 
 # vi named.root =========================== name.root =========================== 
 ;       This file holds the information on root name servers needed to ;       initialize cache of Internet domain name servers 
;       (e.g. reference this file in the "cache  .  <file>" 
;       configuration file of BIND domain name servers). 
; 
;       This file is made available by InterNIC 
;       under anonymous FTP as 
;           file                /domain/named.root 
;           on server           FTP.INTERNIC.NET 
;       -OR-                    RS.INTERNIC.NET 
; 
;       last update:    Jan 29, 2004 
;       related version of root zone:   2004012900 
; 
; 
; formerly NS.INTERNIC.NET 
; 
.                        3600000  IN  NS    A.ROOT-SERVERS.NET. 
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4 
; 
; formerly NS1.ISI.EDU 
; 
.                        3600000      NS    B.ROOT-SERVERS.NET. 
B.ROOT-SERVERS.NET.      3600000      A     192.228.79.201 
; 
; formerly C.PSI.NET 
; 
.                        3600000      NS    C.ROOT-SERVERS.NET. 
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12 
; 
; formerly TERP.UMD.EDU 
; 
.                        3600000      NS    D.ROOT-SERVERS.NET. 
D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90 
; 
; formerly NS.NASA.GOV 
; 
.                        3600000      NS    E.ROOT-SERVERS.NET. 
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10 
; 
; formerly NS.ISC.ORG 
; 
.                        3600000      NS    F.ROOT-SERVERS.NET. 
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241 
; 
; formerly NS.NIC.DDN.MIL 
; 
.                        3600000      NS    G.ROOT-SERVERS.NET. 
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4 
; 
; formerly AOS.ARL.ARMY.MIL 
; 
.                        3600000      NS    H.ROOT-SERVERS.NET. 
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53 
; 
; formerly NIC.NORDU.NET 
; 
.                        3600000      NS    I.ROOT-SERVERS.NET. 
I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17 
; 
; operated by VeriSign, Inc. 
; 
.                        3600000      NS    J.ROOT-SERVERS.NET. 
J.ROOT-SERVERS.NET.      3600000      A     192.58.128.30 
; 
; operated by RIPE NCC 
; 
.                        3600000      NS    K.ROOT-SERVERS.NET. 
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129 
; 
; operated by ICANN 
; 
.                        3600000      NS    L.ROOT-SERVERS.NET. 
L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12 
; 
; operated by WIDE 
; 
.                        3600000      NS    M.ROOT-SERVERS.NET. 
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33 
; End of File
=========================== name.root ===========================

创建PID和日志文件:

# mkdir /var/run/named/ 
 # chmod 777 /var/run/named/ 
 # chown bind:bind /var/run/named/ 

 # mkdir /var/log/named/ 
 # touch /var/log/named/dns_warnings 
 # touch /var/log/named/dns_logs 
 # chown bind:bind /var/log/named/*



生成rndc-key:

# cd /usr/local/bind/etc/ 
 # ../sbin/rndc-confgen > rndc.conf



把rndc.conf中:
# Use with the following in named.conf, adjusting the allow list as needed: 
后面以的部分加到/usr/local/bind/etc/named.conf中并去掉注释

 

七、启动:


[root@localhost root]# /usr/local/sbin/named -g



状态检查:

# /usr/local/bind/sbin/rndc status

/usr/local/bind/sbin/named默认情况是一个后台deamon ,-g选项表示前台运行,并将调试信息打印到标准输出,这在我们安装调试阶段是非常有帮助的。

如果建立了配置文件和域名解析文件(关于怎样建立将在下面的部分讲到),ps aux 应该可以查到named 的进程,或netstat -an 也可以看到53端口的服务已经起来了。(DNS默认端口为53)

如果要设置开机自启动DNS server,只需在/etc/rc.d/rc.local中加入一行

/usr/local/bind/sbin/named

#!/bin/sh 
# 
# This script will be executed *after* all the other init scripts. 
# You can put your own initialization stuff in here if you don't 
# want to do the full Sys V style init stuff. 
touch /var/lock/subsys/local 
 
/usr/local/bind/sbin/named


八、安装使用的一些经验:

1.带调试信息的启动

named -g

/usr/local/sbin/named默认情况是一个后台deamon ,-g选项表示前台运行,并将调试信息打印到标准输出,这在我们安装调试阶段是非常有帮助的。

2.客户端命令nslookup简介

windows ,linux 平台均支持此调试命令。

键入nslookup即进入与服务器交互状态,这时键入域名或ip地址就可以向服务器正向或逆向查询。

>www.test.com 正向域名解析

>192.168.0.1 逆向IP解析  

>exit 退出。