网站运营
位置:首页>> 网站运营>> 域名的概念与机制(3)(2)

域名的概念与机制(3)(2)

 来源:asp之家 发布时间:2010-02-05 18:56:00 

标签:域名,服务器

3.3.4. 否定响应缓冲(可选)

DNS可以允许服务器提供一种否定响应缓冲服务,在这种服务下服务器返回一个否定响应和一个TTL,resolver可以认为在TTL的时间之内相同的查询都会获得否定响应。同样的,resolver可以进行一个配置多个类型的查询,并缓冲不存在的类型。

实现的方法是当数据是被认证时服务器加入一个SOA RR到响应的附加区域,SOA必须是那个区的,而且这个区必须中响应中数据的认证权威区,SOA的MINIMUM域控制缓冲否定响应的时间。在有些情况下,响应数据可能包括多个拥有者名,这时SOA机制应该用于匹配QNAME的数据上,它才是唯一被认证了的数据。服务器和resovler不应该试图添加SOA到非认证响应的附加区域,也不应该进行任何推测。

这个功能是可选的,虽然现在它越来越有可能成为标准,但是服务器并非非要加SOA RR到所有的认证响应中去,resolver也不一定非要缓冲否定结果。所有的resolver和支持循环查询的服务器都应该可以忽略SOA RR。

3.3.5. 区的维护与传输

区管理员的部分工作是维护所有服务器上的区数据。当必须要进行修改时,修改必须让所有的名字服务器知道。这一过程可以通过FTP或其它什么过程完成,而推荐的方法是DNS协议的区传输部分所指出的方法。通常的自动更新模式是一个服务器是区的主服务器,管理员对区内的域名文件(master file)进行修改,修改后管理员通知主服务器装载新的数据,其它的非主服务器定期和主服务器进行同步。

为了知道是否发生了修改,非主服务器必须检查SOA的SERIAL域,只要有改变,SERIAL域就会改变,这种改变可能是加一,也可能是其它的什么算法,反正变了就行。因为我们改变的域大小是有范围的,因此理论上必须有一个修改的时间间隔,基本上,老的复本必须在序列号(就是那个域)用完其空间一半时消失。实际上只要保证比较操作的正确性就可以了。

非主服务器的定期同步由区内SOA RR的参数REFRESH,RETRY和EXPIRE决定。当非主服务器装入新区时,它会在REFRESH秒后向主服务器查询新序列号,如果查询未能完成,它会每隔RETRY秒重新进行一次。如果查询得到的序列号和原来的序列号一样,则不需要进行改变。在REFRESH时间间隔后重新开始。如果非主服务器在EXPIRE间隔后不能进行查询,它必须抛弃现有的区数据。

当查询后知道区内的数据已经改变,非主服务器必须通过AXFR请求请求主服务器传送区数据。AXFR可能会被拒绝而产生错误,但是通常情况下会得到一系列响应信息。第一个和最后一个信息必须包括区内顶认证结点的数据。中间的信息包括区内其它RR的信息,包括认证的和非认证的。这些数据使非主服务器得到区数据的复本,因为必须保证数据的准确,我们必须使用基于连接的协议。以上的查询操作不但可以在主服务器非主服务器之间进行,而且可以在非主服务器之间进行。这可以提高整体的运行效率。

4. RESOLVERS

4.1. 介绍

Resolver是用户程序和域名服务器之间的接口,最简单的情况下,resolver接收从用户来的请求,返回符合本地数据格式的查询结果。resolver和请求DNS服务的程序在同一台机器上,但DNS服务器则在其它机器上,因为resolver可能要查询多个名字服务器,所有它需要有一个本地缓冲,而查询的时间则可能因具体查询不同而差别很大。resolver的一个重要作用是就是它有一个多个程序可以共享的缓冲区,这里保存着一些查询结果,使用这些结果可以减少对服务器反复的查询。

4.2. 客户-resolver接口

4.2.1. 典型函数

