《DNS与BIND(第5版)》——10.5 转发机制

10.5 转发机制

某些网络连接不希望发送过多的流量到外界去,可能是因为对外的连接速率低、延迟高;例如,远程办公室通过卫星连接到公司的网络。在这些情况下,可能需要将对外的DNS流量限制到最低。BIND提供了一种解决此问题的机制:转发器(forwarder)。

如果需要将名称解析分流至特定的名称服务器,那么转发器也是很有用的。例如,如果网络中只有一台主机连接到Internet,并且该主机是名称服务器,则可以将其配置为其他名称服务器的转发器,这样它们就可以查询Internet上的域名了。(本书第11章讨论防火墙时,将会更多地用到转发器。)

如果给网站指定了一个或多个服务器作为转发器,则名称服务器会把所有对外的DNS查询先发送给转发器。也就是说,转发器负责处理站点所有对外的DNS查询,并建立充足的信息缓存。对于任何对外部区域的查询,转发器几乎都能在缓存中找到答案,这样就能避免其他服务器对外发送查询。让一个名称服务器成为转发器非常简单:只要修改站点上所有其他服务器,将它们的查询指向转发器即可。

当一个primary或slave名称服务器被配置为使用转发器时,其操作模式将会稍有变化。如果解析器查询的记录已经存在于名称服务器的权威数据或缓存数据中,名称服务器就会用其作为应答;这部分操作没有变化。然而,如果该记录不在数据库中,名称服务器会向转发器发送查询,在等待短暂的周期而没有收到应答后,才会继续正常的操作,开始执行迭代(iterative)的名称解析过程。这种操作模式称为转发优先(forward first)。最主要的不同在于:名称服务器会向转发器发送一个递归(recursive)的查询,希望能直接得到应答。而在其他任何时候,名称服务器只会向其他名称服务器发送非递归的查询。

例如,在BIND 8和9的名称服务器上,用forwarders子语句指定区域movie.edu的转发器。wormhole.movie.edu和toystory.movie.edu都是该网站的转发器。除了转发器本身,应该在所有名称服务器的配置文件中加入如下forwarders子语句:

https://yqfile.alicdn.com/2978adeabacdbdc3c0230f11fea37ad7c27cc152.png" >

当使用转发器时,请尽量使站点配置保持简洁。否则最终有可能得到一个非常混乱的配置。

警告

避免转发器形成链。不要配置为:名称服务器A转发给服务器B,而服务器B又转发给服务器C(最糟糕的是C又转发回服务器A)。这将导致过长的解析延迟并使配置变得脆弱,因为链中的任何转发器出现故障都会妨碍或中断名称解析。
10.5.1 给名称服务器更多限制
有时需要给名称服务器更多限制,让它们在转发器宕机或没有应答时,甚至不会试图联系外部的服务器。这可以通过将名称服务器配置成forward-only模式来实现。以forward-only模式工作的名称服务器,只是使用转发器的名称服务器的另一种形态。它仍通过查询自己的权威数据和缓存数据来应答。工作在forward-only模式的名称服务器配置文件应该包含如下内容:

如果要使用forward-only模式,则必须配置转发器,否则是没有意义的。在BIND 之前的版本上配置名称服务器工作在forward-only模式时,如果打算让转发器的IP地址出现一次以上,可以参考如下配置:

名称服务器只和每个转发器联系一次,等待短暂的时间接收转发器的应答。可以通过重复列出转发器IP地址的方式,让名称服务器重复发送查询给转发器,并以此增加forward-only名称服务器等候转发器应答的总时间。

提示

使用经验:forward-only模式能够比forward-first模式(默认模式)提供更可预测的名称解析服务。如果名称服务器发送查询,而转发器很久没有应答导致超时,那时名称服务器再开始执行迭代名称解析,发送原始查询的解析器往往已经放弃或濒临放弃。于是,解析器会得到不一致的解析结果:一些查询(解析速度快的)得到了应答,而另一些则会超时。
10.5.2 转发区域
习惯上,所有区域要么全都使用转发器,要么全都不用转发器:使用转发器解析名称服务器自己无法解析的每条查询,或者根本不用转发器。然而,在某些情况下,能够对转发机制有更多的控制会很方便。例如,对特定的域名使用特定的转发器,而仍使用迭代方式解析其他域名。

