奉献Red Hat Linux 253 实验翻译(KevinZ)
###请转贴时保留以下内容###### Red Hat Linux 253 实验部分
应广大RH爱好者的要求,奉献Red Hat Linux 253 实验翻译 请提出宝贵意见Mail:kissingwolf@hotmail.com KevinZ(kissingwolf) 2004.3.24
#############################
Red Hat Linux 253 实验部分 试验2 域名系统
估计时间: 2个小时
目标: 安装和配置一个DNS服务器 试验的起点: 标准的Red Hat Linux安装 介绍
本次实验指导您通过使用Berkeley Internet Name守护进程来配置域名服务。使用模板文件作为指导,您将
实现一个仅有缓存的域名服务器
配置named作为example.com的从域名服务器 配置named作为主域名服务器用于转发和IP反查询
在整个试验中,您使用的机器名称和域名将基于您使用的机器的IP地址。如果下面的试验出现了X字样的名称,您应该把X字样的名称替换成您的工作站的号码(您的IP地址的最后一个部分)。例如,如果您的工作站的IP的地址是192.168.0.3,您应该将stationX.domainX.example.com转换成station3.domain3.example.com。
将数据包过滤设定为无效状态。在本次试验开始之前,请您确保您的主机上的所有包过滤已被关闭(显然,在实际使用中您可以利用Linux内核的防火墙机制,然而我们在这里关掉它是为了减少潜在的问题)。 本次试验中以root身份来使用下面命令达成上面的要求: service iptables stop chkconfig iptables off
初始化安装
A. 获得必要的文件
需要bind,bind-utils和caching-nameserver软件包。使用`rpm –q`来决定这些软件包是否被安装。如果没有被安装,通过输入如下命令来安装(以root身份):
mkdir /mnt/server1; mount server1:/var/ftp/pub /mnt/server1
rpm –Uvh /mnt/server1/RedHat/RPMS/bind-9* rpm –Uvh /mnt/server1/RedHat/RPMS/bind-utils*
rpm –Uvh /mnt/server1/RedHat/RPMS/caching-nameserver*
RPM软件包bind包括DNS守护进程和支持脚本,但是没有配置和区域文件。caching-nameserver提供了一个通用的配置和区域文件。 B. 配置本地的解析器
配置您的主机使得它能够被用来作为域名服务,而不是192.168.0.254。
注意:直到您的域名服务器被正确安装和配置,您的机器的DNS服务不会奏效。您也应该注意到当您的系统重新启动的时候或者重新设定您的网络的时候您的/etc/resolve.conf将会被改写(除非您对您的网络界面设定了在本讲座中提及的PEERDNS)
按照如下编辑您的解析器配置文件
/etc/resolv.conf
search domainX.example.comnameserver 192.168.0.X
(记住将X替换成您的工作站的号码)
第一行定义了如果出现简单的不符合完整域名的主机名称时默认添加的缺省域。第二行指定了将主机192.168.0.X (您的机器)来作为DNS查询的解析器。
为了简化情况,将除了localhost主机名称的定义从您的主机名称配置文件中删除。
/etc/hosts
127.0.0.1 localhost localhost.localdomain
该步骤并不是必需的,但是可以简化DNS的调式。有时候安装程序会将符合完整域名的主机名放在localhost的这一行,这样一来会使得您无法准确的确定您的域名服务器配置是否正确。
步骤1:配置一个仅有缓存的域名服务器
第一个配置您将建立一个仅有缓存的域名服务器。这种类型的域名服务器对于任何区域都不授权。仅有缓存的域名服务器被设定为主域名服务器。当主机名称或者IP地址需要被解析的时候,仅有缓存的域名服务器将查询请求转发到另外一台域名服务器或者到根域名服务器来决定授权的用来解析的域名服务器。一旦解析完成,仅有缓存的域名服务器在缓存中存储解析的信息,该解析信息有一段的生存周期。以后的查询将会变得很快。
您已经安装完对于此项配置所有必须的文件。按照如下步骤来配置域名服务器:
1. 在由caching-nameserver提供的/etc/named.conf中的“option”区域添加下面的内容:
forwarders {192.168.0.254; };
forward only;
这将导致您工作站上的仅有缓存的域名服务器转发其不能解析的DNS查询到在192.168.0.254的域名服务器,并且如果超时,不与根域名服务器直接联系。 2. 启动named: service named start
3. 测试您的配置使用host或者dig来查询一些example.com名称和一些真实的Internet域名(如果您有Internet访问接口的话)
步骤2:配置一个从域名服务器
一个从域名服务器将为一个区域提供授权的回答,但不是区域的授权开始。您现在将重新配置您的域名服务器作为example.com区域和0.168.192.in-addr.arpa区域的从域名服务器。
1. 在您的/etc/named.conf文件中添加如下行 zone “example.com” { type slave;
masters { 192.168.0.254; }; file “slave-example.com.zone”; };
zone “0.168.192.in-addr.arpa” { type slave;
masters { 192.168.0.254; }; file “slave-192.168.0.zone”; };
2. 重新启动named: servcie named restart
3. 检查slave-example.com.zone和slave-192.168.0.zone文件。这些文件应该包含了从位于192.168.0.254的主域名服务器传过来的区域数据库的副本。
确保所有的正确工作。在您开始下一个部分之前,去除您刚才在第一步中在/etc/named.conf中加入的两个从区域。
步骤3:配置一个主域名服务器
现在您将配制您的域名服务器来负责对于区域“domainX.example.com”的解析工作。您将同样负责向对应的反查区域。将采用如下的步骤:
A. 编辑配置文件(named.conf)
B. 准备区域“domainX.example.com”和区域“X.0.168.192.in-addr.arpa”的数据库文件。 C. 重新启动域名服务器 D. 测试您的配置
为了您能够准备您的配置文件和区域文件,我们提供了模板文件。您可以通过匿名ftp方式从以下地址获
得:
ftp://192.168.0.254/pub/namedfiles/
在如下的步骤中,记得将范例文件中中每一出出现的X替换成您的工作站的号码。 E. 主配置文件
下面是我们应该考虑的三个区域
1. “.”(根级别)区域
“.”区域是DNS层次中的最高层。根服务器提供了哪些服务器对于给定的域享有授权。“.”节应该以如下的方式出现:
zone “.” { type hint; file “named.ca”; };
2. “domainX.example.com”(正向查询)区域
添加如下的行,使得您的域名服务器成为区域的主服务器。
zone “domainX.exmaple.com” { type master;
file “domainX.example.com.zone”; };
3. “X.0.168.192.-in-addr.arpa”(反向查询)区域
现在添加如下的行,使得您的域名服务器成为反查区域的主服务器。
zone “X.0.168.192.in-addr.arpa” { type master;
file “192.168.0.X.zone”; };
下面是位于192.168.0.2的station2的样例配置文件 /etc/named.conf
options {directory “/var/named”;forwarders {192.168.0.254; };forward only;};zone “.” { type hint; file “named.ca”;};zone \type master; file \.zone\\addr.arpa\{ type master; file “domain2.example.com.zone”;};zone “2.0.168.192.in-addr.arpa” { type master; file “192.168.0.2.zone”;};
F. 数据库文件
您的主要配置文件指定了/var/named为数据库所在的目录。您现在必须在这个目录下面为您区域和反查区域建立数据库文件。这些数据库文件包括您的SOA,NS,A,CNAME,MX,PTR和其他的可能的记录。所有的数据文件以如下的行开头:
$TTL 86400
该数值是缺省的以秒计的生存期间,该数值对所有在该域中的记录有效
1. 区域“domainX.example.com”
在主配置文件中,区域“domainX.example.com”数据库文件被存放在/var/named/domainX.example.com。这个文件含有类似的如下的记录
开始授权记录
@ IN SOA stationX.domainX.example.com. root.stationX.domainX.example.com. ( 2001101100; Serial 28800 ;Refresh 14400 ;Retry 3600000 ;Expire 0) ;Negative
“开始授权”(SOA)记录是数据库文件的第一个资源记录,但是它可能带了一个前导符$TTL(缺省存活时间)。SOA记录使得数据库文件称为该区域的授权的信息源。第一个标记是后继记录适合的域,通常以“@”简化形式出现,如果扩展开来那就是在named.conf文件中“zone”节中所指明的域名(或者是在文件通过$ORIGIN定义的当前区域,如果该定义存在的话)。
第四个标记使该域的主域名服务器,第五个是负责维护这个数据库的系统管理员的电子邮件的地址,注意第一个分隔符替换了第一个标记的@符号(你能解释为什么吗?)。接下来在记录中的条目指定了交互解析域名服务器的动态特性。
域名服务器记录
@ IN NS stationX.domainX.example.com.
域名服务器(NS)标识了主机作为特定域的授权的域名服务器。他们对于这个区域指定了主和从服务器和代表授权的子域的其他的服务器(例如,server1.example.com对于所有domainX.example.com的