这个接口因主机不同而不同,但有三个函数是大家必须都有的:

  1. 主机名到主机地址转换,此函数通常定义用来模拟原来基于HOSTS.TXT的函数。给定一个字符串,返回一个32位IP地址,在DNS下,它转换为请求类型A的RR请求。因为DNS不保存RR的顺序,函数会进行排序将返回的许多地址中的一个返回给用户。请注意:最好是返回多个地址,但单个地址是模拟原来基于HOSTS.TXT服务的。

  2. 主机地址到主机名转换,给定32位IP地址,返回字符串。查询时采用PRT查询,主机名加上"IN-ADDR.ARPA"后缀进行查询,如IP地址为1.2.3.4,则PTR RR查询域名"4.3.2.1.IN-ADDR.ARPA"。

  3. 通用查询函数,调用者提供QNAME,QTYPE和QCLASS,希望所有匹配的RR,函数会使用DNS格式而非本机格式返回查询结果,结果中包括所有RR的内容。

在resolver执行上面的函数时,会返回以下的结果给客户:

  • 给定请求数据的一个或多个RR,此时resovler以合适的格式返回结果

  • 名字错误(NE),在查询的名字不存在是会返回NE

  • 未找到数据错误,查询的名字存在,但合适类型的数据不存在时产生这种错误,如把主机地址用于邮箱地址时会返回错误

需要注意的是,有时某些函数会在查询时名字错误和数据未找到错误会被合并为另一种类型的错误,但通常函数不会。一个原因是程序通常先查询一个名字(包括类型信息),然后是同一个名字的另外类型,如果两个错误合起来,反面会减慢查询速度。

4.2.2. 别名

当试图解析一个特殊的名字查询时,resolver可能发现这是一个别名,如果可能这种情况会返回给客户。但是经常,当resolver碰到一个CNAME时,它会重新开始一个查询。然而,在执行通常函数而且CNAME RR配置查询类型时,resolver不应该要别名。在有别名的时候有几种特殊情况。多级别名应该避免,因为太缺乏效率,但这也不应该被做为错误返回给客户。对于别名循环和别名指向不存在的名字时应该将错误返回给客户。

4.2.3. 临时错误

有时候因为网络等原因,resolver可能不能完成某个请求,这时不应该返回没有名字或未查询到这类错误。这类错误对人类用户来说可是件烦心的事。在某些时候可以阻塞请求,但这并不是个好的解决之道,特别是服务器就等它完成以转向其它任务的时候。推荐的方法是返回错误指示现在出现临时错误。

4.3. Resolver内部

每个resolver的实现都不相同,会有复杂的逻辑处理各种错误,而本文只讨论一个纲领。

4.3.1. 根(Stub)resolvers

一种实现resolver的方法就是在支持循环查询的服务器上实现,这样可以节省PC机上的资源,也可以对查询结果缓冲进行集中管理。其它的事情就是要一个支持循环查询服务器地址的文件在PC机上,PC机上资源有限,支持一个域名数据库可能不太现实。用户必须确定所列的名字服务器支持循环查询,服务器可以拒绝进行任何客户的循环查询请求,因此用户必须向管理员核对。这种类型的服务有一些不足,因为循环查询较费时,根对UDP重发时间的选择比较难以确定,服务器会因为根的反复重发而崩溃。使用TCP或许会好,但这样会严重占用主机时间,使用TCP相当于实现一个实时的查询系统。

4.3.2. 资源

除了自己的资源外,resolver可以访问本地服务器保存的区数据。这会使resolver的速度加快,但是也可以让缓冲数据冲掉区数据。本文中指的本地信息是说缓冲和共享区数据,在有认证数据和缓冲数据时应该优先使用认证数据。下面的算法假设所有函数被转换为一个通常的查询函数,使用下面的数据结构代表进行中的请求的状态:

SNAME

要查询的域名

STYPE

查询请求的QTYPE

SCLASS

查询请求的QCLASS

SLIST

表示正在查询的名字服务器和区,它保存resolver的预测,预测希望查询的数据在什么地方,通过接收的数据,此结构内的数据会发生变化。它包括服务器地址,区内已知的服务器,历史记录,以及表示查询距离目标还有多远的标记(查询从树顶开始向下,直到目标)。