BIND 8.2引入了一个新功能:forward zones(转发区域),该功能允许名称服务器配置成只在查询特定域名时才使用转发器。(BIND 9自版开始支持转发区域。)例如,可以将名称服务器配置为,对所有以pixar.com为结尾的域名的查询,都转发给Pixar的一对名称服务器:

为何要做如此明确的配置,而不让名称服务器遵循com名称服务器对pixar.com名称服务器的授权关系呢?想象一下,如果你和Pixar之间有一条私人连接,并且你被告知需要使用一组只能从你的网络到达的特殊名称服务器,并可以通过它们来解析所有pixar.com域名,那么就应该做上述配置。

即使转发规则被指定在zone语句中,它们仍会作用于以指定域名为结尾的所有域名。也就是说,无论所查询的域名foo.bar.pixar.com是否位于pixar.com区域,由于其以pixar.com为结尾(或者说在pixar.com域中),转发规则也同样起作用。

还有另一种不同的转发区域,和刚才的例子刚好相反。它允许指定哪些查询不使用转发机制。因此,它只适用于在options语句中指定了转发器的名称服务器,通常,options语句会作用于所有查询。

这种转发区域使用zone语句来配置,但不使用forward类型,而是使用正常区域的master、slave或stub类型,并配置forwarders子语句。为“关闭”options语句中的转发配置,要将转发器列表指定为空集:

https://yqfile.alicdn.com/461a5f05f80a01c8a208d0124ed84ba23015abaf.png" >

等一下,为什么关闭所管理区域的转发功能?难道直接应答查询而不使用转发器吗?

记住,转发规则对以该区域的域名为结尾的所有域名的查询都有效。因此这条转发规则实际只作用于,对movie.edu授权的子域域名所作的查询,例如fx.movie.edu。如果没有该转发规则,这个名称服务器将把对matrix.fx.movie.edu的查询转发给192.249.249.3和192.249.249.1这两个名称服务器。有了该转发规则,名称服务器就会根据movie.edu区域提供的子域NS记录,直接查询fx.movie.edu名称服务器。

转发区域对Internet防火墙的配置有很大帮助,本书将在第11章进行探讨。

转发器选择机制

BIND 8名称服务器自开始,BIND 9名称服务器自9.3.0开始,只需要设置一次转发器列表。名称服务器不会按列表中的顺序依次查询转发器;它们将列表中的名称服务器解释为“候选”转发器,并根据往返时间选择首先查询的转发器,该往返时间由上次查询的响应时间确定。

如果转发器失效了,这样做就很有好处,尤其当出问题的就是列表中的第一个转发器时。旧版的BIND会在查询列表中的下一个转发器之前,持续盲目查询失效的转发器。而新版的BIND很快会意识到那个转发器已经失去响应,并且会尝试查询另一个。

时间: 2024-09-10 20:34:38

《DNS与BIND(第5版)》——10.5 转发机制的相关文章

《DNS与BIND(第5版)》——10.12 系统优化

10.12 系统优化 对于大多数名称服务器来说,在BIND的默认配置下就能工作得很好,然而可能其中某个还需要进一步调优.本节将讨论可以用来优化名称服务器的所有配置项. 10.12.1 区域传输区域传输会给名称服务器带来沉重的负担.所以BIND提供一些机制,可以限制slave名称服务器给master服务器带来的区域传输负载. 1.限制请求单个名称服务器传输的区域数量 在slave名称服务器上,可以限制其一次能够向单个master名称服务器请求传输的区域数量.这样master名称服务器的管理员应该会

《DNS与BIND(第5版)》——10.2 DNS动态更新

10.2 DNS动态更新 Internet(即通常使用TCP/IP协议的网络)如今变得愈加动态化.许多大型企业使用DHCP动态分配IP地址.几乎所有的ISP都使用DHCP为其拨号及使用线缆调制解调器(cable modem)的用户分配IP地址.为适应这种变化,DNS需要提供动态增加和删除记录的功能.RFC 2136描述了这种机制,称为DNS动态更新. BIND 8和9支持RFC 2136提出的动态更新功能.此功能允许经过授权的更新者(updater),在区域中的权威名称服务器上增加和删除资源记录

《DNS与BIND(第5版)》——10.11 回避伪装的名称服务器

