使用bind配置DNS服务器---初级篇
首先安装bind ,使用Yum或者rpm包安装。我使用Yum的安装办法,将DNS需要的组件一次性全部装好。安装好之后,使用rpm -ql |grep bind 查看都装了哪些文件。
找到bind的配置文件,/etc/named.conf,在修改配置文件值钱,有一些选项参数需要先了解清楚。
// 后面接的都是注释语句,类似于普通配置文件中的 #
options 后面接的是全局配置选项,dns全局参数都在这里配置。
logging 定义日志的记录范围,一般默认不修改。
zone 定义一个区域声明,比如区域文件名,类型等。
好,了解这些之后,我们根据自己的需求来修改named.conf配置文件。
//
// named.conf
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { any; }; // 开启侦听端口53,接受任意IP连接
listen-on-v6 port 53 { ::1; };
directory "/var/named";//这里是目录正向反向区域都创建在这个目录下
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { 0.0.0.0/0; }; //// 允许任意IP查询这里也可以修改为any如果不修改会在nslookup出现错误refused被拒绝
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone “jxcia.com” IN { // 添加正向解析区域信息
type master ;
file "jxcia.com.zone";
};
zone "1.168.192.in-addr.arpa" IN { // 添加反向解析区域信息
type master;
file "192.168.1.zone";
};
这样添加好了之后,保存退出。
注意:在named.conf中,每一行最后都要有;(冒号结尾),如果没有,启动的时候会有提示信息的。启动会失败。
下面到/var/named/目录下面添加正向和反向区域解析文件。在添加区域文件的前提,同样有一些参数需要理解下。
;在这里,这个分号是注释符,相当于前面的 // 号,后面跟的都是注释语句。
@ 表示是在当前域,就是区域文件定义的那个域。
() 表示允许数据跨行,一般用的不多。
* 用在name字段的通配符。
资源管理器 简称RR :
基本格式 : [ name ] [ ttl ] [ class ] type data
1、name 字段,可以是相对域名或者全域名,也可以是单独某台主机的名字。
2、ttl timed to live,生命值,一般忽略不写。
3、class 字段,用于指定网络类型,可选的值有IN、CH和HS,其中IN (intelnet)是广泛使用的一种
4、type 字段 , 用来指定RR资源的类型,常用的有如下几种:
区记录: SOA (start of authority ) SOA标记,一个授权区定义的开始。
NS (name server )标记区域的域名服务器以及授权子域
基本记录: A ( address ) A记录,将主机名转换成IP地址,一个主机只有一个A记录
PTR (poin teR )与A记录相反,将IP转换成主机名,反向解析操作
MX (mail exchanger) 邮件交换记录,定义邮件服务器的域名
了解这些,现在开始建立正常和反向解析区域文件了。首先我们根据上面named.conf配置里知道,区域配置文件都在/var/named/目录下面。进入到该目录之后:
新建区域文件 vim jxcia.com.zone //文件的名字一定要和你前面配置文件里一样
$TTL 600
@ IN SOA mail.jxcia.com. root.mail.jxcia.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS mail.jxcia.com. //根据上面开始的提示,这个是定义区的域名服务器。
mail IN A 192.168.1.210 //设置A记录,mail主机对应的IP地址
www IN CNAME mail // 设置一个别名,方便以后搭建www服务器
OK。正向解析区域文件就建好了,保存退出,下面同样的办法建立反向解析文件。
vim 192.168.1.zone
$TTL 600
@ IN SOA mail.jxcia.com. root.mail.jxcia.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS mail.jxcia.com.
210 IN PTR mail.jxcia.com. //做一个反向解析指针。
OK。同样,一个简单的反向解析文件也做好了,需要其他信息就让里面加就可以了。这样之后,所有的配置文件都配置好了,启动DNS服务,
[root @ mail ~] # service named restart //我习惯用restart
如果正常没问题的话,会出现如下信息。
Stopping named : [ OK ]
Starting named : [ OK ]
这样我们的DNS服务器就正常启动起来了,如果有问题,则根据提示语句找到相应的问题。
服务器搭建好了,下面进行的就是测试咯,啦啦啦,终于搭建完了。下面开始测试DNS服务器。测试服务器之前有个地方别忘记设置了,那就是客户端的DNS,也就是把/etc/resolv.conf下面的name server改成自己这服务器的IP了。然后重启网络服务。
测试DNS最简单的命令就是 nslookup了,下面使用我们的nslookup测试我们的DNS服务器看是否能正常解析。
[root @mail ~]# nslookup mail.jxcia.com
server : 192.168.1.210
address: 192.168.1.210#53
Name: mail.jxcia.com
address : 192.168.1.210
如果出现这个,那说明我们的服务器正常运行了,但是事实并不是这么美好的,你在测试的时候,很有可能会得到这样的结果:
server can't find mail.jxcia.com.jxcia.com :SERVFAIL
根据提示是无法找到对应的区域。遇到问题了,那就去解决,首先看错误提示,然后再看日志,发现问题应该是在找不到配置文件,但是明明都配置好了的啊。来回对照了好几遍都没发现问题啊,百思不得其解,最后根据提示不停的百度谷歌,最后,黄天不负有心人,终于让我找到了,原来是/var/named/目录下面的配置文件的所属组的问题,根据ll,可以看出系统自动生成的文件所有者是root,但是所属组是named。而我们自己创建的文件,所有者和所属组都是属于root,所以named服务无法读取我们的配置文件,造成无法正常访问。把权限和宿主改过来重启服务就OK了。
到目前为止已经可以正常运行了。