rhel5中配置DNS服务器
在RHEL5.4下搭建和配置DNS 服务器一、域名与域名解析网络中为了区别各个主机,必须为每台主机分配一个惟一的地址,这个地址即称为“IP 地址”。但这些数字难以记忆,所以就采用“域名”的方式来取代这
在RHEL5.4下搭建和配置DNS 服务器
一、域名与域名解析
网络中为了区别各个主机,必须为每台主机分配一个惟一的地址,这个地址即称为“IP 地址”。但这些数字难以记忆,所以就采用“域名”的方式来取代这些数字了。不过最终还是必须将域名转换为对应的IP 地址才能访问主机。
DNS (Domain Name System)服务,又叫域名解析服务,即提供域名与IP 地址的相互转换。域名的正向解析是将主机名转换成IP 地址的过程,域名的反向解析是将IP 地址转换成主机名的过程。通常我们很少需要将IP 地址转换成主机名,即反向解析。反向解析经常被一些后台程序使用,用户看不到。
二、DNS 架构
域的层次结构如同一棵倒立的树,层次结构非常清晰,如图所示。根域位于顶部,紧接着在根域的下面是几个顶级域,每个顶级域又可以进一步划分为不同的二级域,二级域再划分出子域,子域下面可以是主机也可以是再划分的子域,直到最后的主机。在Internet 中的域是由InterNIC 负责管理的,域名的服务则由DNS 来实现。
三、DNS 解析流程

1、客户机请求解析www.exmaple.com.cn 的IP 地址,如果本地hosts 文件中没有相关解析, 则向本地DNS 服务器发出解析请求;
2、如果本地DNS 服务器有该域名的解析信息,则直接返回给客户机;如果本地DNS 服务器没有该域名的解析信息,则本地DNS 服务器向根DNS 服务器询问www.exmaple.com.cn 的IP 地址;
3、如果根DNS 服务器有该域名的解析信息,则直接返回信息给本地DNS 服务器,本地DNS 服务器再将解析信息返回给客户机;如果根DNS 服务器没有该域名的解析信息,则返回管辖.cn 解析业务的DNS 服务器的IP 地址;
4、本地DNS 服务器向管辖.cn 的DNS 服务器询问www.exmaple.com.cn 的IP 地址;
5、如果.cn 服务器有该域名的解析信息,则直接返回信息给本地DNS 服务器,本地DNS 服务器再将解析信息返回给客户机;如果.cn DNS 服务器没有该域名的解析信息,则管辖.cn 解析业务的DNS 服务器告知.com.cn 的DNS 服务器的IP 地址;
6、本地DNS 服务器向管辖.com.cn 的DNS 服务器询问www.exmaple.com.cn 的IP 地址;
7、如果.com.cn 服务器有该域名的解析信息,则直接返回信息给本地DNS 服务器,本地DNS 服务器再将解析信息返回给客户机;如果.com.cn DNS 服务器没有该域名的解析信息,则管辖.com.cn 解析业务的DNS 服务器告知.example.com.cn 的DNS 服务器的IP 地址;
8、本地DNS 服务器向管辖.example.com.cn 的DNS 服务器询问www. example.com.cn IP 地址;
9、管辖.example.com.cn 的DNS 服务器告知www.exmaple.com.cn 的DNS 服务器的IP 地址;

