网络管理DNS域名解析.docx
- 文档编号:29443174
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:22
- 大小:65.93KB
网络管理DNS域名解析.docx
《网络管理DNS域名解析.docx》由会员分享,可在线阅读,更多相关《网络管理DNS域名解析.docx(22页珍藏版)》请在冰豆网上搜索。
网络管理DNS域名解析
网络管理-DNS域名解析
DNS域名解析
(1)
目标:
完成这一章,你将能够做一下事情:
比较三种主机名解析方式:
/etc/hosts
NIS
DNS/BIND
使用hosts_to_named命令来配置主DNS服务器
配置辅DNS服务器
配置主机名解析器
配置/etc/nsswitch.conf文件
使用hosts_to_named命令增加/删除DNS数据库中的一个主机。
使用nslookup命令进行DNS服务查错
描述以下配置文件的作用和文件格式:
/etc/rc.config.d/namesvrs
/etc/named.boot
/etc/resolv.conf
1.将主机名解析成为IP地址
IP网络中的系统进行通讯必须依靠Internet地址。
用户和应用程序可以通过主机名来查找一个主机,这就要求在数据包发送之前,IP协议层必须将这个主机名翻译成为一个IP地址(例如16.30.0.99)。
这个主机名到IP地址之间的转换是在这个网络连接建立之前通过一个gethostbyname()的库函数来实现的。
这个库函数也被称为解析器,因为它的作用是将主机名解析为一个IP地址。
同样,反向的解析有时也是必须的;因为有时候,必须将IP地址解析成为一个主机名,例如主机想要验证哪些主机连接到本机就必须通过将连接进来的IP地址映射成为一个名字,通常这个过程被用作鉴权:
例如,文件/etc/hosts.equiv,$HOME/.rhosts,或者/etc/exports的使用就是具体例子。
将IP地址解析成为主机名是通过调用一个名为gethostbyaddr()库函数而实现的。
维护一个小规模网络中的各个主机中包含有网络中的系统的名字和IP地址的/etc/hosts文件是一件很容易的的事情,而当网络变得很大同时地理上分布更广的时候,维护工作会变得十分困难。
这时候就需要用其它的方法来实现域名和IP地址之间的互相解析。
与每一台机器都存储和维护所有主机名和IP地址信息的方式不同,一种称为域名服务器的服务,域名服务器可以由网络中的一个(或者多个)系统组成,其作用是存储并且提供信息,域名系统提供了另外一种与/etc/hosts文件不同的主机名与IP地址转换的方式,DNS常用在大型的网络中提供主机名解析的服务。
当前最常用的名称服务有NetworkInformationServices(包括NIS和NIS+),和BerkeleyInternetNameDomain(BIND)服务。
在这一章,我们将学习BerkeleyInternetNameDomain服务。
2.DNS概述
BerkeleyInternetNameDomain(BIND)是一种基于RFC1034/1035"域名"规范的域名系统(DNS)。
BIND是由以下三部分组成:
分层的名称空间:
与单层的的名称空间相对应,/etc/hosts文件的域名解析方式就是一种单层的方式。
名称服务器中保存有域的树型结构的信息,这个服务器程序是在系统中是一个叫做named的进程。
而提供这个网络服务的主机被叫做域名服务器。
解析器是一种负责将域名解析成为IP地址的程序,各种网络服务都可以调用这种程序,例如telnet,ftp,rcp,rlogin,和其它的网络服务。
解析器能判断首先使用哪个名称服务(/etc/hosts,NIS,或者DNS),然后使用指定的服务来将主机名翻译为IP地址。
如果使用的是DNS(BIND),解析器就会从域名服务器提取信息,解析器并不是一个特别的进程,解析器只是名称服务器的一个可编程的界面,这些流程被编译进gethostbyname()和gethostbyaddr()流程中。
任何执行这些调用的程序会自动调用BIND(如果系统中配置了这个服务).否则会使用NIS或者/etc/hosts文件。
在有的系统中,有一个名称服务的开关(一个文件),其作用是指定系统解析域名时使用的方式的先后顺序和组合。
3.DNS层次化的名称空间
域名空间是一种对基于树型结构的网络中的节点进行分层命名的方法,树型结构可以粗略代表一个网络边界分支。
每一个名称空间中的子空间被称为一个域,每一个域都有一个标记,这个标记由一系列的由左到右的圆点分隔的字母组成,如:
在这个域名中节点"sanfran"属于域"ca";域"ca"属于域"hp";而域"hp"属于域"com",而域"com"属于“根域”。
最后一个圆点,域名的结尾部分,指出的是绝对域名,这和相对域名相对立,如"sanfran.ca"。
解析器会将相对域名翻译为绝对域名,转换的原则我们会在以后的章节中学到。
4.公共和私有的域名空间
公共的域名空间
如果要将本地网络和一个公众网络相连接,如INTERNET,就要求要有官方的IP地址和域名。
你可以与InterNIC联系,或者通过来进行域名登记。
如果你已经注册了一个域,那么在这个域中,你可以独立地管理你这个域中的计算机,例如你可以在这个域中增加主机,可以自由分配一个属于这个网络地址的主机IP地址给这个主机,而不需要向管理机构注册,同样你也可以在这个域中分配子域,也不需要向管理机构注册,只有你域中的顶级域中的授权的服务器才需要注册。
私有域名空间
在这种情况下,客户的网络和公众网是相互分离的,这样你就可以任意选择域名和IP地址。
但是如果将来会有可能连接到INTERNET,最好是去寻求一个正式的IP地址并且遵循命名的惯例。
5.名称服务器
域名服务器可以:
响应客户机的请求,然后将主机名解析为IP地址
划分名称空间
能够将域名解析的请求转发到其它的域名服务器
应该有辅域名服务器来作为备份
举例说明:
域名服务器
<--->128.1.1.1
<--->128.1.1.2
<--->128.1.1.3
有许多不同类型的DNS服务器
主域名服务器
主服务器对它所包含的数据来说是最有权威的(简而言之,由上一级的域赋予它的权利)。
它可以,依次,创建子域,并且分配权限。
与副服务器相比较而言,主服务器上的信息是最新的信息。
副域名服务器
副域名服务器是一个备份服务器。
它包含有主服务器上基本相同的信息。
在一个可以设置的时间间隔,它会从主服务器上更新数据。
副域名服务器可以选择是否在本地磁盘上保留原始记录。
这可以在named.boot中进行配置。
缓存服务器
缓存服务器不在本地的磁盘上存储数据。
所有的数据都是放在系统的缓存中。
在多用户系统中使用缓存服务器可以加速域名查询的速度。
缓存服务器提供一个非正式的备份方式,与在本地存储数据的副域名服务器相比较,这种方式最大的优点是:
在一个新的子域加入到一个主域名服务器中时,它不需要更新本地DNS数据库中的数据。
你的位置:
首页->系统管理->网络管理->DNS域名解析
(2)
DNS域名解析
(2)
6.解析在本域中主机的主机名
每当在一个网络服务中指明一个目标主机的主机名的时候,就会间接启动一个解析器程序如gethostbyname()。
因为网络通信使用的是IP地址而不是主机名,所以首先要将主机名解析为IP地址。
解析器的任务:
判定本地节点首先使用的是BIND,NIS,还是/etc/hosts,这里我们假设使用的是BIND。
当目标地址是一个相对域名的时候自动构建一个可能的绝对域名的列表。
向域名服务器发出查询请求(可以为本地主机或是在/etc/resolv.conf中配置的远程主机)将域名解析为IP地址。
如果没有域名服务器响应,用户程序会挂起一小段时间。
如果配置的域名服务器响应但是返回的数据无效,会自动转向使用NIS或者/etc/hosts。
如果我们使用的是NIS而不是BIND,解析器会从指定的NIS服务器中查询主机的NIS映射表。
如果BIND,和NIS都配置了,有的UNIX会首先使用BIND如(HP-UX),而有的UNIX会首先使用NIS,如(SUN-OS)。
域名搜索列表
当想要查询的主机的域名和你的当前主机在同一域或者子域的时候,你不需要键入完整的域名,解析器会自动为你加上后缀。
例如,如果你在域中,同时你键入命令telnetla,解析器会自动构造一个搜索列表:
在解析器的配置文件中添加更多的域的后缀会进行更广泛的搜索,例如:
解析器会向域名服务器查询搜索列表中的每个域名直到找到正确的域名。
如果用户提供的是一个完全格式的主机名,发送到域名服务器的就只有一个查询请求。
nsLookup
nslookup命令可以检查主机名解析的过程:
$nslookup
DefaultNameServer:
address:
128.1.1.1
>ctrl+d
$nslookupla
NameServer:
Address:
128.1.1.1
Name:
Address:
128.1.1.3
Aliases:
los_angeles
$
7.解析在其它域中的主机名
当查询在其它域中的主机名的时候,DNS客户端仍旧会将查询请求发送到本地的DNS服务器。
由于被查询的主机名不在本地的服务器的数据库里,DNS服务器会以一种递归的方式在其它的域中查询这个主机名。
递归查询的过程如下所示:
1.假定机器genius,上的某个用户要求arpa,机器进行数据通信,此时本地机器将发现在本域内()中无法实现此种转换(找到此域名对应的IP地址),于是发送一个请求给根服务器。
根服务器根据域名中的.com和它所记录的.com域名服务器地址向此服务器询问的地址,.com服务器接到此请求后,将根据名称中的.att域名及它所记录的.att域名服务器的地址向该服务器询与相应的IP地址。
在域名服务器中将记录有arpa主机的Internet地址,于是它将此地址返回给.com服务器。
.com服务器会将此结果返回给根服务器,而最后由根服务器将之返回给genius机器。
2.本地DNS服务器会将这些所有的名称服务器的地址缓存,还有最后返回的解析结果。
3.如果本地服务器接收到另外的一个相同的主机名的解析请求时,就会直接从缓存中取出数据,并立即返回用户需要的IP地址。
你的位置:
首页->系统管理->网络管理->DNS域名解析(3)
DNS域名解析(3)
配置主域名服务器
1.向internic注册你的域名。
2.在/etc/hosts文件中定义全格式的主机名(域名)。
3.创建一个目录存放DNS数据库文件。
4.创建一个hosts_to_named命令需要的配置参数文件。
5.创建一个hosts_to_named命令需要的DNS数据文件和启动文件。
6.下载一个db.cache文件,其中包含root服务器的最新的地址列表。
7.修改/etc/rc.config.d/namesvrs文件并且启动named守护进程。
8.配置DNS客户端的功能。
以上是配置一个主域名服务器的详细步骤。
这里我们假定要将sanfran节点配置为一个主域名服务器,这个服务器所在的域为。
步骤如下:
1.向internic注册你的域
为了让internet中的其它的人可以检索到你的域中的主机名,internic必须要知道你的域的存在。
你可以向internic申请你的域名,地址为
无论在哪种情况下,你可能都需要提供你的域名和主域名服务器和辅域名服务器的名称和IP地址。
2.提供完全格式的/etc/hosts文件
HP-UX提供的hosts_to_named工具能够将/etc/hosts中的数据直接转换成主域名服务器上的DNS数据库。
为了实现这个功能,hosts文件中的所有条目都需要是完全格式的主机名。
而旧主机名可以作为别名存在。
如果还可以删除hosts文件中域名服务器不能解析的子域条目。
(注意,这样localhost条目必须保留)。
下面的例子说明了需要对sanfran主机上的hosts文件作出哪些改动:
vi/etc/hosts
127.0.0.1localhosts
128.1.1.1sanfran
128.1.1.2oakland
128.1.1.3la
3.创建一个目录保存DNS数据库文件。
hosts_to_named程序会创建几个DNS数据文件。
在默认情况下,这些文件会存储在/etc/named.data目录下。
你也还可以使用mkdir命令手工创建这个目录:
mkdir/etc/named.data
cd/etc/named.data
4.为hosts_to_named程序创建一个param文件。
hosts_to_named是一个强大的创建DNS数据库文件的工具。
hosts_to_named自动搜索一个param文件来决定对哪些域的主机提供域名解析服务。
在-d选项后面加上一个域名,指定这个域名服务器所服务的域,由于一些域名服务器同时为多个域提供域名解析,这时就需要多个-d选项。
在-n选项后面加上这个域中的每个子域的名称,由于很多主机存在于子域中,这时就需要多个-ns选项。
-b选项决定你的DNS启动文件存储的位置。
标准的位置是/etc/named.boot。
因为辅域名服务器需要从主域名服务器下载一个配置文件,其中包含主域名服务器的IP地址和这个域的其它信息。
-z选项会创建辅域名服务器需要下载的配置文件。
其它的选项可以参看hosts_to_named名称的联机帮助。
sanfran域名服务器的param文件如下所示:
vi/etc/named.data/param
-d<---这里填上你的域名
-n128.1.1<---这里填上你的子域的地址
-z128.1.1.1<---这里填上你的辅域名服务器的IP地址
-b/etc/named.boot<---指定DNS启动文件存放位置
5.创建hosts_to_named的DNS数据文件和启动文件。
hosts_to_named工具自动使用/etc/hosts文件来生成DNS数据文件,使用的是在param文件中定义的选项。
如:
#hosts_to_named-fparam
Translating/etc/hoststolowercase...
collectingnetworkdata...
128.1
creatinglistofmulti-homedhosts...
creating"A"data(nametoaddressmapping)fornet128.1...
creating"PTR"DATA(addresstonamemapping)fornet128.1...
creating"MX"(mailexchanger)data...
Buildingdefaultdb.rootfile...
Buildingdefaultboot.sec.saveforsecondaryservers...
Buildingdefaultboot.secforsecondaryservers...
Buildingdefaultboot.casheonlyforcashingonlyservers...
done
6.下载一个db.cashe文件,其中包含root服务器的IP地址列表。
hosts_to_named工具能够创建几乎所有的DNS数据库文件,只有一个文件除外,那就是你必须手工创建db.cashe文件,其中包含root域名服务器地址。
你可以从internic的web网站上ftp下来一个包含当前root服务器地址的文件。
由于root服务器列表随时都可能改变,你可能会需要定时地下载这个文件。
7.修改/etc/rc.config.d/namesvrs。
手工的启动named进程,不需要重启动机器。
为了让域名服务器的守护进程'named'在系统启动的时候一起启动,需要设置/etc/rc.config.d/namesvrs中的NAMED变量为“1”。
vi/etc/rc.config.d/namesvrs
...
NAMED=1
NAMED_ARGS=""
...
#/sbin/init.d/namedstart
named可以带参数启动,但是通常对NAMED_ARGS变量的值都不进行设置。
8.配置客户端的功能在以下几章中说明。
param文件的中的选项
param文件的选项如下:
d指明默认的域。
db.ca文件会被创建。
想要添加其它的域,可以在这个选项后面添加条目
n指明子网的网络地址
r指明主服务器同样也是root服务器,db.root文件会被创建。
z和Z创建文件boot.sec和boot.sec.save,这些文件会被传送到辅服务器作boot文件
b指明boot文件的名称和所在位置。
创建的数据文件
以下的数据文件是hosts_to_named将创建的文件。
/etc/named.bootnamed的启动文件
/etc/named.data/db.caca域的数据库文件,将主机名映射为IP地址
/etc/named.data/db.127.0.0本地loopback的数据库文件,将IP地址映射为主机名
/etc/named.data/db.128.1网络128.1的数据库文件,将IP地址映射为主机名
/etc/named.data/db.root仅作为root服务器
/etc/named.data/boot.sec传送给辅域名服务器的文件
/etc/named.data/boot.sec.save传送给辅域名服务器的文件
/etc/named.data/boot.casheonly传送给缓存域名服务器的文件
注意:
这些数据文件可以存在于任何目录下,这取决于你在什么目录下运行的hosts_to_named命令,name.boot文件中包含有这些文件的位置信息。
如果参数文件中不包含-b(boot文件)的选项,你必须手工删除/etc目录下的named.boot文件。
你的位置:
首页->系统管理->网络管理->DNS域名解析(4)
DNS域名解析(4)
配置辅域名服务器
步骤:
1.为DNS数据文件创建一个目录
2.从主域名服务器上FTP一个配置文件
3.从主域名服务器上FTPdb.127.0.0和db.cache的一个拷贝
4.从主域名服务器上FTP附加的DNS数据文件(可选)
5.修改配置文件/etc/rc.config.d/namesvrs,并启动named守护进程
6.设置辅域名服务器上的客户端的功能
为什么要配置一个辅域名服务器?
每一个域都应该有第二个服务器作为主域名服务器的补充。
辅域名服务器的主要作用是在主域名服务器失效的时候提供名称解析一个备份。
同时,通过对客户端进行某些设置,辅域名服务器也能够减轻主域名服务器的负载,
创建一个辅域名服务器的步骤如下:
1.在辅域名服务器上创建一个单独的目录存放数据库文件和配置文件。
大部分的辅域名服务器在本地保存本域的DNS数据文件。
这个数据库文件一般是存储在/etc/named.data目录下。
#mkdir/etc/named.data
#chmod755/etc/named.data
2.从主服务器上FTP一个启动配置文件。
named进程在启动的时候会参考/etc/named.boot中的设置来决定DNS数据库文件存放的位置。
你可以从主服务器上下载一个named.boot文件。
主服务器上可能会有两个named.boot文件的版本:
/etc/named.data/boot.sec.save和/etc/named.data/boot.sec。
如果你希望你的辅域名服务器在系统重启动后仍旧保留所有的DNS数据库文件的一个完全的磁盘拷贝,你可以选择下载/etc/named.data/boot.sec.save文件。
这样作的目的在于:
如果在辅域名服务器启动的时候主服务器无效,辅域名服务器仍然可以使用存储在本地的DNS数据文件来启动DNS服务。
如果你选择下载/etc/named/boot.sec文件,辅域名服务器就不会主动维护本地磁盘的数据库文件,在这种情况下,如果辅域名服务器启动的时候主服务器处于无效状态,named进程就不能够启动
注意,你只能有一个boot文件。
named守护进程启动的时候会自动读取这个文件中的配置信息。
ftp128.1.1.1<---FTP连到你的主域名服务器
get/etc/named.data/boot.sec.save/etc/named.boot
quit
3.从主服务器FTP一个db.127.0.0和db.cache文件。
每个域名服务器都要有两个DNS数据文件。
db.127.0.0文件用来解析loopback地址。
而域名服务器依靠db.cache文件来查找根域名服务器。
从主域名服务器上可以下载这两个文件。
ftp128.1.1.1FTP连接到主服务器
get/etc/named.data/db.127.0.0getdb.127.0.0
get/etc/named.data/db.cachegetdb.cache
quit
4.从主域名服务器FTP另外的数据库文件(任选项)
如果你你想要你的辅域名服务器在本地磁盘中保存所有的DNS数据文件的拷贝,你需要从主服务器下载所有的数据文件。
在第一次下载这个文件后,以后辅域名服务器会自动按照一定的间隔时间从主服务器上更新数据。
ftp128.1.1.1<---FTPtothepromaryserver
mget/etc/named.data/db.*<---GETtheDNSdatabasefiles
quit<--退出ftp
5.修改/etc/rc.config.d/namesvrs。
手工启动named进程,,不需要重新启动系统。
#vi/etc/rc.config.d/namesvrs
NAMED=1
NAMED_ARGS=""
#/sbin/init.d/namedstart
named可以带参数运行,但是通常都不对NAMED_ARGS变量进行设置。
6.配
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 管理 DNS 域名解析