yjjssd 发表于 2007-10-20 00:07

如何让dns服务器按域名走不同的查询路线?

遇到一个小问题
因为没有环境实践,也似乎我还没有搞明白zone的详细地含义。请高人解释。
某网络示意图如下:

   A--------   B ========= Internet --------- C
0.0.0.1   0.0.0.2

A 为一台pc, B 为该网络内部的dns服务器,只有1个网卡。
该网络有2个出口,教育网和电信 (图中的双横线表示2个出口)。
已配置好路由器,可以按照目的ip地址来转发。(B不是出口路由)
如果A需要访问外部站点C,则由B获得其的地址,并返回给A。



现在的问题是:

如果需要B按照C的域名走不同的出口,该如何设置B的named.conf呢?

例如:如果C的域名为教育网的.edu.cn结尾的 (如www.example.edu.cn), 则从教育网出去recursive查询,返回0.0.0.3
      如果C的域名为.com结尾的(www.abcd.com), 则从电信出口查询,返回0.0.0.4




如果设置zone的话,就我看到的文章中,好像必须有type, 以及masters 这些内容吧?

[ 本帖最后由 yjjssd 于 2007-10-20 00:55 编辑 ]

llzqq 发表于 2007-10-20 09:48

按域名划分出口是不科学的,通常做法是按IP段划分出口(策略路由)。

yjjssd 发表于 2007-10-20 16:54

恩,的确是不太好办,但是这也是一个很大的问题。不知各位遇到过没有。
最近发现这样一个问题:有的站点有多个不同的ip地址,其dns服务器使用了view功能。可以根据来查询的来源不同而返回不同的地址。
例如, 当是电信地址来查询的时候,返回其在电信出口的ip地址:0.0.0.5
         当是教育网访问的时候,给出其在教育上的ip地址: 0.0.0.6

问题是:
   如果A所在的网络的dns服务器的域名查询只从一个出口(教育)出去查询,这样就有可能出现这样子的情况:
   
   如果A想要访问电信上的站点C,dns从教育网出口出去查询,并通过教育网线路查到C的对外dns,这样,由于C的dns发现查询源ip是教育网,就给出教育网地址0.0.0.5。
    接着A进行访问,由于在出口路由上已经做好了策略路由,出口路由发现这是一个教育网的ip地址,则通过教育网线路转发。
   但是由于A的教育网出口带宽比较低。速度较慢(电信为主要的出口。且带宽较高,速度快)。且所要经过的route比较多,导致大部分的数据包可能超时返回,程序报错。

    反过来,如果是把dns的查询出口设置在电信上,也有类似的问题。
   因此,就想到是否可以在A网络的dns上,做一个根据域名的策略访问呢?如果是.edu.cn的,从教育网出去查询,如果是其他的,从电信出口查询。

    不知各位有什么比较好的解决办法呢?

[ 本帖最后由 yjjssd 于 2007-10-20 16:55 编辑 ]

yangyang1qaz 发表于 2013-04-02 10:03

这个问题现在有解决方案了吗?
页: [1]
查看完整版本: 如何让dns服务器按域名走不同的查询路线?