10、本地DNS 服务器解析出www.exmaple.com.cn 的IP 地址,并传回给客户机。
Linux 下的DNS 服务器分为以下几种:
1、 缓存域名服务器
主要功能是提供域名解析的缓存。
2、 主域名服务器
是特定域所有信息的权威性信息源,对于某个指定域,主域名服务器是唯一存在的;主域名服务器中保存了指定域的区域文件。
3、 从域名服务器
从主域服务器中获取相应的文件进行保存。
四、搭建Linux 下的DNS 多域解析服务器
1、首先使用下列命令来查看bind 软件包是否已经安装,如果安装可以直接进行配置,如果没有则进行安装:
[root@localhost ~]# rpm -qa | grep bind
bind-chroot-9.3.6-4.P1.el5
kdebindings-3.5.4-6.el5
bind-libs-9.3.6-4.P1.el5
ypbind-1.19-12.el5
bind-9.3.6-4.P1.el5
system-config-bind-4.0.3-4.el5
bind-utils-9.3.6-4.P1.el5
其中软件包bind-chroot 是为了系统的安装而装的,它可以使原本存放DNS 配置文件的位置改变。如未安装这个包之前DNS 的配置文件存放在/etc/named.conf下面,安装了这个包后,DNS 的配置文件就改存在/var/named/chroot/etc/named.conf里了。
[root@localhost ~]# mount /dev/cdrom /media
为了以后的安装包方便下面说一下简单的本地yum 的配置,以后就不用使用rpm 命令装软件包了!!下面修改一下yum 的配置文件,然后就可以使用yum 命令来安装软件包了!!
[root@localhost etc]# cd yum
yum/ yum.conf yum.repos.d/
[root@localhost etc]# cd yum.repos.d/
[root@localhost yum.repos.d]# ls
rhel-debuginfo.repo
[root@localhost yum.repos.d]# vi rhel-debuginfo.repo
把配置文件中baseurl 的路径和enabled 的值改成如下:
baseurl=file:///media/Server
enabled=1
修改了这两处后保存退出就OK 了,其中第一个选项是指定你把你的系统光盘挂载的位置。 修改好以上两处选项后就可以使用yum 命令来安装软件包了,当然你也可以使用rpm 命令来安装(如果你不嫌被依赖关系搞崩溃的话)。千万要记住用yum 命令安装软件包之前首先得挂载光盘(mount /dev/cdrom /media)。
DNS 的配置选项
DNS 服务器程序安装到系统后,还需要对它的配置文件进行修改,添加需要在本地DNS 服务器解析的域名,才能使DNS 服务器进行正常工作。
在配置DNS 时,需要对多个配置文件进行修改,在修改之前我们先来看一下这些配置文件各自的作用:
,(1)/var/named/chroot/etc/name.conf:DNS服务器的主配置文件,在这个文件中可以设置通用参数,但在该文件中并不具体设置解析信息,而只是设置指向每个域名和IP 地址映射信息的文件。
(2)/var/named/chroot/var/named/named.ca:这个文件是根域DNS 服务器指向的文件,通过该文件可以指向根域DNS 服务器。用户一般不要修改这个文件。此文件可以到到网上去下载,然后下载下来把名字重命名为named.ca 并复制到/var/named/chroot/var/named/里。
(3)/var/named/chroot/var/named/localost.zone:用于将名字localhost 转换为本地回送IP 地址(127.0.0.1)。
(4) named.rfc1912.zones 用户配置的域名解析文件:也称为区文件,若当前DNS 服务器需要解析多个域名,则需要设置多个域名解析文件。若需要反向解析,还要设置对应的反向解析文件。
3、修改主配置文件
[root@localhost ~]# cd /var/named/chroot/etc/
[root@localhost etc]# cp –p named.caching-nameserver.conf named.conf
备注:cp 参数-p 除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。这里大多数配置文件的属主是root ,组为named ,如果只是cp ,启动named 服务时会报错。
[root@localhost etc]# vi named.conf
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver
// (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files. //
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on
// caching-nameserver package upgrade.
//
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 { any ; };
};
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";
};
[root@localhost etc]# vi named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
//
// See /usr/share/doc/bind*/sample/ for example named configuration files. //
zone "." IN {
type hint;
file "named.ca";
}; # 根DNS 服务器配置文件;
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};# 模板1;
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
,allow-update { none; };
};# 模板2;
zone "Lee.net" IN { //区域配置选项,指定区域配置的类型和区域配置文件名 type master;
file "Lee.net.zone";
allow-update { none; };
};
//如果需要添加别的域,则需要继续添加区域文件,例如:添加liwei.net 这个域 zone "Lee.net" IN {
type master;
file "liwei.net.zone";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "1.168.192.in-addr.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; };
};
备注:蓝色字体是添加、修改过的;
3、Zone 配置文件
[root@localhost ~]# cd /var/named/chroot
[root@localhost chroot]# ls
dev etc proc var
[root@localhost chroot]# cd var
,[root@localhost var]# ls
log named run tmp
[root@localhost var]# cd named
[root@localhost named]# cp –p localdomain.zone Lee.net.zone
[root@localhost named]#cp –p named.local 1.168.192.in-addr.local
[root@localhost named]#vi Lee.net.zone
$TTL 86400
@ IN SOA localhost root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS Lee.net.
www IN A 192.168.1.2
Lee.net. 表示DNS 服务器,后面的点不能少
42 serial表示更新序列号,用于告知从域名服务器
3H refresh表示三小时刷新一次
15M retry表示每15分钟重试一次
1W expiry表示寻找DNS 服务器时间最长为一周
1D minimum表示最短时间为一天
IN NS表示域名服务器记录,用于设置DNS 服务器名称
IN A表示A 记录,用于设置主机名对应IP 地址的对应记录
IN CNAME为别名记录,用于在区域文件中对主机名称设置别名
IN MX为邮件服务器记录,用于提供邮件服务器名称
[root@localhost named]#vi 1.168.192.in-addr.local
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS Lee.net.
2 IN PTR www.Lee.net .
反解记录和正解记录不同的地方就是ptr 参数,ptr 是Pointer 的缩写,格式为:
IP 地址 IN PTR 主机名
,因为这个反解记录对应的IP 段为192.168.1.0,所以IP 地址部分,2就表示192.168.1.2. 最后主机名仍然是完全主机域名(FQDN ),所以最后还是需要加上“. ”。
备注:DNS 服务器Ip 为:192.168.1.1
4、测试
至此,DNS 搭建结束。