10.11 回避伪装的名称服务器 作为名称服务器的管理员,可能会发现某些远程名称服务器用有害的信息作为应答,这些信息可能是过时的.不正确的.格式错误的,甚至是故意欺骗的.可以尝试通知对方的管理员来修复该问题.或者通过配置,让名称服务器不再查询该服务器,BIND 8和BIND 及其后续版本支持这个功能.下面是配置文件中的语句: 当然,需要填入正确的IP地址. 如果名称服务器停止查询的服务器,是一个区域唯一的服务器,那么不要指望能够查询到位于该区域的名称了.但愿,还存在其他服务器可以提供关于该区域的

《DNS与BIND(第5版)》——10.9 优先选择特定网络上的名称服务器

10.9 优先选择特定网络上的名称服务器 BIND 8的拓扑(topology)功能与sortlist有些相似,不过它仅用于选择名称服务器.(BIND 9直到版仍不支持拓扑功能.)本章前面曾介绍过,BIND会从同一区域的各权威名称服务器中,选择出往返时间(round-trip time,简称RTT)最短的名称服务器.事实上并非如此.BIND 8在比较RTT时,实际上会把远程名称服务器分配到以64毫秒为单位划分的多个时段中.第一时段其实只有32毫秒宽,从0到32毫秒.下一时段从33到96毫秒,依次

Linux服务器配置之DNS——采用BIND

众所周知,Linux虽然在桌面应用上赶不上Windows普及和易用,但也恰恰是因为其看起来很麻烦的命令行操作,使得其在安全性方面要优于为了易用而采用图形化界面的windows ,正因如此,使得Linux在服务器方面可以大展拳脚,其中尤以apache著称的LAMP和DNS服务器BIND更是使用普遍.下面说说bind的配置方法. 首先,从以前写的文章知道,我采用的操作系统是RED HAT Fedora Core 7,在安装系统的时候,在选择软件包的时候,我是采用的自定义方式,我把一些没用的软件如那些

ISC发布DNS软件BIND更新 修复其中数个可远程利用的DoS漏洞 CVE-2017-3136 3137 3138

在2016年,BIND曾经出现过两次漏洞. 绿盟科技发布ISC BIND 9 DoS漏洞技术分析与防护方案 , BIND9 DoS漏洞CVE-2016-8864 绿盟科技发布技术分析与防护方案 北京有1435台设备受影响 .本周,互联网系统协会(ISC)又发布了DNS软件BIND更新,修复了可远程利用的数个拒绝服务漏洞.BIND 9.9.9-P8.9.10.4-P8和9.11.0-P5中修复了可导致声明失败的三个安全漏洞.绿盟科技发布安全威胁通告,全文见后. 三个漏洞中CVE-2017-3137

c语言-数据结构C语言版10道实习题目求解答!!

问题描述 数据结构C语言版10道实习题目求解答!! 除有特别说明外,每个题目请以自然语言.形式化表述(伪码.流程图等).程序代码三种方式描述. 顺序结构线性表LA与LB的节点关键字为整数.LA与LB的元素按非递减有序,线性表空间足够大.试给出一种高效算法,将LB中的元素合并到LA中,使新的LA元素仍保持非递减有序.高效是指最大限度的避免移动元素. 请写一个算法将线性表(a1,a2,-,an)逆置为(an,an-1,-,a1). 在一个递增有序的线性表中,有数值相同的元素存在.若存储方式为单链表,

iPhone6将于9月9日发布 移动4G版10日预售

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断淘宝客 站长团购 云主机 技术大厅 近些年的九月份似乎都是新机的集中爆发期,去年如此,今年看来,精彩还将继续,这其中大家最关注的莫过于iPhone 6了.虽然苹果的保密措施被称军事级别,但是随着发布日期临近,关于iPhone 6的相关"泄密"消息也多了起来,今天小编就从相关内部渠道得到消息:iPhone 6将于9月9日发布,移动4G版10日预售. 网

《DNS与BIND(第5版)》——10.7 轮询调度(Round-Robin)负载分配

10.7 轮询调度(Round-Robin)负载分配 自BIND 4.9发布之后,名称服务器已经正式支持一些过去必须通过补丁才能实现的负载分配功能.Bryan Beecher曾给BIND 写过一个补丁,以实现他所谓的"轮转地址记录(shuffle address records)".这是一组特殊类型的地址记录,名称服务器会在响应查询时轮转其中的地址.例如,域名foo.bar.baz有3个"可轮转"IP地址:192.168.1.1,192.168.1.2和192.16