SBELT

在resolver无法从本地信息知道应该查询哪个服务器时,它就派上用场了。

CACHE

保存前一次响应的结果,因为resolver会抛弃达到TTL时间的RR,所有大部分resolver实现将接收到RR的时间转换为绝对时间,然后保存在缓冲中,resolver可以在查询时顺便将过期RR抛弃,也可定期进行维护。

0
投稿

猜你喜欢

  • 国内大数多站长,还都是靠挂广告联盟的广告来赚钱的,所以选择一个优秀的广告联盟,对站长来说是非常重要的,广告联盟常见的几百家,国内国外的多的是
  • 如何在WordPress程序中集成支付宝是实现WordPress电子商务化必须要突破的一个瓶颈。WordPress有很多的电子商务类插件,像
  • 11月19日消息,中国领先的社区平台与服务提供商康盛创想(Comsenz)旗下核心产品Discuz!新版正式发布。全新推出的Discuz!
  • 【教程适用于独立主机或者虚拟主机】一、后台→ 全局 → 关闭站点(为了不影响数据库备份)转移开始第一步:备份整站数据并上传到新空间第二步:备
  • 垃圾站的seo是很重要的,因为一般来说垃圾站的内容不存在回头客,这就要求最大限度的从搜索中截取流量,一般来说当你的日ip到了4000左右稳定
  • 虚拟基础架构时常遭遇简单解决方案效率低下的困扰。虚拟机执行匮乏的现状阻碍了虚拟化技术的普及。以下的十大虚拟机优化小窍门能帮助用户轻松解决每个
  • 如今的网络日新月异,大大小小的网站层出不穷。各地方的网站,论坛也相继推出。地方网站的推出,要别于一般的网站。下面,跟大家一起分享关于地方网站
  • 概要本文介绍了如何为“Internet 信息服务”(IIS)“简单邮件传输协议”(SMTP) 邮件中继服务器配置远程域。Windows Se
  • 为了庆祝今天ID解封,特发一篇小教程,针对新手的,讲错的地方欢迎指正,下面开始教程. 在网上流传很广,坛子里也有几个人都转过,这里
  • Google Adwords [ ¥200.00 /天 ] 2,307 3,040,019 0.07% ¥0
  • 做seo的人,接到一个新的网站,第一步肯定要先诊断一个网站,然后,才能针对网站中存在的问题进行分析,再制定相关的优化方案。再进行优化。所以,
  • ·IIS中配置SSI的方法:1)在IIS管理界面里面点中 选择一个web站点,鼠标右键->属性->选择&a
  • 康盛的 authcode 函数可以说对中国的PHP界作出了重大贡献。包括康盛自己的产品,以及大部分中国使用PHP的公司都用这个函数进行加密,
  • 查看记录文件是很乏味的。记录文件令人厌恶,包含了太多的信息,经常使人非常头疼。幸运的是,这些枯燥的工作有代劳者,利用一些日志分析工具,不仅可
  • 记得很早以前看到过这样的一段介绍:想象你在逛街边的一家书店,如果最终你没有购买任何图书就直接离开了,店长并不会知道你来过。但是如果你买了书,
  • 1、IIS为一个死循的执行过程设定执行时间(缺省为90秒)超时事件:    <%respons
  • 在Godaddy购买独立IP,单独选择的时候,只能选择选择2个月的,有点令人头痛,现在用另一种方法,也许对大家有所帮助:1.打开Godadd
  • 从做网赚到现在,大概也差不多二年多了!看标题,想赚钱的人肯定是希望透露最新最赚钱的网赚项目,不过,这里也没有什么好的网赚项目介绍给大家的,因
  • 即日起,Robin主持点石你问我答,如果你有关SEO方面的问题需要咨询,不妨让我知道。你问我答每周举行一次,Robin会挑选3个具有典型性的
  • 在看这篇文章之前,有几点要注意:1、everyone用户完全控制目录在服务器上绝对不能出现2、WEB目录上的权限都是独立的一般情况下是读取和
手机版 网站运营 asp之家 www.aspxhome.com