免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2708 | 回复: 2
打印 上一主题 下一主题

[DNS] 请教关于BIND9中view的配置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-26 09:56 |只看该作者 |倒序浏览
实在是搞不懂了,所以求助大家帮帮忙,关于简单的dns我可以配置,可是现在是需要给同一个域名做不同的IP地址解析,应该使用view语句吧,我但不明白应该怎么去应用,比如说我有个域名为www.123.com , IP地址分别是192.168.1.1    192.168.1.2   192.168.1.3,应该怎么去配置这个配置文件?请大家帮忙,指点一下,不胜感激!

[ 本帖最后由 myloveredhat 于 2007-12-26 10:20 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-12-26 10:00 |只看该作者
还请版主帮忙介绍本关于这方面配置的书,小妹不胜感激!

论坛徽章:
0
3 [报告]
发表于 2007-12-26 11:33 |只看该作者
还是自己找了点关于这个配置的资料,给大家分享下,声明,是转来的,希望能帮助那些和我一样遇到这样困难的朋友!还有,不明白的是,这里面介绍的是两个IP给同一个域名的设置,我想知道的是如果我的域名需要设置3个IP的解析,我将如何去配置呢?


使用DNS-views实现IP地址分区域解析

一、简介

  在实际的网络应用中,我们有时希望对于同一个Domain Name能够根据不同的请求IP地址/区域,解析到不同的对应IP地址,比如:有时对于企业内部网络和外部网络希望对同一域名解析到不同的IP地址以达到安全目的或者应用目的,又比如为了解决中国南北方电信/网通互访速度差异问题,您也会希望电信用户解析到的域名IP是位于电信网络中的服务器,网通用户亦然,使用户能够访问到临近的最快的服务器。

  而这些应用都可以通过对DNS的简单配置达到,使用DNS达到这一目的有以下的优点:

低成本-无需添加任何专用设备,只需通过简单配置即可;
灵活性强-可随时增加/删除解析规则;
有一定的可扩展能力-如果搭配Round Robin DNS可无缝快速的配置简单的负载均衡;

二、DNS-views配置

1、原理

使用DNS提供的view指令可以实现根据不同的IP范围来对同一个域名进行解析。

注意:view指令只在BIND9存在,以前的BIND8是没有view指令的!

2、配置示例

(1)环境假想

操作系统:CentOS 3.6
BIND版本:BIND 9.2.4-5
DNS 服务器:123.213.111.222(eht0)、10.0.0.1(eth1)
企业内部IP段:10.0.0.0/24
企业外部IP段:除10.0.0.0/24之外的所有
域名:testdns.org
我们希望企业内部IP所解析到www.testdns.org的IP地址为:12.34.56.78,外部IP段则解析到:87.65.43.21

(2)配置示例
named.conf

//
// named.conf for Red Hat caching-nameserver
//

options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
/** If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};

//
// a caching only nameserver config
//
controls {
   inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};

view "internal" {
   match-clients {
      10.0.0.0/24;
      };

zone "." IN {
   type hint;
   file "named.ca";
   };
zone "testdns.org" {
   type master;
   file "db.internal";
   };
zone "0.0.127.in-addr.arpa" IN {
   type master;
   file "named.local";
   allow-update { none; };
   };
};

view "other" {
   match-clients { any; };

zone "." IN {
   type hint;
   file "named.ca";
   };
zone "testdns.org" {
   type master;
   file "db.other";
   };
zone "0.0.127.in-addr.arpa" IN {
   type master;
   file "named.local";
   allow-update { none; };
   };
};
include "/etc/rndc.key";


db.internal

$TTL 86400
$ORIGIN testdns.org.
@ IN SOA ns1.testdns.org. webmaster.ns1.testdns.org. (
       200512264
       60
       60
       36000
       86400 )
IN NS ns1.testdns.org.
    @    IN    A    10.0.0.1
    ns1   IN    A    10.0.0.1
    www   IN   A    12.34.56.78


db.other

$TTL 86400
$ORIGIN testdns.org.
@ IN SOA ns1.testdns.org. webmaster.ns1.testdns.org. (
        200512264
        60
        60
        36000
        86400 )
   IN   NS    ns1.testdns.org.
   @   IN    A    10.0.0.1
   ns1  IN    A    10.0.0.1
   www  IN   A    87.65.43.21

  通过这样的配置就可以实现我们之前所假想的功能了!测试:在内部网络中的一台电脑中将DNS服务器设置为10.0.0.1,之后ping www.testdns.org,会得到结果12.34.56.78;使用非内部网络的电脑设置好DNS:123.213.111.222,之后ping www.testdns.org,会得到结果87.65.43.21。

扩展:维护一个IP区域表,实现不同IP解析同一域名到不同IP

DNS 将 Domain 分成内外部不同解析(view)
DNS 的设定, 最好将内外部的 DNS 分开,
不然被人 dig 一下, 就跟把整个架构都公开也一样意思了....
正好看到一篇不错的文章, 来介绍 DNS View setting.
DNS-如何将1个 domain 分成内部与外部做不同的解析
前言:
其实写这篇文章的起源是在 news 看到了一篇询问如何将1个 domain 分成内部与外部的问题,而刚好一位网友 "网中人" 提出了在 bind 9 里面有新增 "view" 的功能,而这个功能就刚好符合上述的需求,而翻了翻市面上的书对 "view" 的说明并不多,但是我觉得这个功能对于一般企业的应用应该蛮广泛的,所以参考了 http://sysadmin.oreilly.com/news/views_0501.html 而实作出来
设定:
其实 “view” 的设定不会很困难,只是要注意以后要给内外部一起查询的 domain zone 都要分开设定比较好。

废话不多说,以下就针对 view 的设定来说明
/etc/named.conf 的设定档
[root@localhost internal]# cat /etc/named.conf

// generated by named-bootconf.pl
options {
   directory "/var/named"; //Domain Zone 档案放的目录
   /*
    * If there is a firewall between you and nameservers you want
    * to talk to, you might need to uncomment the query-source
    * directive below. Previous versions of BIND always asked
    * questions using port 53, but BIND 8.1 uses an unprivileged
    * port by default.
    */
   // query-source address * port 53;
};

