RHEL5下DNS全解析1

DNS服务器的配置是一项非常繁重和复杂的工作,但是只要你细心,有耐心并且不灰心那么你就一定能成功,我的文章只是参考,一定会有不足,当你看到有缺点的地方,请指出来让我们共同进步,我期待者你啊。
这一次只是对DNS的一些基本的内容进行总结,后面只是做了一个小实验,如果你对DNS非常了解了,那你就看后面的日志吧
DNS的基本任务是建立主机名到IP地址的映射关系。它是一种客户机/服务器系统。服务器将数据从DNS文件载入内存,并用它来答复内部客户机和其他服务器的查询。一个大型的站点可以将DNS域划分为几个子域,在每个子域上运行若干台服务器。这里我们要知道什么是域,每个域代表名字空间中的特定一块,并有一个行政实体松散的管理。DNS名字空间被组织成一个数学家称之为“树”的结构,每个域名代表这棵树上的一个结点。简单的说一个“区”是指一个域扣除他的子域部分。到这里你应该明白了什么是DNS以及域和名字空间了吧。
关于DNS工作原理网上的资料太多了,你看这篇文章我感觉你已经知道了,这里我就不再说了。
DNS数据库是有这个域的主名字服务器的系统管理员所维护的一个文本文件的集合,这些文本文件称为区文件,他包括两种类型的项:分析器命令($ORIGN$TTL)和资源记录(Recource Records)。只有资源记录才是数据库的真正部分,分析器命令只是为记录输入提供的一些捷径。
DNS层次结构中的每一个区都有与之相关的一组资源记录。记录的类型有:SOA  NS A AAA  PTR  MX  DS  DNSKEY  NSEC RRSIG  CNAME  LOC  SRV  TXT我们用到的记录类型有SOA  NS  PTR  MX   CNAME 下面我们分别介绍
SOA记录:一个SOA记录标记出一个区,即位于DNS域名空间中相同位置的一组资源记录的开始位置。每个区仅有一个SOA记录,该区一直延伸到遇见另一个SOA记录为止。
NS记录:标志一个区的权威服务器(也就是说,所有主服务器和权威服务器),并把子域授权给其他机构。NS记录通常跟在SOA记录后面。
A记录:是DNS数据库的核心。它们提供了以前在/etc/hosts文件中指定的主机名到IP地址的映射,一个主机必须为它的每个网络接口得到一条A记录。具有多个网络接口的机器可以让其所有接口关联到同一个主机名上,也可以每个接口都有自己的主机名。
PTR记录执行从IP地址到主机名的反向映射。A记录和他们对应的PTR记录相匹配很重要,两者不匹配或遗漏PTR记录会导致身份验证失败,这样系统会变得很慢很慢(我是遇到过啊)
MX记录:用来路由邮件,MX记录抢占了消息的目的地址,他将消息指向接收方网点的邮件枢纽主机,而不是接收方自己的工作站。
CNAME记录:为主机分配几个名字。如果主机有CNAME记录,该主机的其他记录必须引用真实名,而不是暱称。
通过前面的文字,我想你对DNS有一个大致的了解了吧。那下面我们再说说BIND软件
BIND,即伯克利名子域(Berkely Inernet Name Domain)系统,是ISCInternet Systems ConsortiumInternet系统联盟)的开放源代码包软件。
BIND系统由3部分组成:
称为named的守护进程,它回答查询
库例程,它联系DNS分布式数据库的服务器,解析主机查询
DNS的命令行接口,nslookup,dighost
名字服务器的分类:.
权威服务器:一个区的正式代表
1,主服务器:区数据的首要服务器,从磁盘文件获得数据
2,从服务器:从主服务器复制得到他的数据
3,存根:和从服务器类似,但是仅仅复制名字服务器的数据(不复制主机数据)
4,分支:仅在域内可见的服务器(也叫做“秘密服务器”)
非权威:用缓存数据回答查询,不知道数据是否直接有效
1,缓存:缓存以前的查询,通常没有本地区
2,转发器:代替许多客户机执行查询,查询一个大的缓存
递归:代替您查询,直接返回结果
非递归:如果不能回答查询,就将您引导至另一台服务器
配置解析器:在网络上的每台主机都有一个叫做/etc/resolv.conf的文件,他列出了主机应该查询的DNS服务器。如果您的主机从DHCP服务器获得IP地址和网络参数,那么会自动设置,否则必须手动设定
配置BIND服务器:
Named的配置文件是named.conf当你配置好了文件以后可以使用named-checkconf检查配置文件的语法错误,也可以使用named-checkzone检查区数据文件的语法错误
下面我们说说在named.conf中经常实用的语句
1include通常用来引入不是完全可读的加密密钥
include "path"
2options语句指定全局选项,对于特定区或服务器,有些选项以后可能会覆盖
options {
       option;
       option;       
}
notify如果设为yes,并且该named是一个或多个区的主服务器,那么每当区数据有变化时,named将自动通知相应区的从服务器。
recursion选项指定named是否代替客户机查询其他名字服务器
transfers-intransfers-out选项限制可能同时发生的入站和出站的区传送数目。transfers-per-ns选项让您指定希望用于入站传输的接口IP地址
files选项设置服务器运行时允许同时打开的最大文件数
datasize设定允许服务器使用的最大数据内存量
max-cache-size限制服务器可以用于缓存查询答案的内存量
recursize-clients限制服务器处理的并发递归查询的数量
listen-on选项指定named监听查询请求的网络接口和协议端口
forwarders选项列出了要用来作为转发器的服务器的IP地址。转发器的使用绕过了从根服务器开始,沿着推荐关系链检索正常的DNS过程。
blackhole地址列表标识出您从不与之进行通信的服务器(是不是类似黑名单啊)
3acl语句
acl必须是named.conf中的顶级语句
acl acl_name 
               Address_match_list
             };
