DNS Server 4 forward 区域类型
 
     我们大家都知道我们的DNS服务器的区域类型有4种:master(主)slave(从) hint(根) forward(转发) 在前面3节的学习中master slave hint的区域类型我们大家都已经很熟悉了,下面我就想给介绍一下 转发数据类型forward.不过在讲之前,我想让大家考虑一下上一节为什么我们在子域名服务器上就不能 dig通父域的服务器呢,这是因为在我们的DNS系统中一般来说子域服务器是无法知道其父域DNS是谁的, 想想看,我们在配置子域授权时,什么地方提到过子域可以知道父域DNS主机ip地址的地方,要想实现 这样跨域的解析就要用到forward 也就是说当我们的子域DNS在接到www.yayu.com时,不是将其交给 根域,而是交给我们定义好的一个域 yayu.com。
 
需要在我们的子域DNS服务器ns.tech.yayu.com上的/etc/named.conf中添加
 zone “yayu.com” IN {
        type forward;
        forwarders { 192.168.106.3; }; 这里指向服务的DNS服务器
        forward only;   这里也可以写成forward frist ,区别在下面讲解
}
 
forward only:表示让我们的192.168.106.3 进行递归转发,也就是我给了92.168.106.3
    ,192.168.106.3就会给我最终的答案默认是递归转发
forward first:表示我首先交给192.168.106.3进行递归转发,如果不成功,我就是用迭代
     自己开始从根开始一步一步的查询
 
在我们的ns.tech.yayu.com主机上
 
]#vim /etc/named.conf
options {
    directory "/var/named";
    version "1.1";
};
 
zone "." IN {
        type hint;
        file "named.ca";
};
 
zone "localhost" IN {
     type master;
     file "localhost.zone";
};
 
zone "0.0.127.in-addr.arpa" IN {
     type master;
     file "named.local";
};
 
zone "yayu.com" IN {
    type forward;
    forwarders { 192.168.106.3; };
    forward only;
};
 
zone "tech.yayu.com" IN {
      type master;
      file "tech.yayu.com.zone";
};
]#rndc reload
]#dig -t A www.yayu.com
 这时就会有结果了 flags中也是没有a的
 
现在有一个问题我的ns.tech.yayu.com不能联通外网,,但是和我ns.tech.yayu.com
在同一个网段的主机bs.tech.yayu.com 能够上外网其地址是192.168.106.7我们怎么样
实现ns.tech.yayu.com能够dig同外网呢?
 
方法就是在我们ns.tech.yayu.com的/etc/named.conf文件中在option中定义forward
,也就是定义全局转发,不过全局转发的优先级是低于域转发,如果能够匹配到域转发,就以
域转发,否则最后才使用全局转发。
 
在 ns.tech.yayu.com 这台主机上
 
]#vim /etc/named.conf
options {
    directory "/var/named";
    forward only;
    forwarders { 192.168.106.7; }; 
    version "1.1";
};
 
zone "." IN {
        type hint;
        file "named.ca";
};
 
zone "localhost" IN {
     type master;
     file "localhost.zone";
};
 
zone "0.0.127.in-addr.arpa" IN {
     type master;
     file "named.local";
};
 
zone "yayu.com" IN {
    type forward;
    forwarders { 192.168.106.3; };
    forward only;
};
 
zone "tech.yayu.com" IN {
      type master;
      file "tech.yayu.com.zone";
};
]#rndc reload
]#dig -t A www.yayu.com
]#dig -t A www.tech.yayu.com
]#dig -t A www.sina.com        这些都是能够成功的
 
基于acl的访问DNS 来控制传送、查询、递归。 不过我们系统中已经定义3个主机 any none localhost 分别表示任意的 没有一个 只有本地的主机。
 
]#vim /etc/named.conf
acl "slaves" {
     192.168.106.2; 我们可以定义多个acl
     192.168.106.4;
};
 
options {
    directory "/var/named";
    forward only;
    forwarders { 192.168.106.7; }; 
    allow-rescursion { slaves; };   准许递归只能写在这个地方
    version "1.1";
};
 
zone "." IN {
        type hint;
        file "named.ca";
};
 
zone "localhost" IN {
     type master;
     file "localhost.zone";
};
 
zone "0.0.127.in-addr.arpa" IN {
     type master;
     file "named.local";
};
 
zone "yayu.com" IN {
    type forward;
    forwarders { 192.168.106.3; };
    forward only;
    allow-query { slaves; };    准许谁查询
};
 
zone "tech.yayu.com" IN {
      type master;
      file "tech.yayu.com.zone";
      allow-transfer { none; }; 准许谁进行传送 传送分为全局传送axfr 和增量传送 ixfr
};
]#rndc reload
 
这样基于acl的DNS也就做好了!