// a caching only nameserver config
//
//Also you can define IP range like as below
acl "lan" { //设定内部要查询DNS的IP
   192.168.0.0/16; 10.10.0.0/16; localhost;
};

controls {
   inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};

view "internal" { //定义给内部查询的设定档
   match-clients { lan; }; //上面有定义lan的IP range
   zone "linuxnews.idv.tw" {
      type master;
      file "internal/db.linuxnews.idv.tw";
      allow-transfer { none; };
   };
   zone "." IN {
      type hint;

      file "named.ca";
   };
   zone "localhost" IN {
      type master;
      file "localhost.zone";
      allow-update { none; };
   };
   zone "0.0.127.in-addr.arpa" IN {
      type master;
      file "named.local";
      allow-update { none; };
   };
};

view "external" { //定义给外部查询的设定挡
   match-clients { any; }; //any不需要额外定义
   zone "linuxnews.idv.tw" {
      type master;
      file "external/db.linuxnews.idv.tw";
      allow-transfer { none; };
   };
   zone "." IN {
      type hint;
      file "named.ca";
   };
   zone "localhost" IN {
      type master;
      file "localhost.zone";
      allow-update { none; };
   };
   zone "0.0.127.in-addr.arpa" IN {
      type master;
      file "named.local";
      allow-update { none; };
   };
};


/var/named/external/db.linuxnews.idv.tw 设定给外部查询的档案内容
[root@localhost root]# cat /var/named/external/db.linuxnews.idv.tw

$TTL 86400 ; 1 hour
linuxnews.idv.tw. IN SOA ns1.linuxnews.idv.tw. root.linuxnews.idv.tw. (
      10816 ; serial
      900 ; refresh (15 minutes)
      600 ; retry (10 minutes)
      86400 ; expire (1 day)
      3600 ; minimum (1 hour)
      )
NS ns1.linuxnews.idv.tw.
MX 10 mail.linuxnews.idv.tw.
ns1 A 192.168.113.253
hello A 168.95.1.1 //定义hello.linuxnews.idv.tw

/var/named/internal/db.linuxnews.idv.tw 设定给内部查询的档案内容
[root@localhost named]# cat /var/named/internal/db.linuxnews.idv.tw

$TTL 86400 ; 1 hour
linuxnews.idv.tw. IN SOA ns1.linuxnews.idv.tw. root.linuxnews.idv.tw. (
      10816 ; serial
      900 ; refresh (15 minutes)
      600 ; retry (10 minutes)
      86400 ; expire (1 day)
      3600 ; minimum (1 hour)
      )
NS ns1.linuxnews.idv.tw.
MX 10 mail.linuxnews.idv.tw.
ns1 A 192.168.113.253
hello A 192.168.113.230 //定义hello.linuxnews.idv.tw

OK,这样就已经设定好了,还有要注意的就是要将 named.ca、localhost.zone、named.local copy 到相对的目录去,日后若有要增加的 domain 就必须加在 "view" 的区段里面,不然的话就会有错误的讯息。

Apr 22 11:46:41 localhost named[4064]: loading configuration from '/etc/named.conf'
Apr 22 11:46:41 localhost named[4064]: /etc/named.conf:43: when using 'view' statements, all zones must be in views
Apr 22 11:46:41 localhost named[4064]: loading configuration: failure
Apr 22 11:46:41 localhost named[4064]: exiting (due to fatal error)


由上面的范例可以看出来内部与外部对 hello.linuxnews.idv.tw 的查询会有不同的解析。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP