DNS服务器的知识
1、DNS(Domain NameServer/System,域名服务器)是为了便于用户访问Internet而采用的一种分布式的域名(IP地址映射查询和管理方法)。用户只需要输入简单的域名就可以找到所需要的网页。
2、DNS服务简介:
Internet基于TCP/IP,而目前最常用的IP是IPV4,由32为组成。为了便于记忆,转换成四组十进制的数字,如:72.14.235.104.当用户访问Internet时,就是通过这串数字来实现服务器的定位和访问的。
3、DNS的查询原理和规划
DNS系统是由DNS服务器和DNS客户端组成。DNS服务器又称为域名服务器,是指提供DNS服务的主机;DNS客户端是指提出“域名查询”请求的主机。不过DNS客户端也可以提供简单的DNS查询服务,通过本地的配置文件/etc/host.conf、reslov.conf和hosts来实现。
客户端发送的每条查询信息都包括以下三个方面的信息:
①指定的查询类型,可指定资源记录和查询操作的专门类型;
②指定的DNS类别;
③指定完全合格的DNS域名。
域名解析是按照以下过程进行的:首先在本机进行域名解析,如果解析不成功,再将这个请求发送给自己的域名解析服务器。所以说并不是直接将域名查询信息发送到DNS域名服务器进行解析的。
3.1、本地域名解析
对于windows用户来说,首先查询Windows安装目录下的System32/drivers/etc目录中的文件,如果里面有相关条目,则直接使用其IP地址。
对于Linux用户来说,首先要按照主机上/etc/host.conf文件的定义,决定域名查询的顺序。默认先通过/etc/hosts文件进行域名解析,如果解析不到,再到DNS服务器进行域名解析。/etc/host.conf文件中定义如下:
3.2、DNS服务器查询过程
对于本地不能进行的域名解析,客户端发送到DNS服务器来进行。比如对于www.cnnic.net.cn这个域名,客户端会先将它发送到DNS服务器,如果DNS服务器查询发现本地缓存没有相关信息,就会发送到根服务器,根服务器会向“cn域”查询www.cnnic.net.cn,“cn域”发现本地没有相关信息,就会向“.net.cn域”www.cnnic.net.cn的IP地址查询,然后“.net.cn域”再次查询cnnic.net.cn,最终得出www.cnnic.net.cn的IP地址,如图所示:
3.3、DNS规划
在使用DNS之前,必须先规划DNS域名称空间。名称空间规划的内容包括如何使用DNS命名和使用DNS要达到什么样的目的等。选择和注册一个顶级或二级域名作为DNS域名,该域名应当可用于维护Internet上的公司的,如Localhostmain.test。将父域名与公司名称或公司内使用的位置结合起来,形成其他子域名或主机名,如certer.localhost.test。
4、DNS查询模式
4.1、递归查询:
一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机;
4.2、迭代查询(反复查询):
一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求;
5、hosts文件
在Linux操作系统中,要实现DNS域名解析,和以下三个文件密切相关:
5.1、/etc/host.conf
该文件定义名称解析的搜索顺序:
5.2、/etc/hosts
/etc/hosts文件分成三个部分,其中第一部分是主机的IP地址,第二部分是域名,第三部分是主机的别名。
192.168.1.105 toplinux.localdomain.test toplinux
5.3、/etc/resolv.conf
该文件定义哪些主机是DNS服务器,其常见的格式有两种:
①当本主机是一般主机:
search localdomain.test
nameserver 192.168.1.104 第一个域名服务器
nameserver 192.168.4.104 第二个域名服务器
②当本主机是DNS服务器:
Domain localdomain.test
nameserver 192.168.1.104 主域名服务器
nameserver 192.168.4.104 辅域名服务器
6、主要名称服务器的介绍
DNS服务器安装好之后,必须先编写DNS的配置文件、本机区域反向解析文件、主机区域反向解析文件以及DNS casche文件,才能正常运行该服务。
DNS配置文件和正反向解析区域声明文件存在于以下四个文件中:
①/var/named/chroot/etc/named.conf(区域配置文件)
②/var/named/chroot/var/named/named.localhost.arpa(本机反向解析区域声明文件)
③/var/named/chroot/var/named/named.domain (正向解析区域声明文件)
④/var/named/chroot/var/named/named.domain.arpa (反向解析区域声明文件)
注意:如果在Red Hat Linux Enterprise 5中用rpm包安装的话,需要安装bind-chroot,caching-nameserver这两个软件包。第一个软件包是为了系统安装安装的,是修改DNS的安装目录。第二个软件包,是一个为配置DNS文件创建提供参考。
6.1、主配置文件介绍
在Red Hat Linux Enterprise 5中,DNS的配置文件在/var/name/chroot/etc/name.conf中,默认是没有的,需要将/var/name/chroot/etc/name.caching-nameserver.conf拷贝成/var/name/chroot/etc/name.conf
6.2、根服务器信息文件
根服务器信息文件是named.ca,一般是在文件/var/named/named.ca中指定,这个文件定义了Internet的根服务器名称和地址。当Bind接到客户端主机的查询请求时,如果在本地找不到相应的数据,就通过根服务器进行主机查询。
随着根服务器的变化,named.ca文件也发送变化。最后从网上下载该文件的最新版本,并以named.ca为名保存,复制到/var/named/chroot/var/named/目录下。
6.3区域正向解析文件
区域用来保存DNS服务器某个区域(如:localdomain.test)数据信息。区域正向解析文件在/var/named/chroot/etc/name.rfc1912.zones中。
6.3、区域反向解析文件
在理解了区域正向域名解析的原来和配置文件的声明方式之后,区域反向域名解析配置文件就容易理解了。下面是区域反向文件定义以及格式:
6.4、设置区域文件
区域内所以的数据(如主机名、对应IP地址、刷新间隔和过期时间等)都必须存放在DNS服务器特定的文件中,这个文件就被称为区域文件(区域数据文件使用“;”符号注释)。
一般情况下,区域数据文件存放在/var/named/chroot/var/name/目录中。同一区域文件可以存放多台DNS服务器中,一台DNS服务器内也可以存放多个区域文件。
6.5、设置名称服务器NS资源记录
example.com IN NS dns.example.com
名称服务器NS(name server)资源记录定义了该区域名由哪个DNS服务器负责解析,区域权威名称服务器也是由NS资源记录定义的。权威名称服务器被其他服务器或客户端当作权威的来源,它负责维护和管理所管辖区域中的数据,为DNS客户端提供数据查询,并且肯定应答区域内所含名称的查询。
6.6、设置名称服务器A资源记录
dns IN A 192.168.16.177
www.example.com. IN A 192.168.16.9
mail.example.com. IN A 192.168.16.91
ftp.example.com. IN A 192.168.16.180
最常用的记录是主机地址A(Address)资源记录。它定义DNS域名对应IP地址信息。上面的例子中,含有两种定义A资源记录的方式,即使用相对名称和使用完全规范域名FQDN(Fully Qualified Domain Name)两种方式。Bind会自动在dns后加上后缀.example.com,相当于完全规范域名的dns.example.com.
6.7、设置别名资源记录
rhel4 IN CNAME dns
bbs IN CNAME WWW
别名(Canonical Name,CNAME)资源记录
6.8、设置邮件交换器MX资源记录
example.com. IN MX 10 mail1.example.com.
example.com. IN MX 11 mail2.example.com.
邮件交换器(Mail eXchanger,MX)资源记录指向邮件服务器,当电子邮件系统发邮件时,根据收信人邮件地址后缀来定位邮件服务器。。可以设置多个MX资源记录,指明多个邮件服务器,优先级别由MX后的数字觉定,数字越大,则邮件服务器优先级越低。由于MX资源记录只登记了邮件服务器的域名,而在邮件实际传输时,是通过邮件服务器的IP地址进行通信的,因此邮件服务器还必须子啊区域文件中有一个A资源记录,以指明邮件服务器的IP地址,否则会导致传送邮件失败。
7、功能实现
7.1、实现负载均衡
DNS服务为同一个域名配置多个IP地址,并记录在DNS主机文件中。在DNS查询时,客户端的访问被引导到不同的计算机上,使不同的客户端访问不同的主机,从而达到负载均衡。
ftp IN A 192.168.10.1
ftp IN A 192.168.10.2
7.2、实现直接解析域名
默认情况下,DNS服务器只能解析完全规范的域名FQDN。为了方便用户访问,实现直接解析域名功能,在DNS服务器的区域文件中加入了特殊的A资源记录(可以使用*代表任何字符)
localdomain.test. IN A 192.168.10.105
. IN A 192.168.10.106
7.3、实现范域名解析
当一个域名下的所以主机和子域名都被解析到同一个IP地址上,这种情况被称为范域名。为了实现范域名解析功能,可以在DNS服务器的区域文件末尾加入一条特殊的A资源记录(*可表示任何字符)
*.localdomain.test. IN A 192.168.10.105
* IN A 192.168.10.106