如今互联网应用越来越丰富,仅仅用IP地址标识网络上的计算机是不可能完成任务的,而且也没有必要,于是产生了域名系统。域名系统通过一系列有意义的名称标识网络上的计算机,用户按域名请求某个网络服务时,域名系统负责将其解析为对应的IP地址,这便是DNS。本节将详细介绍有关DNS的一些知识。
目前提供网络服务的应用使用唯一的32位的IP地址来标识,但由于数字比较复杂、难以记忆,因此产生了域名系统。通过域名系统,可以使用易于理解和形象的字符串名称来标识网络应用。访问互联网应用可以使用域名,也可以通过IP地址直接访问该应用。在使用域名访问网络应用时,DNS负责将其解析为IP地址。
DNS是一个分布式数据库系统,扩充性好,由于是分布式的存储,数据量的增长并不会影响其性能。新加入的网络应用可以由DNS负责将新主机的信息传播到网络中的其他部分。
域名查询有两种常用的方式:递归查询和迭代查询。
递归查询由最初的域名服务器代替客户端进行域名查询。若该域名服务器不能直接回答,则会在域中各分支的上下进行递归查询,最终将返回查询结果给客户端,在域名服务器查询期间,客户端将完全处于等待状态。
迭代查询每次由客户端发起请求,若请求的域名服务器能提供需要查询的信息则返回主机地址信息。若不能提供,则引导客户端到其他域名服务器查询。
以上两种方式类似需要寻找东西的过程,一种是找个人替自己寻找,另外一种是自己完成,首先到一个地方寻找,若没有则向另外一个地方寻找。
DNS域名服务器的分类有高速缓存服务器、主DNS服务器和辅助DNS服务器。高速缓存服务器将每次域名查询的结果缓存到本机,主DNS服务器则提供特定域的权威信息,是可信赖的,辅助DNS服务器信息则来源于主DNS服务器。
目前网络上的域名服务系统使用最多的为BIND(Berkeley Internet Name Domain)软件,该软件实现了DNS协议。本节主要介绍DNS服务器的配置过程,包含安装、配置文件设置、服务器启动等步骤。
DNS服务依赖的软件可以从rpm包安装或从源码进行安装,本节以rpm包为例说明DNS服务的安装过程,如【示例3-33】所示。
【示例3-33】
经过上面的设置,DNS服务已经安装完毕,主要的文件如下:
要配置DNS服务器,需修改配置文件/etc/named.conf。如果不存在就创建该文件。
本示例实现的功能是搭建一个域名服务器ns.oa.com,位于192.168.19.101,其他主机可以通过该域名服务器解析已经注册的以“oa.com”结尾的域名。配置文件如【示例3-34】所示,如需添加注释,可以使用以“#”“//”“;”开头的行或使用“/* */”包含。
【示例3-34】
name.conf配置文件中的配置项非常多,以下为主要的配置项说明:
该文件为DNS数据文件,可以配置每个域名指向的实际IP,此文件可通过复制目录/var/named中的named.localhost获得模板。文件配置内容如【示例3-35】所示。
【示例3-35】
下面说明各个参数的含义:
第9~11行分别定义了相关域名指向的IP地址。
提示
默认权限可能会阻止bind访问oa.com.zone文件,因由root用户使用命令chgrp named oa.com.zone修改文件所属的用户组。
启动域名服务可以使用BIND软件提供的/etc/init.d/named脚本,如【示例3-36】所示。
【示例3-36】
[root@CentOS Packages]# systemctl start named.service
如启动失败,可以参考屏幕输出定位错误内容,或查看/var/log/messages的内容,更多信息参考系统帮助“man named.conf”。
经过上一节的步骤,DNS服务端已经部署完毕,客户端需要做一定设置才能访问域名服务器,操作步骤如下。
步骤01 配置/etc/resolv.conf。
如需正确地解析域名,客户端需要设置DNS服务器地址。DNS服务器地址修改如【示例3-37】所示。
【示例3-37】
[root@CentOS ~]# cat /etc/resolv.conf nameserver 192.168.19.1
步骤02 域名测试。
域名测试可以使用ping、nslookup或dig命令。
【示例3-38】
上述示例说明了bbs.oa.com成功解析到192.168.19.102。
经过以上的部署和测试演示了DNS域名系统的初步功能,要了解更进一步的信息可参考系统帮助或其他资料。