之前配置过 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 没有报错即成功!