在RHEL5.4下搭建和配置DNS服务器
一、域名与域名解析
网络中为了区别各个主机,必须为每台主机分配一个惟一的地址,这个地址即称为“IP 地址”。但这些数字难以记忆,所以就采用“域名”的方式来取代这些数字了。不过最终还是必须将域名转换为对应的IP 地址才能访问主机。
DNS (Domain Name System)服务,又叫域名解析服务,即提供域名与IP地址的相互转换。域名的正向解析是将主机名转换成IP 地址的过程,域名的反向解析是将IP地址转换成主机名的过程。通常我们很少需要将IP 地址转换成主机名,即反向解析。反向解析经常被一些后台程序使用,用户看不到。
二、DNS 架构
域的层次结构如同一棵倒立的树,层次结构非常清晰,如图所示。根域位于顶部,紧接着在根域的下面是几个顶级域,每个顶级域又可以进一步划分为不同的二级域,二级域再划分出子域,子域下面可以是主机也可以是再划分的子域,直到最后的主机。在Internet 中的域是由InterNIC负责管理的,域名的服务则由DNS 来实现。
三、DNS 解析流程
1、客户机请求解析的IP 地址,如果本地hosts文件中没有相关解析,
则向本地DNS服务器发出解析请求;
2、如果本地DNS服务器有该域名的解析信息,则直接返回给客户机;如果本地DNS服务器没有该域名的解析信息,则本地DNS 服务器向根DNS服务器询问的IP地址;
3、如果根DNS 服务器有该域名的解析信息,则直接返回信息给本地DNS 服务器,本地DNS 服务器再将解析信息返回给客户机;如果根DNS 服务器没有该域名的解析信息,则返回管辖.cn解析业务的DNS 服务器的IP 地址;
4、本地DNS 服务器向管辖.cn的DNS 服务器询问的IP 地址;
5、如果.cn 服务器有该域名的解析信息,则直接返回信息给本地DNS 服务器,本地DNS
服务器再将解析信息返回给客户机;如果.cn DNS 服务器没有该域名的解析信息,则管辖.cn解析业务的DNS服务器告知.com.cn的DNS 服务器的IP地址;
6、本地DNS 服务器向管辖.com.cn的DNS服务器询问的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服务器告知的DNS服务器的IP地址;
10、本地DNS服务器解析出的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; };
};
注:暂存的内容只能恢复到当前文章的编辑器中,如需恢复到其他文章中,请编辑该文章并从暂存箱中恢复;或者直接复制以上内容,手工恢复到相关文章。