首先我们看看和DNS配置有关的两个配置文件:
[root@diamond55 root]# cat /etc/host.conf
# 查看此文件,它是转换程序控制文件,该文件告诉转换程序使用哪些服务以及按什么顺序进行查询。
order hosts,dns
# 以上是正常标准配置,特殊需要我们可以更改如下(并不是必需):
order dns hosts #先使用DNS,再使用HOSTS文件 解析主机名。
multi off #hosts文件中所指定的每一台主机只有一个IP地址,反之ON。
nospoof on #要检查IP地址欺骗。
alert on #若检查到IP欺骗,将警告信息进行记录。
trim brus.net #解析器会先把被查找域名中的BRUS.NET去掉,再从/etc/hosts中查找匹配的主机。
[root@diamond55 root]# cat /etc/resolv.conf
# 查看转换程序配置文件,此文件指明使用哪一个DNS服务器,客户端配置必需。
nameserver xxx.xxx.xxx.xxx

#安装和检查BIND域名服务器:
[root@diamond55 root]# rpm -qa|grep bind
bind-9.2.1-16
redhat-config-bind-1.9.0-13
bind-utils-9.2.1-16
ypbind-1.11-4
[root@diamond55 RPMS]# rpm -qa|grep name
caching-nameserver-7.2-7
# 以上是检查到BIND在本机的安装情况和得到的信息,如果未安装,按以下步骤:
[root@diamond55 root]# mount /mnt/cdrom/
# 挂载光驱,需要安装光盘第一张。
[root@diamond55 root]# cd /mnt/cdrom/RedHat/RPMS/
# 进入光盘中RPM包所在路径。
[root@diamond55 RPMS]# rpm -ivh bind-9.2.1-16.i386.rpm
[root@diamond55 RPMS]# rpm -ivh bind-utils-9.2.1-16.i386.rpm
[root@diamond55 RPMS]# rpm -ivh redhat-config-bind-1.9.0-13.norach.rpm
# 安装以上三个RPM包。
[root@diamond55 RPMS]# cd; umount /mnt/cdrom/
# 卸载光驱挂载,放入第二张安装光盘。
[root@diamond55 root]# mount /mnt/cdrom/
# 挂载光驱,需要第二张安装光盘。
[root@diamond55 root]# cd /mnt/cdrom/RedHat/RPMS/
# 进入RPM包所在路径。
[root@diamond55 RPMS]# rpm -ivh caching-nameserver-7.2-7.noarch.rpm
# 安装此RPM包。
# 以下启动BIND服务:
[root@diamond55 RPMS]# service named start
# 立即启动BIND服务,成功。
[root@diamond55 RPMS]# pstree|grep named
|-named
# 检查服务运行,可以看到NAMED服务正在运行。
[root@diamond55 RPMS]# rndc status
number of zones: 4
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
server is up and running
# 以上是查看服务器运行状态的命令和得到的信息。
###############################################################################################
#以下我们可以查看BIND的一些配置文件:
[root@diamond55 RPMS]# cat /etc/named.conf
# 查看主配置文件 /etc/named.conf
// generated by named-bootconf.pl

