$ORIGIN .
$TTL 14400 ; 4 hours
greatlvs.org IN SOA ns1.greatlvs.org. root.greatlvs.org. (
2009011001 ; serial
7200 ; refresh (2 hours)
7200 ; retry (2 hours)
43200 ; expire (12 hours)
21600 ; minimum (6 hours)
)
IN NS ns1.greatlvs.org.
IN A 100.100.100.100 #授权DNS解析服务器IP
www IN A 11.11.11.11 #等价写法是:www.greatlvs.org. IN A 11.11.11.11
www IN A 22.22.22.22
www IN A 33.33.33.33
changtailiang
周六, 2009-01-10 04:33
Permalink
您的这个需求跟LVS的cluster没有太大关系。
这种类型的分流跟LVS无关,做智能DNS解析就行。如果非要使用LVS,可以考虑VPN+NAT和TUN模式,但是访问质量可能会有问题。您如果在电信、网通、有线通各有好几台web服务器想做负载均衡,那么LVS就能派上用场了。
智能DNS解析主要是需要根据源地址来划分。对于您的需求来说,可以把用户分成四种类型,分别对应您认为的访问电信(telecom)、网通(cnc)、有线通(ocn)最快的还有一些未知(unknown)的可以做轮询。举个例子,有四个DNS是被广大用户所用:1.1.1.1、2.2.2.2、3.3.3.3、4.4.4.4,分别对应电信、网通、有线通、未知这些运营商的网段。
假定一下条件:
自建授权域名服务器IP:100.100.100.100
托管域名:greatlvs.org
托管主机名:www.greatlvs.org
电信托管机器IP:11.11.11.11
网通托管机器IP:22.22.22.22
有线通托管机器IP:33.33.33.33。
然后就要配置一下DNS。我使用bind9来搭建自己的授权域名服务器。配置文件的框架如下文所示。
--------------------我是可爱的分割线--------------------
/etc/named.conf的内容片段:
acl "acl_telecom" {
1.1.1.0/24; #这里是一个大列表,您可以在网络上搜索到的。一般是用一个网段来表示,IP/掩码位数。
};
acl "acl_cnc" {
2.2.2.0/24;
};
acl "acl_ocn" {
3.3.3.0/24;
};
;这里不需要写acl "acl_any"是因为可以取非。凡是不属于上述列表的就是属于这个隐含的any了。
;any表示的是任意来源地址。如果只写any不做取非,那个view是不能放在最开始的,否则就会最
;先匹配,就不往下走了。
view "view_telecom" {
match-clients { acl_telecom; };
zone "greatlvs.org" {
type master;
file "data/greatlvs.org-telecom";
allow-query {any;};
};
};
view "view_cnc" {
match-clients { acl_cnc; };
zone "greatlvs.org" {
type master;
file "data/greatlvs.org-cnc";
allow-query {any;};
};
};
view "view_ocn" {
match-clients { acl_ocn; };
zone "greatlvs.org" {
type master;
file "data/greatlvs.org-ocn";
allow-query {any;};
};
};
view "view_unknown" {
match-clients { !acl_telecom; !acl_cnc; any; };
zone "greatlvs.org" {
type master;
file "data/greatlvs.org-any";
allow-query {any;};
};
};
--------------------我是可爱的分割线--------------------
greatlvs.org-telecom的内容片段:
$ORIGIN .
$TTL 14400 ; 4 hours
greatlvs.org IN SOA ns1.greatlvs.org. root.greatlvs.org. (
2009011001 ; serial
7200 ; refresh (2 hours)
7200 ; retry (2 hours)
43200 ; expire (12 hours)
21600 ; minimum (6 hours)
)
IN NS ns1.greatlvs.org.
IN A 100.100.100.100 #授权DNS解析服务器IP
www IN A 11.11.11.11 #等价写法是:www.greatlvs.org. IN A 11.11.11.11
--------------------我是可爱的分割线--------------------
greatlvs.org-cnc的内容片段:
$ORIGIN .
$TTL 14400 ; 4 hours
greatlvs.org IN SOA ns1.greatlvs.org. root.greatlvs.org. (
2009011001 ; serial
7200 ; refresh (2 hours)
7200 ; retry (2 hours)
43200 ; expire (12 hours)
21600 ; minimum (6 hours)
)
IN NS ns1.greatlvs.org.
IN A 100.100.100.100 #授权DNS解析服务器IP
www IN A 22.22.22.22
--------------------我是可爱的分割线--------------------
greatlvs.org-ocn的内容片段:
$ORIGIN .
$TTL 14400 ; 4 hours
greatlvs.org IN SOA ns1.greatlvs.org. root.greatlvs.org. (
2009011001 ; serial
7200 ; refresh (2 hours)
7200 ; retry (2 hours)
43200 ; expire (12 hours)
21600 ; minimum (6 hours)
)
IN NS ns1.greatlvs.org.
IN A 100.100.100.100 #授权DNS解析服务器IP
www IN A 33.33.33.33
--------------------我是可爱的分割线--------------------
greatlvs.org-any的内容片段:
$ORIGIN .
$TTL 14400 ; 4 hours
greatlvs.org IN SOA ns1.greatlvs.org. root.greatlvs.org. (
2009011001 ; serial
7200 ; refresh (2 hours)
7200 ; retry (2 hours)
43200 ; expire (12 hours)
21600 ; minimum (6 hours)
)
IN NS ns1.greatlvs.org.
IN A 100.100.100.100 #授权DNS解析服务器IP
www IN A 11.11.11.11 #等价写法是:www.greatlvs.org. IN A 11.11.11.11
www IN A 22.22.22.22
www IN A 33.33.33.33
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;说明:
;在greatelvs.org-any列了三个A记录主要是为了DNS轮询。对于无法划分清楚的源地址,
;一般用轮询的方式。如果某台服务器可能对所有的访问质量都好,可以只指定一台。
;比如我们只划分了中国的运营商,没有划分国外,因此国外的IP我们都归入了unknown
;视图内,假设从国外访问网通速度很快,可以让unknown的来访问22.22.22.22网通机器。
;具体要怎么用,就要具体情况具体分析,根据自己的策略来定了。比如网通机器的压力
;很大,那么可以通过在greatlvs.org-cnc里边加上其他A记录来做轮询分流。
--------------------我是可爱的分割线--------------------
只要把acl、view、zone准备妥当,DNS配置运行无误,那么通过DNS智能解析是可以分流,把来源不同的用户分流到不同的服务器上去。常见的CDN网络加速中最后一跳的实现就是通过这种方式来实现的。这里要注意区分一点:网通用户如果指定了电信的DNS,解析结果也会是去访问电信的节点,而不会是网通的节点。
defage
周一, 2009-01-12 01:35
Permalink
非常感谢得到这么详
非常感谢得到这么详细的回复。我会仔细研读。电信,网通,各点都有几台服务器,这样可以用LVS,然后中心点分流用智能DNS分流。
changtailiang
周三, 2009-01-14 06:08
Permalink
由于排版的问题导致
由于排版的问题导致经过格式化的文本看起来一塌糊涂。大概的思路就是那样子,具体的配置文件您可以遵照各自的服务软件的标准配置格式来书写。
我只是做过这样的东西,正好知道。希望对您能有一点点帮助。