Linux
(
CentOS 5.4 Linux
) 服务器配置之
D
NS
服务器配置应用
域名系统(DNS)是实现名称解释的一种解决方案,也是目前普遍使用的名称解析方案。在Linux中,DNS服务器是基于BIND软件并通过配置
/etc和/var/named目录中的相关文件,使用守护进程named,为网络中的客户机提供主机名与IP地址之间的解析服务。
安装DNS服务器,首先查看是否已经安装了DNS服务器,使用命令【rpm -qa | gerp bind】(Linux中的DNS服务器是通过BIND软件来实现的)
BIND系统包含的软件包括:
Ø
Bind-* :DNS名称服务器软件。
Ø
Bind-devel-* :DNS开发工具,不是必需的。
Ø
Bind-utils-*: dig、host一级nslookup等DNS测试工具.
Ø
Caching-nameserver-*:缓存DNS服务器的基本配置文件,包括样本文件/etc/named.Conf和/var/named/localhost.Zone文件。
Ø
Systme-config-bind-*:GUI DNS配置工具。
把CentOS 5.4安装光盘放入光驱中,在终端输入命令挂载光驱:mount /dev/cdrom /mnt/cdrom
进入光盘的CentOS目录(cd /mnt/cdrom/centos),在终端安装如下软件包。(另外也可以使用yum安装。)
本文使用yum安装:yum install bind* 然后yum install
caching-nameserver*.
这些是必须要安装的,如果安装了前者没有安装后者,使用service named start命令,则会发生这样的错误:
Locating /var/named/chroot//etc/named.conf failed:
配置主DNS服务器
配置DNS服务器可以通过修改DNS配置文件来实现,DNS服务器的配置文件主要有以下几个:
/etc/named.conf ...............DNS服务器的全局配置文件
/etc/named.rfc1912.zones ..............DNS服务器的区域配置文件
/var/named/named.ca ............指向根域名服务器的指示文件
/var/named/named.loal ............用于本地回环地址解析的文件
/var/named/localhost.zone ..............用于本地回环地址解析的文件
/var/named/domainname.zone .............用户建立的本地主机区域数据库文件
DNS主配置文件有两个,一个全局配置文件,一个是区域配置文件。全局配置文件为/var/named/chroot/etc/named.caching-nameserver.conf ;区域配置文件为/var/named/chroot/etc/named.rfc1912.zones。
如果使用yum 安装,安装的软件包主要有:
bind-devel-9.3.6-4.P1.el5_4.2
ypbind-1.19-12.el5
bind-9.3.6-4.P1.el5_4.2
bind-libbind-devel-9.3.6-4.P1.el5_4.2
bind-utils-9.3.6-4.P1.el5_4.2
bind-chroot-9.3.6-4.P1.el5_4.2
bind-libs-9.3.6-4.P1.el5_4.2
bind-sdb-9.3.6-4.P1.el5_4.2
caching-nameserver-9.3.6-4.P1.el5_4.2
主配置文件named.conf的配置
首先进入
/var/named/chroot/etc
/目录,主配置文件named.Conf就在这个目录下进行配置。
由于安装了以上的软件包,这个目录下就默认会生成一个named.conf文件,但这个named.conf文件只是个解释文档,所以我们要通过以下命令来把named.conf文件的模板拷贝一份。命令如下:
# cp -p named.caching-nameserver.conf named.conf
Named.conf文件的的修改如下(红色为需要修改的地方):
options {
listen-on port 53 {
any
; };
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";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query {
any
; };
allow-query-cache { localhost; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients
{
any
; };
match-destinations {
any
; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
在此目录下区域配置文件(named.rfc1912.zones)添加如下内容(根据自身的情况):
zone "guoguang.com" {
type master;
file "guoguang.com";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "192.168.1.rev";
};
配置正反解析文件
正反解文件都在相同目录下,由于安装了chroot包后,所以配置正反解文件要到/var/named/chroot/var/named/目录下,而且在此目录下也有正反解的模板文件。正向解析文件的模板是:localdomain.zone;反向解析文件的模板是:named.local。
首先进入/var/named/chroot/var/named/目录下,使用命令分别复制正反向的模板文件。
#cp -p localdomain.zone guoguang.com
#cp -p named.local 192.168.1.rev
使用命令是不要忘记加参数P,然后分别编辑正向解析文件(guoguang.com)和反向解析文件(192.168.1.rev),具体如下:
正向解析配置文件(guoguang.com):
$TTL
86400
@
IN SOA
localhost root (
42
; serial (d. adams)
3H
; refresh
15M
; retry
1W
; expiry
1D )
; minimum
IN NS
localhost
localhost
IN A
127.0.0.1
www
IN
A
192.168.1.2
mail
IN
A
192.168.1.2
ftp
IN
CNAME
www
@
IN
MX
10
mail
反向解析配置文件(192.168.1.rev):
$TTL
86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
2
IN
PTR
www.guoguang.com.
2
IN
PTR
mail.guoguang.com.
配置DNS客户机
如果是Linux客户机,通过修改配置文件来设置,也可用图形界面设置,使用命令的配置文件设置如下:打开/etc/resolv.conf文件,在文件中加入如下命令:
Nameserver 192.168.1.2
如果是windows客户机,在【Internet协议(TCP/IP)】复选框,单击【属性】按钮,在【Internet协议(TCP/IP)】属性对话框中设置DNS服务器的地址即可。
DNS域名解析
使用命令nslookup测试。
在Linux下的测试结果:
[root@localhost ~]# nslookup
> 192.168.1.2
Server: 192.168.1.2
Address: 192.168.1.2#53
2.1.168.192.in-addr.arpa name = www.guoguang.com.
2.1.168.192.in-addr.arpa name = mail.guoguang.com.
> www.guoguang.com
Server: 192.168.1.2
Address: 192.168.1.2#53
Name: www.guoguang.com
Address: 192.168.1.2
> mail.guoguang.com
Server: 192.168.1.2
Address: 192.168.1.2#53
Name: mail.guoguang.com
Address: 192.168.1.2
Windows客户机下测试:
另外,在Linux下还可以使用host命令测试:
[root@localhost ~]# host 192.168.1.2
2.1.168.192.in-addr.arpa domain name pointer www.guoguang.com.
2.1.168.192.in-addr.arpa domain name pointer mail.guoguang.com.
[root@localhost ~]# host www.guoguang.com
www.guoguang.com has address 192.168.1.2
[root@localhost ~]# host mail.guoguang.com
mail.guoguang.com has address 192.168.1.2
[root@localhost ~]#
如果在本机(DNS服务器)上可以测试DNS服务器正常运行,在客户机上却不可以,应该是服务器的防火墙没有关闭。
附表 常见的Bind配置语句和选项
语句
|
描述
|
/*注释*/
|
C语言风格的Bind注释
|
//注释
|
C++语法风格的Bind注释
|
#注释
|
UNIX shell和perl系统风格的Bind注释
|
Acl
|
定义IP地址匹配的列表
|
Include
|
包含一个文件
|
Key
|
指明用于识别和授权的密钥信息
|
Logging
|
指明服务器日志记录的内容和日志信息的来源
|
Options
|
全局服务器的配置选项和其他语句的默认值
|
Control
|
声明mdc软件工具使用的控制通道
|
Server
|
设置某个服务器的配置参数
|
Trusted-keys
|
定义预先配置到服务器中,并且信任的DNSSEC密钥
|
zone
|
定义一个区域
|
type
|
指明一个区域类型
|
file
|
指明一个区域文件
|
directory
|
指明区域文件的目录
|
forwarders
|
列出主机请求将要被转发到的DNS服务器
|
master
|
列出作为从服务器使用DSN主服务器主机
|
Allow-transfer
|
指明允许那台接收区域转达的请求
|
Allow-query
|
指明允许那他主机提出询问
|
modify
|
当主区域数据需要改变和更新时,允许主服务器通知从服务器
|