bind有一项功能是forward,也就是只是做dns缓存。
适用以下情况:
1 做临时测试,不想向上级申请修改ns记录
2 不想向上级申请修改ns记录但希望交给另外的服务器处理
3 只有有限的公网IP,可以在把dns请求交给局域网
设置很简单:
zone "aslibra.com" {
type forward;
forward only;
forwarders {218.241.231.189;};
};
也就是我把域名解析权交给了某个IP,这个服务器只是做cache。
forward only是可选,不设置则该 DNS Server 无法联系到转发器,那么 BIND 会自己尝试解析。
如果你要禁止 BIND 在无法联系到转发器时不做任何操作,那么你还可以使用 forward only 命令,这样 BIND 只能使用区的权威数据和缓存来响应查询了( 在连接不到转发器的情况下 )。
forwarders可以添加多个dns服务器。
我们先做一个测试环境:
三台ns解析服务器,有ns、ns2和ns3
ns和ns2是权威的解析服务器,ns改为bind的forward,后端是ns3。
我们用dig检查一下:
[[email protected] view]# dig www.aslibra.com @ns.aslibra.com
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 300 IN A 222.76.215.25
;; Query time: 9 msec
;; SERVER: 219.232.241.83#53(219.232.241.83)
;; WHEN: Sun May 31 00:14:15 2009
;; MSG SIZE rcvd: 49
[[email protected] view]# dig www.aslibra.com @ns.aslibra.com
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 295 IN A 222.76.215.25
;; Query time: 0 msec
;; SERVER: 219.232.241.83#53(219.232.241.83)
;; WHEN: Sun May 31 00:14:20 2009
;; MSG SIZE rcvd: 49
看出来区别了吧,300和295是有效性,300是默认的有效时间,也就是说,刚开始就新缓存了这个记录,5秒后查询已经是从缓存取的记录,这个过了300秒后会重新从后端服务器取值。
而我们看看ns2:
[[email protected] view]# dig www.aslibra.com @ns2.aslibra.com
...(省略)
;; ANSWER SECTION:
www.aslibra.com. 300 IN A 222.76.215.25
;; AUTHORITY SECTION:
aslibra.com. 300 IN NS ns.aslibra.com.
aslibra.com. 300 IN NS ns2.aslibra.com.
aslibra.com. 300 IN NS ns3.aslibra.com.
;; ADDITIONAL SECTION:
ns.aslibra.com. 300 IN A 219.232.241.83
ns2.aslibra.com. 300 IN A 219.232.241.84
ns3.aslibra.com. 300 IN A 218.241.231.189
;; Query time: 0 msec
;; SERVER: 219.232.241.84#53(219.232.241.84)
;; WHEN: Sun May 31 00:15:25 2009
;; MSG SIZE rcvd: 150
这个是一直都是一样的,这个说明是直接提供的服务,不是forward。
就这么简单,have fun!!
原创内容如转载请注明:来自 阿权的书房
本帖地址:http://www.aslibra.com/blog/post/bind_forward_dig_check.php