RedHat As5 系统中自带 Bind 配置笔记。

范堡 发布于 2010/01/07 10:44
阅读 2K+
收藏 4

之前配置过 tar 包编译的 Bind

但步骤跟路径都与 RedHat As5.x 安装系统时勾选的,或者是 rpm 方式安装的有天渊之别。

这里来分享一下:

我在安装的时候就勾选了安装向导里头的 “DNS 服务器” 跟我一样的朋友就可以跳过下边这部分安装方式:

########################################################

我们需要做的第一件事是确定BIND是否已经安装在系统上。我们使用的方法是通过RPM Package Manager来检测是否已安装BIND(这种方法不适于下载的BIND源代码安装方式)。

输入以下的命令:

rpm –qa | grep –i bind

rpm –qa | grep –i caching

如果BIND已经被安装过,你将得到如下信息(忽略 ypbind…它和BIND没有关系)

 

[root@wenter126 root]# rpm –qa | grep –i bind   

bind-9.2.2-21                                                                    

bind-utils-9.2.2-21                                                         

ypbind-1.12-1                                                                  

[root@wenter126 root]# rpm –qa |grep –i caching

caching-nameserver-7.2-7                                              

[root@wenter126 root]                                                 

 

如果BIND没有被安装你将得到如下信息:

[root@wenter126 root]# rpm –q a | grep –i bind

ypbind-1.12-1                                                                 

[root@wenter126 root]# rpm –qa |grep –i caching

[root@wenter126 root]                                                 

 

你可以通过如下的命令卸载BIND

rpm –q –a | grep ‘^bind’ | while read line

>do                                                                     

>rpm –e –nodeps $line                                  

>done                                                                

 

安装BIND有几种选择,可以下载源代码然后编译它,但是我们不用这种方法。我们采用简单的安装RPM包的方式。有几种获取RPM包的方式,1、从RedHat安装盘中获取;2、从网上下载BIND RPM包。

我是在安装盘上获得的BIND。BIND不同的版本相对应的RPM包的名称也不完全相同,你可以复制安装盘上的所有的以“bind”开头的所有RPM包和一个以“caching-nameserver”开头的RPM包到/usr/local/temp下(也可以是别的目录)。

 

开始安装BIND

将复制过来的RPM包赋于可执行权限,并执行安装

[root@wenter126 temp]# chmod a+x *                                                                

[root@wenter126 temp]# rpm –ivh bind-* caching-nameserver*.rpm          

Preparing…                            #################################[100%]

    1:bind-utils                  #################################[ 25 %]

    2:bind                            #################################[ 75 %]

    1:bind-devel                      #################################[ 50%]

    4:caching-nameserver #################################[100%]

 

上述工作完成表示你的BIND已经安装完成

 ########################################################

接下来开始配置。

我就比较郁闷,系统安装时带的 bind 虽然路径都安放在 /var/named 但里边确没有一个配置文件。

连 named.conf 跟 local.zone 这2个重要的配置文件都没有...

如果你们也跟我一样这么倒霉, 就继续看吧。

之前用tar包安装band的时候留下了一下配置项。但只能作为参考,直接用上 service named start 的时候会报错。

 

首先说第一个文件:/etc/sysconfig/named

这个配置文件的最后一行决定了named (即bind)的其他配置文件的路径及目录。

默认是 /var/named

 

第二个文件是:/var/named/chroot/etc/named.conf

这个文件就是 bind 的主配置文件,有可能band装好后会没有,一会需要手工新建。

 

第三个文件是:/var/named/chroot/etc/rndc.key

该文件保存的是 MD5 的加密密钥,用于给管理员控制管理DNS服务器以及数据同步加密等等...

相当重要,要使用其里头的信息创建 named.conf

 

第四个文件是:*.zone

啥意思? 这个是指针文件,用于存放域名的DNS记录,例如A记录,MX记录,CNAME 记录等。它的位置由 named.conf 里边的参数决定。

 

好,下边就开始说各个配置文件的使用以及创建。

第一个:/etc/sysconfig/named  如果你没有特殊爱好,留着默认好了。
第二个:/var/named/chroot/etc/named.conf  需要手工创建。

首先是要打开第三个文件:/var/named/chroot/etc/rndc.key

