分类: LINUX
2008-03-03 20:36:59
forwarders 配置 |
行为 |
options
{
forwarders {转发器1;转发器2;....;}; }; |
所有不在缓存或者不属于本地 zone (包括下级子域)的查询将首先交给转发器1,2。 |
options
{
forwarders {转发器1;转发器2;..;}; }; zone
"xxx" {
type master|slave|stub;
forwarders {转发器3;...;}; }; |
默认所有不再缓存或者不属于本地 zone (包括下级子域)的查询将首先交给转发器1,2。 但如果是关于 zone “xxx”的下级子域查询,将转发到转发器3。因为本地name server 对xxx zone 肯定权威的,所以肯定不会用到转发器。只有对 xxx 的下级子域的查询由于被授权出去,假设又不在本地 name server 的缓存中,就会被送到转发器3。注意,这种配置是不对的。 |
options
{
forwarders{转发器1;转发器2;...;}; };
zone
"xxx" {
type master|slave|stub;
forwarders {}; }; |
默认所有不再缓存或者不属于本地 zone (包括下级子域)的查询将首先交给转发器1,2。 但如果是关于 xxx zone 或者其下级子域的所有查询,将不会使用任何转发器,而是通过 NS 授权记录。这才是正确的方式 |
options
{
forwarders{转发器1;转发器2;...;}; };
zone
"yyy" {
type forward; forwarders {转发器3;...;}; }; |
默认所有不再缓存或者不属于本地 zone (包括下级子域)的查询将首先交给转发器1,2。 当查询属于某个特定的外部 zone 时,转发到转发器3。而不是默认的转发器1,2 该配置类似于第三种,但这里的 yyy 一般是一个外部的 zone ,而且该 zone 的 name server 和本地 name server 之间存在某些专用的连接,这样就不用通过转发器1,2 来查询,而是直接交给这个外部 zone 的 DNS 服务器解释,比交给转发器1,2 要来的快 |
2、使用 forward zone 的情况 :
Ø
下级子域解释上级域名,直接转发给上级域。不需要经过转发器再自上到下
Ø
本地 name server 到某个 zone 有专门的连接,可以使用 forward zone 直接转发,省去查询授权记录的过
程。
3、使用转发器存在以下问题 :
Ø
Single
point of failure :存在单点故障的可能
n
使用多个转发器,但会增加成本
Ø
Concentration
(集中) of
load :负载集中在转发器上
n
如果是 BIND 9 ,且有多台转发器,可以通过定制 forwarders {} 中不同的顺序来解决
Ø
Inefficient
resolution :查询效率低,见第9问。
n
注意上级域服务器查询下级子域的问题,在所有 name server 的本地 zone 都配置 forwarders {};
n
尽量使用 forward zone
4、forward zone 适用于递归查询,不适用于非递归查询。例如一个主机向本地 name
server 查询某个特定的域名,本地name
server 将避开从
root-server 往下查找授权的过程,而是直接转发给某个服务器,再收取结果最后返回给客户机。但如果是一个 name
server 发来的查询就不一样了,因为是非递归查询,本地 name
server 不会主动查询外部 name
server ,而是返回一个
referral ,有可能就是 root
servers 了,这也就意味必须从 root
server 开始查起。