Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1594034
  • 博文数量: 317
  • 博客积分: 10283
  • 博客等级: 上将
  • 技术积分: 3566
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-04 11:38
个人简介

哥使用Linux

文章分类

全部博文(317)

分类: LINUX

2007-11-08 17:29:48

一、简介

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

 

 

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

  1. 低成本-无需添加任何专用设备,只需通过简单配置即可;
  2. 灵活性强-可随时增加/删除解析规则;
  3. 有一定的可扩展能力-如果搭配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所解析到的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 ,会得到结果12.34.56.78;使用非内部网络的电脑设置好DNS:123.213.111.222,之后ping ,会得到结果87.65.43.21。

 

原文地址:

http://kb.discuz.net/index.php?title=%E4%BD%BF%E7%94%A8DNS-views%E5%AE%9E%E7%8E%B0IP%E5%9C%B0%E5%9D%80%E5%88%86%E5%8C%BA%E5%9F%9F%E8%A7%A3%E6%9E%90

阅读(967) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~