把里头的所有内容复制,然后在相同目录下创建 named.conf,并把复制的内容粘贴进去。
然后在插入配置内容,named.conf 完成后例子如下:
路径:/var/named/chroot/etc/named.conf 

##############################

key "rndckey" {
        algorithm       hmac-md5;
        secret          "m3pD9wpq7QsO7l9ojGdFxxxxxxxxxxxxxxxxxxxq3eNz2tSU97l5uYD";     #
};

options {
        directory       ".";          # DNS指针配置的路径相对于 /var/named/chroot
};

zone "gznow.cn" IN {          # DNS 指针的域名
        type master;                 
        file "master/gznow.zone";     # 指针路径
        allow-update{none;};
};

##############################

我们这里配的是最基本的 bind 服务,其他复杂的功能例如反向解析,分IP段解析等之类的功能就日后再说。

按照上边的配置把 named.conf 创建后,可以着手创建 *.zone 指针

这里以 gznow.zone 为例

按照 named.conf 中指针路径的配置
在 /etc/named/chroot 下创建文件夹 master
并新建指针配置文件 gznow.zone
路径如:/var/named/chroot/master/gznow.zone

内容:

##############################

$TTL 3600 ;
@          IN SOA  ns1.gznow.cn. admin.gznow.cn. (
                2003030400 ; Serial
                28800 ; Refresh
                14400 ; Retry
                3600000 ; Expire
                86400 ) ; Minimum

        IN NS           ns1.gznow.cn.
        IN MX           5 mail.gznow.cn.
ns1     IN A            219.136.252.253
ns2     IN A            219.136.252.253

@       IN A            219.136.252.253
*       IN A            219.136.252.253

www     IN A            219.136.252.253
www     IN A            203.114.253.73

mail    IN CNAME        s1.someqone.com.
img     IN CNAME        phlinux.someqone.com.

##############################

第1行是一个TTL设定,定义区域数据文件里面的各项记录的默认TTL值为3600s
缺少此行不影响使用,但是会出现警告信息。

第2行是一个SOA记录的设定,"@"代表相应的域名,也就是在named.conf中设定的zone
如在这里表示gznow.cn,IN表示后面的数据使用的是Internet标准。
SOA的全称是"Start Of Authority",表示目前区域授权开始。
每一个区域数据文件只能有一个SOA,不能重复,而且必须是所负责的zone中第一个"记录"。
在SOA后面分别指定了这个区域的授权主机名称和管理者的信箱( admin.gznow.cn. )

注意 授权主机名和管理员信箱后面都要有一个".",而且授权主机名称必须能够在DNS设置中找到一个A记录(下面会讲到)。由于"@"在区域数据文件中有其他含义,因此管理员信箱邮件地址中用"."代替"@"符号。

接下来包含在括弧中的5组数字是作为与Slave服务器同步信息而设置的,含义如下。

Serial:表示配置文件的修改版本,格式是年月日加上修改的次数
每次修改这个配置文件时都应该修改这个数字
因为Slave DNS进行信息同步时,会比较这个数值。
如果这个数值比自身的数值大,就进行更新,否则忽略更新。

注意 这个设置很重要,如果在修改区域数据文件后,没有更新该值,那么所做的更改就不会更新到网上的其他DNS服务器。

refresh:用来设定Slave DNS与Master DNS进行同步的间隔时间。

retry:设定Slave DNS在更新失败后,再进行重试的间隔时间。

expiry:设定Slave DNS在与Master DNS同步失败后,多长时间清除对应的记录。

Minimum:这是默认的最小TTL值,如果在前面没有指定TTL值,就以这个为基准。

以上的数字都是以s(秒)为单位的,但也可以用H(小时)、D(天)、W(星期)来作单位。

第8-14行,是对域名解析的具体设置,第1列表示不同的主机域名,但是省略了后面的域信息。
例如"www"其实是www.gznow.cn,"mail"是指mail.gznow.cn。
其他具有相同的含义。"IN"后面的指令含义说明如下。

NS:用来定义这个主机是个域名服务器。

MX:定义了一个邮件交换器。

A指针:定义了一个A记录,即域名到IP的记录。

CNAME:定义了域名的别名。

至此,如果你服务器上开启了 iptables ,记得把 udp 53 端口打开。

 vim /etc/sysconfig/iptables 加入以下这行:

-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT

然后启动 bind  :service bind start 没有报错即成功!

加载中
返回顶部
顶部