options {
directory "/var/named"; #服务器配置文件的工作目录。
/*
* 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
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
}; #定义RNDC命令使用的控制通道。
zone "." IN {
type hint;
file "named.ca";
};

zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
}; #定义LOCALHOST正向解析区声明。

zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
}; #定义LOCALHOST正向解析区声明。

include "/etc/rndc.key";
# 以上是BING默认配置文件,是一个唯高速缓存服务器的配置,如只需唯高速缓存服务器,无需修改。

[root@diamond55 RPMS]# grep -v ";" /var/named/named.ca
# 查看根区域指向文件 /var/named/named.ca 。
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
# 以上为13个根域服务器指向,可到 ftp.rs.internic.net 下载 /domain/named.boot 文件来更新。
[root@diamond55 RPMS]# cat /var/named/localhost.zone
# 查看本地区域文件(正向解析文件 /var/named/localhost.zone)。
$TTL 86400
$ORIGIN localhost.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum

1D IN NS @
1D IN A 127.0.0.1
[root@diamond55 RPMS]# cat /var/named/named.local
# 查看本地区域文件(反向解析文件 /var/named/localhost.zone)。
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.

1 IN PTR localhost.
[root@diamond55 RPMS]# rndc /var/named/named_dump.db
# 也可以导出唯高速缓存服务器运行状况来查看。
#按以往惯例,在这里需要大家掌握的是知道这些配置文件的位置和作用,并不一定所由的文件都需要配置。
###############################################################################################
#下面我们看一下典型的域名服务器配置方法:
#一:配置主域名服务器。
[root@diamond55 root]# vi /etc/named.conf
# 编辑主配置文件,并在其中添加区声明,以下我们直接查看配置好的一个例子:
[root@diamond55 root]# tail /etc/named.conf
# 查看一个编辑好的配置文件,大家可以参考这个文件进行配置:
zone "douyun.com" {
type master; #指定了MASTER类型,即主域名服务器类型。
file "douyun.com.zone";
};
zone "1.168.192.in-addr.arpa" { #如果需要反向解析,可以在这里描述。
type master;
file "1.168.192.in-addr.arpa.zone";
};

[root@diamond55 root]# vi /var/named/douyun.com.zone
# 编辑创建正向解析配置文件,以下我们直接查看配置好的一个例子:
[root@diamond55 root]# cat /var/named/douyun.com.zone
# 查看一个编辑好的配置文件,大家可以参考这个文件进行配置:
$TTL 86400
@ IN SOA diamond55.douyun.com. brus.douyun.com (
2 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttl
)


IN NS 192.168.1.216


diamond55 IN A 192.168.1.216

www IN CNAME diamond55
[root@diamond55 named]# cat 1.168.192.in-addr.arpa.zone
# 此为反向解析文件的例子,可以参考配置。

$TTL 86400
@ IN SOA diamond55.douyun.com. douyun.com (
2 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttk
)


@ IN NS diamond55.douyun.com.

216 IN PTR diamond55.douyun.com.
[root@diamond55 root]# service named restart
# 文件配置好之后一定要重新启动服务使其生效。
[root@diamond55 root]# rndc reload
# 或者使用此命令,其作用也使重新加载服务,和 service named restart 的作用一样。
###############################################################################################
#验证DNS。
[root@diamond55 named]# cat /etc/resolv.conf
# 检查本机域名服务器指向。
nameserver 192.168.1.216
#一:HOST命令
[root@diamond55 named]# host diamond55.douyun.com
# 正向查询主机地址。
diamond55.douyun.com has address 192.168.1.216
[root@diamond55 named]# host 192.168.1.216
# 反向查询域名。
216.1.168.192.in-addr.arpa domain name pointer diamond55.douyun.com.
[root@diamond55 named]# host -t NS douyun.com
douyun.com name server 192.168.1.216.douyun.com.
[root@diamond55 named]# host -t SOA douyun.com
douyun.com SOA diamond55.douyun.com. brus.douyun.com.douyun.com. 2 28800 7200 604800
86400
[root@diamond55 named]# host -t MX douyun.com
# 查询不同类型的资源记录配置。
[root@diamond55 named]# host -l douyun.com.
# 列出整个域信息。
douyun.com SOA diamond55.douyun.com. douyun.com.douyun.com. 2 28800 7200 604800
86400
douyun.com name server 192.168.1.216.douyun.com.
diamond55.douyun.com has address 192.168.1.216
[url]www.douyun.com[/url] is an alias for diamond55.douyun.com.
douyun.com SOA diamond55.douyun.com. brus.douyun.com.douyun.com. 2 28800 7200 604800
86400
[root@diamond55 named]# host -a diamond55.douyun.com
# 列出与一个主机名相关的资源记录的详细信息。
Trying "diamond55.douyun.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12828
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;diamond55.douyun.com. IN ANY

;; ANSWER SECTION:
diamond55.douyun.com. 86400 IN A 192.168.1.216

;; AUTHORITY SECTION:
douyun.com. 86400 IN NS 192.168.1.216.douyun.com.

Received 83 bytes from 192.168.1.216#53 in 399 ms
#二:NSLOOKUP命令
[root@diamond55 named]# nslookup
Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
> diamond55.douyun.com #正向查询主机名。
Server: 192.168.1.216
Address: 192.168.1.216#53

Name: diamond55.douyun.com
Address: 192.168.1.216 #反向查询
> 192.168.1.216
Server: 192.168.1.216
Address: 192.168.1.216#53

216.1.168.192.in-addr.arpa name = diamond55.douyun.com.
> set all #显示当前设置的所有数值
Default server: 192.168.1.216
Address: 192.168.1.216#53

Set options:
novc nodebug nod2
search recurse
timeout = 0 retry = 2 port = 53
querytype = A class = IN
srchlist =
> set type=any
> redratlinux9.douyun.com
Server: 192.168.1.216
Address: 192.168.1.216#53

** server can't find redratlinux9.douyun.com: NXDOMAIN
> [url]www.douyun.com[/url]
Server: 192.168.1.216
Address: 192.168.1.216#53

[url]www.douyun.com[/url] canonical name = diamond55.douyun.com.
###############################################################################################
#配置DNS实现简单负载均衡:
[root@diamond55 named]# vi /var/named/douyun.com.zone
# 编辑正向区域文件,添加以下内容「即 多条A记录」。
diamond55 IN A 192.168.1.216
diamond55 IN A 192.168.1.217
diamond55 IN A 192.168.1.218
[root@diamond55 named]# vi /var/named/1.168.192.in-addr.arpa.zone
# 编辑反向查询文件,添加以下内容『即 多条反向记录』。
216 IN PTR diamond55.douyun.com.
217 IN PTR diamond55.douyun.com.
218 IN PTR diamond55.douyun.com.
[root@diamond55 named]# rndc reload
# 重新加载服务以使得配置文件生效。
[root@diamond55 named]# host diamond55.douyun.com
diamond55.douyun.com has address 192.168.1.217
diamond55.douyun.com has address 192.168.1.218
diamond55.douyun.com has address 192.168.1.216
[root@diamond55 named]# host diamond55.douyun.com
diamond55.douyun.com has address 192.168.1.218
diamond55.douyun.com has address 192.168.1.216
diamond55.douyun.com has address 192.168.1.217
[root@diamond55 named]# host diamond55.douyun.com
diamond55.douyun.com has address 192.168.1.216
diamond55.douyun.com has address 192.168.1.217
diamond55.douyun.com has address 192.168.1.218
# 三次结果可以看到查询到不同解析顺序。
###############################################################################################
#配置域名转发。
#虽然域名服务器遇到无法解析的域名会交给根域服务器进行解析,但是会产生比较远的通讯距离,所以可以配置转发器。
[root@diamond55 root]# vi /etc/named.conf
# 编辑主配置文件,添加如下内容:
options (
forwarder {61.134.1.9; 61.134.1.4; };
);
# 以上内容代表如果域名服务器无法解析时,将请求交由61.134.1.9、61.134.1.4 。
###############################################################################################
#辅助DNS
[root@diamond55 root]# vi /etc/named.conf
# 编辑主配置文件,编辑如下内容:
zone "douyun.com" {
type slave; #从类型。
file "douyun.com.zone";
masters {192.168.1.216;}; #主DNS的地址。
};
[root@diamond55 root]# vi /etc/resolv.conf
# 编辑此文件,作为从DNS服务器,指明主DNS的地址:
nameserver = 192.168.1.216