前言:初次接触用
Linux
来搭建
DNS
服务器,着实让我很头痛,碰到了很多很多的问题,即使到网上找资料,按照那些网上所给的步骤去做,可是总是有让人意想不到的结果,不过最终还是解决了。不说太多了,下面进行讲解和陈述自己所碰到问题和解决方法。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
一
.DNS
架设的步骤
1.
架设
DNS
服务器所需要的四个主要文件有:
(
不同版本的那个红色部分不相同的
)
bind-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />9.2.4-p5-9.i386.rpm
bind-devel-9.2.4-p5-9.i386.rpm
bind-chroot-9.2.4-p5-9.i386.rpm
caching-nameserver-7.3-3.noarch.rpm
于是我们可以在终端中查找有没有安装这四个主要文件
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
2.
如果没有安装上面那些文件的话,可以在光盘中找到相应的软件包进行安装就可以了。操作步骤如下:
虚拟机菜单栏上面的“虚拟机”—
>
“设置”—
>
“
Browser
”—
>
“
ok
”
注:在点击
Broweser
按钮后选择相应的光盘,然后对“
connect
”选项打个勾,点击确定(
0K
)
。
3.
在终端上挂载
cdrom
,执行以下命令:查找到相应的安装文件,如下图操作:
在
/mnt
下找到软件包的位置,在
Redhat/RPM$
下存放着的都是软件包,于是我们可以进入到
RPM$
目录下,然后用命令查找相关的软件包:
find .
—
name “bind*”
。找到后就可以进行安装,用
RPM –ivh
安装,这里不做截图。(注:不同版本的软件包放在不同的目录下,这个要自行查找)
4.
安装好所需的文件后,下面就要对其配置文件进行配置了。
DNS
的主要配置文件时
named.conf,
该配置文件存在于
/etc
目录下的,可是我们安装了
bind-chroot-9.2.4-p5-9.i386.rpm
后,
DNS
启动时读取主配置文件的路径改变了,其主要配置文件已经是在该“
/var/named/chroot/etc/named.conf
”路径下读取了,而区域文件是应该存在于“
/var/named/chroot/var/named
”目录下了。所以要注意文件的位置,否则
DNS
是跑步起来的。至于为什么有些人在
/etc
下配置
named.conf
却能让
DNS
跑起来的?请查看一下你在
/etc
下的
named.conf
是不是一个链接文件来着,该文件时链接到“
/var/named/chroot/etc/
”目录下的一个配置文件。(注:由于安装了
bind-chroot-9.2.4-p5-9.i386.rpm
,发生了路径的改变)
5.
对主配置文件的配置如下:
运行上面的命令,打开配置文件如下图所示:
说明:
1.directory
“
/var/named
”是指存放区域文件的位置,如
3
中“
.
”区域文件“
named.ca
”就是存在该路径下,其实
/var/named
的真实路径并不是
/var/named,
而是
/var/named/chroot
/var/named
,
如果有链接的话,那也是可以的,将
/var/named/chroot/var/named
下的文件链接到“
/var/named”.
2.
将原本的
127.0.0.1
修改成
DNS
服务器的
IP
地址
3.
这是配置文件自带的区域,也可以说是我们建区域的模板。
如上图所示:我们创建一个域名为
redhat.com
,其区域文件名称是
:yangzexin.redhat.com
。同时创建一个反向查找区域,其区域文件名称是:
192.168.10.in-addr.arpa
。
(注意:这两个文件的路径应该是:
/var/named/chroot/var/named
目录下)
6.
在
/var/named/chroot/var/named
目录下创建上面的两个区域文件,同时修改两个区域文件的内容。如果对区域文件的书写不是很熟悉的话,我们可以复制“
localhost.zone
”这个文件,然后将其名改为
yangzexin.redhat.com
(
注意:其名字要跟主配置文件中的名称一致
)
,至于反向查找区域的文件可以复制“
named.local
”这个文件,将其名改为
192.168.10.in-addr.arpa
。
对于“
localhost.zone
”和“
named.local
”文件的位置存放在那里呢?其实如果存放位置没有错误的话:那就是在
/var/named/chroot/var/named
目录下,
因为这两个文件也是区域配置文件,在主配置文件中可以找到相应的
file
“
named.local
”和
file
“
localhost.zone
”,如果其存放位置不是在上面所指的目录下,那么你就得在“
/
”(根目录)查找他们出来,然后将他们移到
/var/named/chroot/var/named
目录下,
这样
DNS
才能跑起来,否则总是会提示找不到相应的文件。
绿色线的:就是我们对其进行复制的文件,其存放目录就是如图所示
蓝色线的:都是配置文件里面的
file
“
XXX
”所指的文件。
红色线的:就是我们复制绿色线的文件后修改名字后得来的
7.
打开编辑
yangzexin.redhat.com
区域文件
,
即正向查找区域文件
注意:域名的后面都要加上一个“
.
”,同时修改名称服务器(
NS
)为
yangzexin.redhat.com.
再者要为其添加主机记录:
yangzexin IN A 192.168.10.5
最后还可以添加其他主机记录以及别名。
8.
打开反向查找区域文件
192.168.10.in-addr.arpa
进行编辑:
注意:在反向配置文件中要加入“
yangzexin IN A yangzexin.redhat.com.
”记住这个一定要加上去,这个也是很容易被忽略的,至于为什么请看下面第二部分“疑题解密”第
3
问。
9.
做好这些工作之后,还要做的一件事就是关闭防火墙“
service iptables stop
”,启动
DNS
服务,如下图所示:然后在
Linux
客服端的
/etc
下的
resolv.conf
文件进行配置,如下图所示:
于是现在就可以进行测试工作了:测试结果如下图所示:
10.
在
windows
下测试
Linux
所架设的
DNS
服务器
测试结果如下:
二:疑题解密
1.
为什么在启动
DNS
服务的时候,总是提示说找不到加载的文件?
答:确定区域文件的路径,上面第
4
、
5
、
6
步讲的很清楚。懂得确定文件的有效位置,这样
DNS
才能跑起来
2.
为什么在
DNS
启动后,采用
ping yangzexin.redhat.com
是可以的,而且有报文回复,可是用
nslookup
就不可以解析呢?
答:请查看你的防火墙是否关闭了。
3.
为什么在
windows
下用
nslookup
后,显示的
server
是
unknown
的?
答:请检查反向查找区域中是否有这么一条记录“
yangzexin IN A yangzexin.redhat.com.
”
三:个人总结
在架设
DNS
服务器的过程中真的碰到很多很多问题,特别是关于配置文件和区域文件的路径问题,结果就浪费了很多时间,只能自己去摸索着路径,而且并不是一时半会就了解得了得!不过最终还是懂得了。
其实如果你照着我这个实验的步骤一步一步的去做,在这个过程中你应该会碰到很多问题的,因为不同版本的文件路径有很多的差别,很多人都说没有很大差别,可是我觉得还是有差别的:例如这个实验室在
Linux as 4.0
上完成的,在没有安装
caching-nameserver
和
bind-root
时是没有哪些配置文件的,而且也是没有模板的,可能你要自己手工创建,可是一旦安装了
caching-nameserver
和
bind-root
后,就有相关的配置文件和区域文件,而且区域文件都放在正确的位置。但如果你是在
relhet-5.0
实验的话,那么你应该注意的是没有安装
caching-nameserver
是没有关系的,而其配置文件和区域文件都作为一个模板放在该路径下:
/sur/share/doc/bind-XXX/sample/etc
下和
/sur/share/doc/bind-XXX/sample/var/named
下,此时需要对里面得文件进行搬移到
/var/named/chroot/
下面相应的目录下。
测试工具:
1.Named-checkconf named.conf
检
named.conf
文件的语法等正确与否
2Named-checkzone
域名(
redhat,com
)区域文件(
yangzexin.redhat.com
)检查区域配置文件的语法等
3.tail -10 /var/log/messages
查看
DNS
启动过程中的情况
4.nslookup
工具和
host
工具:
host
域名
或者
host IP
地址
注意事项:
1.
关闭防火墙:
service iptables stop
2.
注意文件的路径问题:
named.conf
文件一般放在
/var/named/chroot/etc/
下,如果在
/etc/
下看到
named.conf
的话,那么要注意其是不是链接到以上那个目录,如果不是的话,那么应该在
/var/named/chroot/etc/
下配置
named.conf,
至于区域文件是放在
/var/named/chroot/var/named/
下的,而不是放在
/var/named
下,即使是放在
/var/named
下的,那也是链接到
/var/named/chroot/var/named/
。所以最终配置文件和区域文件都是在
/var/named/chroot/etc/
和
/var/named/chroot/var/named/
下起效果的。
3.
查找
named.conf
模板等,其实在
/usr/share/doc/bind-9.24/sample/named/etc
下和
/usr/share/doc/bind-9.24/sample/named/var/named
下可以找到相应的模板,如果找不到的话,那么查找有没有安装
caching-namedserver-*
这个安装包,如果安装了的话,其实
/etc/named.conf
应该可以用了。而且她已经直接链接到
/var/named/chroot/etc/
下。
4.
配置完
DNS
后,要注意的是在客服端需要修改
/etc/resolv.conf
这个文件,在里面添加“
nameserver IP
地址”
转载于:https://blog.51cto.com/yangzexin07/227871