【原创】BIND9中View(视图)的用法

BIND9中View(视图)的用法

概述:

这里摘抄BIND9手册中的一段话"视图是 BIND9 的强大的新功能, 允许名称服务器根据询问者的不同有区别的回答 DNS查询。特别是当运行拆分 DNS 设置而不需要运行多个服务器时特别有用。"手册中说得很明了,只是根据不同的来源DNS服务器做出不同的回应。

 

应用场合:

  1. 需要将域名分成内网和外网两个不同的区域进行解析
  2. 根据不同的来源IP做出相对于来源IP的解析(电信的用户查询,返回电信网络的服务器地址,网通的查询返回网通服务器地址)

 

试验环境

DNS服务器环境

CentOS 5.2

所需要的包

bind-chroot-9.3.4

将bind主程序关在家里面

bind-libs-9.3.4

Bind程序运行库

bind-9.3.4

Bind服务器主程序

bind-utils-9.3.4

Bind客户端相关命令

caching-nameserver-9.3.4

named.conf等配置文件的示例

网络环境

DNS

eth0:115.12.65.254

eth1:192.168.0.254

WWW Server

eth0: 115.12.65.3

eth1:192.168.0.250

MailServer

eth0: 115.12.65.4

eth1:192.168.0.251

FtpServer

eth0: 115.12.65.5

eth1:192.168.0.252

 

配置

mv /etc/named.caching-nameserver.conf /etc/named.conf

#将文件名修改为程序需要的名称,实际上/etc/下的named.caching-nameserver.conf文件是个连接文件,其准确位置在/var/named/chroot/etc/目录中,由于我们安装了bind-chroot包,所有的配置文件都在/var/named/chroot/的相关目录下,这里我只需要将/etc/下的连接文件修改为named.conf文件即可,由于named守护进程查找的就是/etc/下的named.conf所以我这一步一定要做。

vi /etc/named.conf

acl "lan"{192.168.0.0/24;};    //定义本地局域网网段地址ACL

 

options {

listen-on port 53 { any; }; //这里可以写any或者将DNS主机的两个地址写进去

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

allow-query { any; };

};

logging {

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

view localhost_resolver {

match-clients { localhost; };

match-destinations { localhost; };

recursion yes;

include "/etc/named.rfc1912.zones";

};

//定义内网的视图

view inside{

match-clients {"lan";}; //指定匹配的地址

recursion yes;

zone "example.com" {

type master;

file "named.lan.example.com";

allow-transfer{none;};

};

zone "0.168.192.in-addr.arpa"{

type master;

file "named.192.168.0";

};

};

 

//定义外网的视图

view outside{

match-clients {"any";};

recursion yes;

 

zone "example.com"{

type master;

file "named.wan.example.com";

allow-transfer{none;};

};

zone "1.0.10.in-addr.arpa"{

type master;

file " named.115.12.65";

};

};

 

针对内网

vi /var/named/chroot/var/named/named.lan.example.com

$TTL 86400

@ IN SOA ns1. root.ns1. (

42 ; serial (d. adams)

3H ; refresh

15M ; retry

1W ; expiry

1D ) ; minimum

@ IN NS ns1.example.com.

@ MX 10 mail.example.com.

ns1 IN A 192.168.0.254

www IN A 192.168.0.250

bbs IN CNAME www

mail IN A 192.168.0.251

ftp IN A 192.168.0.252

 

vi /var/named/chroot/var/named/named.192.168.0

$TTL 86400

@ IN SOA @ root (

42 ; serial (d. adams)

3H ; refresh

15M ; retry

1W ; expiry

1D ) ; minimum

 

IN NS @

254 IN PTR ns1.example.com.

250 IN PTR www.example.com.

251 IN PTR mail.example.com.

252 IN PTR ftp.example.com.

 

 

针对外网

vi /var/named/chroot/var/named/named.wan.example.com

$TTL 86400

@ IN SOA ns1. root.ns1. (

42 ; serial (d. adams)

3H ; refresh

15M ; retry

1W ; expiry

1D ) ; minimum

@ IN NS ns1.example.com.

@ MX 10 mail.example.com.

ns1 IN A 115.12.65.254

www IN A 115.12.65.3

bbs IN CNAME www

mail IN A 115.12.65.4

ftp IN A 115.12.65.5

 

vi /var/named/chroot/var/named/named.115.12.65

$TTL 86400

@ IN SOA @ root (

42 ; serial (d. adams)

3H ; refresh

15M ; retry

1W ; expiry

1D ) ; minimum

 

IN NS @

254 IN PTR ns1.example.com.

3 IN PTR www.example.com.

4 IN PTR mail.example.com.

5 IN PTR ftp.example.com.

 

至此dns的配置文件都已经配置好了,接下来就是启动服务了;

service named restart

chkconfig named on    //随系统启动

 

注意事项:

  1. 视图语句的顺序是很重要的,一位用户的请求将会在它所匹配的第一个视图中被解答。
  2. 在视图语句中定义的域只对匹配视图的用户是可用的。
  3. 通过在多个视图中用相同名称定义一个域,不同域数据可以传给不同的用户。

许多在 named.conf的options 里的语句中给出的选项也能在视图语句中使用,仅仅用于使用那个视图解答请求的时候。

posted on 2009-01-05 17:08  ZyQiu  阅读(2272)  评论(0)    收藏  举报

导航