使用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了。

到目前为止已经可以正常运行了。

相关推荐