能实现客户端条件转发功能吗?
各位,我搭建了一个DNS,用的BIND9.10,我想实现根据客户端地址来进行条件转发,有办法实现吗?比如:客户地址段1用本机DNS1进行解析,客户地址段2转发到DNS2进行解析。
我知道让客户地址段2直接修改本地DNS配置最简单,但我现在不方便通知所有客户修改DNS。
貌似OPTIONS里的转发,要么不转发,要么都转发,针对ZONE特定域名转发我知道。
VIEW里,倒是可以匹配客户地址段,这里面如何配置转发??
大家有何高见?谢谢! bind view功能
下面帖中的bind view配置看看
http://bbs.chinaunix.net/thread-4153855-1-1.html
你要的功能其实就是我下面说的dns view功能,不用什么dns1和dns2,看完你就明白了。你无非就是想让一个域名在2个域名服务器上解析成不同ip地址,其实你整的有点复杂,看完下面你就知道怎么做了。
偶dns总结的部分内容:
DNS VIEW功能則和上面的輪詢完全不同,VIEW是把同一個域名根據用戶的IP網段分配到不同的主機上,這樣不光有一定的可控性,還可以根據地理區域,將用戶按照就近原則訪問離自己近的web服務器或郵件服務器。例如:
電信和網通的接口只有10GB,當電信用戶和網通用戶互訪是有一定的帶寬延遲,那麼通過VIEW功能正好解決此問題,通過view將所有電信用戶訪問到在電信網段的服務器上,將所有網通用戶訪問到網通網段的服務器上。範例:
acl dianxin { 110.110.110.110/16;}; 電信
(這個acl可以配置成一個文件,直接通過include加載例如:
include "local_acl.conf";
然後在local_acl.conf配置上面這段話也行)
)
acl wangtong { 220.220.220.220/16;}; 網通
acl others {221.221.221.221/16;}; 其他ISP
view “dianxintest” {
Match-clients { “dianxin”;};
zone “.” IN { (設定各個view,必須要設定根域zone)
type hnnt;
file “named.ca”;
};
zone www.baidu.com IN {
type master;
file “www.baidu.com.zone”;
};
};
下來看另外一個VIEW
View “wangtongtest” {
Match-clients { “wangtong”;};
zone “.” IN {
type hnnt;
file “named.ca”;
};
zone www.baidu.com IN {
type master;
file “cn.www.baidu.com.zone”; 存放的zone文件名稱要和第一個view不同.
};
};
View “otherstest” {
Match-clients { “others”;};
zone “.” IN {
type hnnt;
file “named.ca”;
};
zone www.baidu.com IN {
type master;
file “others.www.baidu.com.zone”; 存放的zone文件名稱要和前面的view不同.
};
};
Named.conf設定到上述即可。
Zone的設定很簡單,只要分別把這3個zone的A記錄的IP設定到你想分配到那三台web服務器上的IP即可。
:PP 哎,到底是你没有看明白我的文字,还是我的文字表达的不够明白。
我知道VIEW的功能,就是同一个域名针对不同的客户A/B解析成不同的地址A1/B1
而我想做的,是A和B都向DNS1发出请求,A被DNS1解析了,B被DNS1转发了
如此而已。 本帖最后由 cryboy2001 于 2014-10-14 15:41 编辑
forwarders
设定转发使用的ip地址。默认的列表是空的(不转发)。转发也可以设置在每个域上,这样全局选项中的转发设置就不会起作用了。用户可以将不同的域转发到服务器上,或者对不同的域可以实现forward only或first的不同方式,也可以根本就不转发。
view "external" {
match-clients { any; };
recursion no;
zone "example.com" {
type master;
file "example-external.db";
[ forward (only|first) ; ]
用来代替全局的转发器列表。如果不在forward类型的域中设定,就不会有这个域查询的被转发;全局的转发设置则没有起作用。
[ forwarders
{ ip_addr ; [ ip_addr ; ... ] }; ]
};
}; 本帖最后由 woxizishen 于 2014-10-14 19:56 编辑
回复 4# flutter
俺把你理解成你就是因为后端放置了相同内容的多台服务器,想用view做简单的负载均衡。楼上的版主已经精准回答了,我就不多说了。
到时提醒下你,做view又做了MASTER/SLAVE同步的话,對於多個VIEW,slave只能下載到一個view。故若要slave下載所有view,則slave需要用到transfer-source 语句。
页:
[1]