#首先我们看看和DNS配置有关的两个配置文件:
[root@redhatlinux9 root]# cat /etc/host.conf
# 查看此文件,它是转换程序控制文件,该文件告诉转换程序使用哪些服务以及按什么顺序进行查询。
order hosts,bind
# 以上是正常标准配置,特殊需要我们可以更改如下(并不是必需):
order bind hosts #先使用BIND(DNS),再使用HOSTS文件 解析主机名。
multi off #hosts文件中所指定的每一台主机只有一个IP地址,反之ON。
nospoof on #要检查IP地址欺骗。
alert on #若检查到IP欺骗,将警告信息进行记录。
trim brus.net #解析器会先把被查找域名中的BRUS.NET去掉,再从/etc/hosts中查找匹配的主机。
[root@redhatlinux9 root]# cat /etc/resolv.conf
# 查看转换程序配置文件,此文件指明使用哪一个DNS服务器,客户端配置必需。
nameserver 61.134.1.9
# 以上是基本配置,本机使用的DNS服务器地址是 61.134.1.9 。
###############################################################################################
#安装和检查BIND域名服务器:
[root@redhatlinux9 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@redhatlinux9 RPMS]# rpm -qa|grep name
caching-nameserver-7.2-7
# 以上是检查到BIND在本机的安装情况和得到的信息,如果未安装,按以下步骤:
[root@redhatlinux9 root]# mount /mnt/cdrom/
# 挂载光驱,需要安装光盘第一张。
[root@redhatlinux9 root]# cd /mnt/cdrom/RedHat/RPMS/
# 进入光盘中RPM包所在路径。
[root@redhatlinux9 RPMS]# rpm -ivh bind-9.2.1-16.i386.rpm
[root@redhatlinux9 RPMS]# rpm -ivh bind-utils-9.2.1-16.i386.rpm
[root@redhatlinux9 RPMS]# rpm -ivh redhat-config-bind-1.9.0-13.norach.rpm
# 安装以上三个RPM包。
[root@redhatlinux9 RPMS]# cd; umount /mnt/cdrom/
# 卸载光驱挂载,放入第二张安装光盘。
[root@redhatlinux9 root]# mount /mnt/cdrom/
# 挂载光驱,需要第二张安装光盘。
[root@redhatlinux9 root]# cd /mnt/cdrom/RedHat/RPMS/
# 进入RPM包所在路径。
[root@redhatlinux9 RPMS]# rpm -ivh caching-nameserver-7.2-7.noarch.rpm
# 安装此RPM包。
# 以下启动BIND服务:
[root@redhatlinux9 RPMS]# service named start
# 立即启动BIND服务,成功。
[root@redhatlinux9 RPMS]# pstree|grep named
|-named
# 检查服务运行,可以看到NAMED服务正在运行。
[root@redhatlinux9 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@redhatlinux9 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@redhatlinux9 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@redhatlinux9 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@redhatlinux9 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@redhatlinux9 RPMS]# rndc /var/named/named_dump.db
# 也可以导出唯高速缓存服务器运行状况来查看。
#按以往惯例,在这里需要大家掌握的是知道这些配置文件的位置和作用,并不一定所由的文件都需要配置。
###############################################################################################
#下面我们看一下典型的域名服务器配置方法:
#一:配置主域名服务器。
[root@redhatlinux9 root]# vi /etc/named.conf
# 编辑主配置文件,并在其中添加区声明,以下我们直接查看配置好的一个例子:
[root@redhatlinux9 root]# tail /etc/named.conf
# 查看一个编辑好的配置文件,大家可以参考这个文件进行配置:
zone "brus.net" {
type master; #指定了MASTER类型,即主域名服务器类型。
file "brus.net.zone";
};
zone "1.168.192.in-addr.arpa" { #如果需要反向解析,可以在这里描述。
type master;
file "1.168.192.in-addr.arpa.zone";
};
[root@redhatlinux9 root]# vi /var/named/brus.net.zone
# 编辑创建正向解析配置文件,以下我们直接查看配置好的一个例子:
[root@redhatlinux9 root]# cat /var/named/brus.net.zone
# 查看一个编辑好的配置文件,大家可以参考这个文件进行配置:
$TTL 86400
@ IN SOA redhatlinux9.brus.net. brus.brus.net (
2 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttl
)
IN NS 192.168.1.216
redhatlinux9 IN A 192.168.1.216
www IN CNAME redhatlinux9
[root@redhatlinux9 named]# cat 1.168.192.in-addr.arpa.zone
# 此为反向解析文件的例子,可以参考配置。
$TTL 86400
@ IN SOA redhatlinux9.brus.net. brus.brus.net (
2 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttk
)
@ IN NS redhatlinux9.brus.net.
216 IN PTR redhatlinux9.brus.net.
[root@redhatlinux9 root]# service named restart
# 文件配置好之后一定要重新启动服务使其生效。
[root@redhatlinux9 root]# rndc reload
# 或者使用此命令,其作用也使重新加载服务,和 service named restart 的作用一样。
###############################################################################################
#验证DNS。
[root@redhatlinux9 named]# cat /etc/resolv.conf
# 检查本机域名服务器指向。
nameserver 192.168.1.216
#一:HOST命令
[root@redhatlinux9 named]# host redhatlinux9.brus.net
# 正向查询主机地址。
redhatlinux9.brus.net has address 192.168.1.216
[root@redhatlinux9 named]# host 192.168.1.216
# 反向查询域名。
216.1.168.192.in-addr.arpa domain name pointer redhatlinux9.brus.net.
[root@redhatlinux9 named]# host -t NS brus.net
brus.net name server 192.168.1.216.brus.net.
[root@redhatlinux9 named]# host -t SOA brus.net
brus.net SOA redhatlinux9.brus.net. brus.brus.net.brus.net. 2 28800 7200 604800
86400
[root@redhatlinux9 named]# host -t MX brus.net
# 查询不同类型的资源记录配置。
[root@redhatlinux9 named]# host -l brus.net.
# 列出整个域信息。
brus.net SOA redhatlinux9.brus.net. brus.brus.net.brus.net. 2 28800 7200 604800
86400
brus.net name server 192.168.1.216.brus.net.
redhatlinux9.brus.net has address 192.168.1.216
www.brus.net is an alias for redhatlinux9.brus.net.
brus.net SOA redhatlinux9.brus.net. brus.brus.net.brus.net. 2 28800 7200 604800
86400
[root@redhatlinux9 named]# host -a redhatlinux9.brus.net
# 列出与一个主机名相关的资源记录的详细信息。
Trying "redhatlinux9.brus.net"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12828
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;redhatlinux9.brus.net. IN ANY
;; ANSWER SECTION:
redhatlinux9.brus.net. 86400 IN A 192.168.1.216
;; AUTHORITY SECTION:
brus.net. 86400 IN NS 192.168.1.216.brus.net.
Received 83 bytes from 192.168.1.216#53 in 399 ms
#二:NSLOOKUP命令
[root@redhatlinux9 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.
> redhatlinux9.brus.net #正向查询主机名。
Server: 192.168.1.216
Address: 192.168.1.216#53
Name: redhatlinux9.brus.net
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 = redhatlinux9.brus.net.
> 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.brus.net
Server: 192.168.1.216
Address: 192.168.1.216#53
** server can't find redratlinux9.brus.net: NXDOMAIN
> www.brus.net
Server: 192.168.1.216
Address: 192.168.1.216#53
www.brus.net canonical name = redhatlinux9.brus.net.
###############################################################################################
#配置DNS实现简单负载均衡:
[root@redhatlinux9 named]# vi /var/named/brus.net.zone
# 编辑正向区域文件,添加以下内容「即 多条A记录」。
redhatlinux9 IN A 192.168.1.216
redhatlinux9 IN A 192.168.1.217
redhatlinux9 IN A 192.168.1.218
[root@redhatlinux9 named]# vi /var/named/1.168.192.in-addr.arpa.zone
# 编辑反向查询文件,添加以下内容『即 多条反向记录』。
216 IN PTR redhatlinux9.brus.net.
217 IN PTR redhatlinux9.brus.net.
218 IN PTR redhatlinux9.brus.net.
[root@redhatlinux9 named]# rndc reload
# 重新加载服务以使得配置文件生效。
[root@redhatlinux9 named]# host redhatlinux9.brus.net
redhatlinux9.brus.net has address 192.168.1.217
redhatlinux9.brus.net has address 192.168.1.218
redhatlinux9.brus.net has address 192.168.1.216
[root@redhatlinux9 named]# host redhatlinux9.brus.net
redhatlinux9.brus.net has address 192.168.1.218
redhatlinux9.brus.net has address 192.168.1.216
redhatlinux9.brus.net has address 192.168.1.217
[root@redhatlinux9 named]# host redhatlinux9.brus.net
redhatlinux9.brus.net has address 192.168.1.216
redhatlinux9.brus.net has address 192.168.1.217
redhatlinux9.brus.net has address 192.168.1.218
# 三次结果可以看到查询到不同解析顺序。
###############################################################################################
#配置域名转发。
#虽然域名服务器遇到无法解析的域名会交给根域服务器进行解析,但是会产生比较远的通讯距离,所以可以配置转发器。
[root@redhatlinux9 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@redhatlinux9 root]# vi /etc/named.conf
# 编辑主配置文件,编辑如下内容:
zone "brus.net" {
type slave; #从类型。
file "brus.net.zone";
masters {192.168.1.216;}; #主DNS的地址。
};
[root@redhatlinux9 root]# vi /etc/resolv.conf
# 编辑此文件,作为从DNS服务器,指明主DNS的地址:
nameserver = 192.168.1.216