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 退出。