any 所有主机
localnets 本地网络上的所有主机
localhost 机器本身
none 没有任何主机
4key语句
定义了用于某个特定服务器身份验证的有名字的加密密钥
Key key-id 
            Algorithm string
            Secret string
};
5controls语句规定了rndc如何控制一个正在运行的named进程
Controls  
          Inet ip_addr port ip-port allow {address_match_list} keys {key_list}
}
说了这么多 是不是有点不耐烦了  那行 我们就先做一个试验 缓解一下一的神经啊
安装下列软件包
bind.i386        bind-libs.i386        bind-utils.i386  caching-nameserver.i386  
我是用yum安装的比较简单,关于怎样将本地光盘配置成yum源的可以看我的另一篇文章
安装好的效果如下:
[root@db ~]# yum list all | grep bind
This system is not registered with RHN.
RHN support will be disabled.
bind.i386                               30:9.3.6-4.P1.el5         installed     
bind-libs.i386                          30:9.3.6-4.P1.el5         installed     
bind-utils.i386                         30:9.3.6-4.P1.el5         installed     
ypbind.i386                             3:1.19-12.el5             installed  
caching-nameserver.i386                 30:9.3.6-4.P1.el5         installed安装最后这个软件包是为了配置的简单,因为里面有一些配置文件可以当模板。
这里我没有安装bind-chroot.i386 因为安装这个软件包容易出错,当然你也可以安装注意路径就好了。
下面我们配置named配置文件/etc/named.conf,我们先从简单的开始,下面是我的配置,,我没有建localhost0.0.127.in-addr.arpa这两个区,其实最好建上,我们在下面的试验中在建立吧。
下面我们就配置区文件,区文件全部放在/var/named/目录下了,由于我们安装了caching-nameserver.i386 这个软件包,所以里面已经有了named.ca这个区文件这里我们就不需要配置了。我们再配置example.com.zone这个区文件,下面是我的配置

接下来我们配置0.168.192.in-addr.arpa.zone这个区文件,我的配置如下:

要注意这两个文件中的A记录和他们对应的PTR记录相匹配很重要,两者不匹配或遗漏PTR记录会导致身份验证失败,这样系统会变得很慢很慢。这里要注意各个文件的属组和属主下面是我的配置文件,可以参考一下

配置DNS一定要注意自己的主机名,因为linux的主机名必须是FQDN的样式。
一定要注意下面三个文件中的内容:

呵,忘了说了我的IP地址是192.168.0.131,如果没记错的话,前面我已经说过了这三个文件夹的意义了,不信你看看开始的内容。
到这里文件应该配置完了。我们启动一下试试

我们看看端口是否开启了

端口也正常启动了,
有时间即使没有语法错误也可以正常启动但就是解析不到,你就要回头检查哪三个文件,我们首先用dig试试

好了 查询成功
我们看看邮件记录是否可以正常解析

下面我们再在另一个客户机上查询试试,我们用hostnslookup进行解析

要想在客户段进行解析你一定要将DNS服务器指对,好了现在可以稍微休息一下了,接下来我们会进行更深入的讲解。如果你有什么问题,那就说出来,我们一起解决,千万别灰心。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章