在LINUX中,域名服务是由BIND (Berkeley Internet Name Domain,柏克莱网间域名)软件实现的.BIND是一个C/S系统,其客户端称为转换程序(resolver),它负责产生域名信息的查询,将这类信息发送给服务器端.BIND的服务器端是一个称为named的守护进程.它负责回答转换程序的查询.作为DNS客户端,第一步是在用户的计算机上配置客户端程序(转换程序).即向域名服务器获得域名解析/反解析服务.
一.DNS的组成.
1)域名或资源记录(Domain Name and Resource Records):用来指定结构化的域名空间和相应的数据.
2)域名服务器.(Name Server):它是一个服务器端的程序,包括域名空间树结构的部分信息.
3)解析器(Resolves):它是客户端向域名服务器提交解析请求的程序.
二.DNS的分类
1.Master Server(主服务器)
2.Slave Server(辅助服务器)
3.Caching only Server(缓存服务器)
4.Forwarder Server(转发服务器)
三.BIND的安装
通过下面的命令
这里是安装好了.
2.DNS的启动
有两种
1)使用图形化方式启动:选择"应用程序|系统设置|服务器设置|服务.
选中named可以执行关闭,启动和重新启动等操作.
2)在终端窗口用命令进行启动
3.BIND常用的测试命令
有3种:
nslookup:DNS查询命令
dig:DNS信息收集命令
host:域名检索命令
 
四.配置文件和相关概念
DNS主要的配置文件有4个:
1)主配置文件:named.conf,路径为/etc/named.conf.它用来设置全局参数.调配正向解析数据库文件和逆向数据库文件.
2)正向解析数据库文件:localhost.zone,路径为/var/named/localhost.zone.该文件用来将域名转换成IP地址,是区域文件的一部分.
3)逆向解析数据库文件:named.local,路径为/var/named/named/local.该文件用来将IP地址转换成域名,也是区域文件的一部分.
4)根域名服务器指向文件:named.ca,路径为/var/named/named.ca.它用于缓存服务器的初始配置.
 
下面首先来看转换程序控制文件---host.conf
文件/etc/host.conf是用来控制本地转换程序设置的文件.该文件夹告诉转换程序使用哪些服务和按照什么顺序进行查询.
看文件:
#/etc/host.conf
order bind hosts :还有一个是nis
multi off 与host查询一起用,用来确定一台主机是否在/etc/hosts文件中.
nospoof on:若在反向解析找出与指定的地址匹配的主机名,则对返回的地址进行解析以确认它确实与你查询的地址相匹配.为了防止骗取IP地址,通过指定nospoof on来允许此功能
alert on:开启则任何试图骗取IP地址的行为都通过syslog工具进行记录.
trim jamond.net:以域名为参数,在查找名字前先删除此域名,再从文件/etc/hosts查找匹配的主机名.
下面看转换程序配置文件--resolv.conf
当配置转换程序使用BIND域名服务器查询主机时,必须告诉转换程序使用哪一个域名服务器.用来完成这项任务的工具就是/etc/resolv.conf文件.
看配置文件例子:
#/etc/resolv.conf
nameserver 192.168.1.1  列出域名服务器的IP地址,最多可以出现三个
nameserver 192.168.1.2
domain dongguan.com  定义默认的域名
search haida.dongguan.com donggaun.com 指定域名搜索表,最多六个域名参数
options nochecknames rotate 常用的选项有:rotate:打开客户端轮询查询选项.当nameserver中定义多个域名服务器时,进行轮询查询;nochecknames:禁止检测被查询的域名是否符合RFC952,当需要使用带有下划线"_"的域名时,需要该项.;inet6:可以使解析器查询ipv6.
 
下面看主配置文件夹/etc/named.conf
//
// named.conf for Red Hat caching-nameserver
//
options { //定义服务器区配置文件的工作目录
 directory "/var/named";
 dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
 /*
  * If there is a firewall between you and nameservers you want
  * to talk to, you might need to uncomment the query-source
  * directive below.  Previous versions of BIND always asked
  * questions using port 53, but BIND 8.1 uses an unprivileged
  * port by default.
  */
  // query-source address * port 53;
};
//
// a caching only nameserver config
// 定义rndc命令使用的控制通道
controls {
 inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
//定义根区声明
zone "." IN {
 type hint;
 file "named.ca";
};
zone "localdomain" IN {
 type master;
 file "localdomain.zone";
 allow-update { none; };
};
//定义正向解析区
zone "localhost" IN {
 type master;
 file "localhost.zone";
 allow-update { none; };
};
//定义反向解析区
zone "0.0.127.in-addr.arpa" IN {
 type master;
 file "named.local";
 allow-update { none; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
        type master;
 file "named.ip6.local";
 allow-update { none; };
};
zone "255.in-addr.arpa" IN {
 type master;
 file "named.broadcast";
 allow-update { none; };
};
zone "0.in-addr.arpa" IN {
 type master;
 file "named.zero";
 allow-update { none; };
};
include "/etc/rndc.key";
DNS BIND区域类型
master 主DNS区域
slave 从DNS区域,由主DNS区域控制
stub 与从区域类似,但只保存DNS服务器的名字
forward  将任何询问请求转发给其它服务器
hint 根DNSINTERNET服务器集
 
正向解析文件/var/named/localhost.zone
$TTL 86400  //864000秒=1天
//设置SOA RR
@  IN SOA @       root (
     42  ; serial (d. adams)
     3H  ; refresh
     15M  ; retry
     1W  ; expiry
     1D )  ; minimum
//设置NS RR
         IN NS  @
//设置A RR
   IN A  127.0.0.1
  IN AAAA  ::1
逆向解析文件/var/named/named.local
$TTL 86400
@   IN  SOA  localhost. root.localhost. (
                                                        1997022700;Serial
                                                         28800;Refresh
                                                         14400;Retry
                                                         3600000;Expire
                                                         86400);Minimum
                              IN        NS         localhost.
//设置PTR RR
1                     IN     PTR    localhost.
 
先来看区文件:
1资源记录
基本格式:[name] [ttl] IN type rdata
name是以下:"."是根域;
@:是默认域,可以在文件中使用$ORIGIN domain 来说明默认域
标准域名:或是以"."结束的域名,或是一个相对域名
空:该记录适用于最后一个带有名字的域对象.
ttl:寿命字段.它以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度.通常该字段为空,表示采用SOA中的最小TTL值.
IN:将该记录标识为一个INTERNET DNS资源记录
type:有A CNAME HINFO MX NS PTR SOA
rdata:指定与这个资源记录有关的数据.
 
最后来看DNS服务器的配置
由于本机是新安装的,先来修改下主机名
先来修改network文件.这里主机名是完整域名.
 
然后是修改下HOSTS.不然开机时会经常有提示找不到主机名对应的网络地址.
这里是主域名的配置,指定正向解析区域声明.类型为主域名服务器.定义正向解析文件.这里是默认的解析文件,可修改.反向解析区同样.
这里还设置了别名.
说明"@"符号用在SOA记录中,代表区域的域名.任何没有以点号结尾的主机名或域名会自动追加域名.如haida后面没有点号,会自动追加为haida.dongguan.com
设置反向解析.
然后重新启动.
启动后来进行测试了.
重新启动服务或
#rndc reload
#rndc status
用nslookup,反向解析成功.查询域名haida.dongguan.com.
反向查询域名xinxi.dongguan.com.
正向查询域名haida.dongguan.com
正向查询域名xinxi.dongguan.com
显示当前设置的所有数值
查看域dongguan.com域的NS资源记录配置
查看域dongguan.com域的别名资源记录配置
查看反向区的所有设置情况.
 
有关更详细的内容请看WIN2003的配置.这里相同的就不说明那么清楚了.