- 论坛徽章:
- 0
|
运行动态DNS
配置完成后我们启动DNS服务器,并且运行相应的规则脚本,我们的动态DNS服务器就可以正常工作了。
二。利用bind9的cache纪录
1)、用户向浏览器提供要访问的域名;
2)、浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,
所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际IP地址,
浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址;在此过程中,
使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问。
3)、此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,
向缓存服务器发出访问请求;
4)、缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析
得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求;
5)、缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,
以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程;
6)、客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。
1、要加入CDN服务的网站,需要域名(如www.linuxaid.com.cn,地址202.99.11.120)解析权提供给CDN运营商,Linuxaid的域名解析记录只要把www主机的A记录改为CNAME并指向cache.cdn.com即可。cache.cdn.com是CDN网络自定义的缓存服务器的标识。在/var/named/linuxaid.com.cn域名解析记录中,由:
www IN
A 202.99.11.120
改为
www IN
CNAME cache.cdn.com.
2、CDN运营商得到域名解析权以后,得到域名的CNAME记录,指向CDN网络属下缓存服务器的域名,如cache.cdn.com,CDN网络的全局负载均衡DNS,需要把CNAME记录根据策略解析出IP地址,一般是给出就近访问的Cache地址。
Bind 9的基本功能可以根据不同的源IP地址段解析对应的IP,实现根据地域就近访问的负载均衡,一般可以通过Bind 9的sortlist选项实现根据用户端IP地址返回最近的节点IP地址,具体的过程为:
1)为cache.cdn.com设置多个A记录,/var/named/cdn.com 的内容如下:
$TTL 3600
@ IN SOA ns.cdn.com. root.ns.cdn.com. (
2002090201 ;Serial num
10800 ;Refresh after 3 hours
3600 ;Retry
604800 ;Expire
1800 ;Time to live
)
IN NS ns
www IN
A 210.33.21.168
ns IN A 202.96.128.68
cache IN A 202.93.22.13 ;有多少个CACHE地址
cache IN A 210.21.30.90 ;就有多少个CACHE的A记录
cache IN A 211.99.13.47
2) /etc/named.conf中的内容为:
options {
directory "/var/named";
sortlist {
#这一段表示当在本地执行查询时
#将按照202.93.22.13,210.21.30.90,211.99.13.47的顺序返回地址
{ localhost;
{ localnets;
202.93.22.13;
{ 210.21.30.90; 211.99.13.47; };
};
};
#这一段表示当在202/8地址段进行DNS查询时
#将按照202.93.22.13,210.21.30.90,211.99.13.47的顺序返回地址
{ 202/8;
{ 202.93.22.13;
{ 210.21.30.90; 211.99.13.47; };
};
};
#这一段表示当在211/8地址段进行DNS查询时
#将按照211.99.13.47,202.93.22.13,210.21.30.90的顺序返回地址,
#也就是211.99.13.47是最靠近查询地点的节点
{ 211/8;
{ 211.99.13.47;
{ 202.93.22.13; 210.21.30.90; };
};
};
{ 61/8;
{ 202.93.22.13;
{ 210.21.30.90; 211.99.13.47; };
};
};
};
};
zone "." {
type hint;
file "root.cache";
};
zone "localhost" {
type master;
file "localhost";
};
zone "cdn.com" {
type master;
file "cdn.com";
};
三。设内外DNS
外部DNS就是一般的设置,关键在于内部的DNS的设置上
## named.conf - configuration for bind
#
# Generated automatically by redhat-config-bind, alchemist et al.
# Any changes not supported by redhat-config-bind should be put
# in /etc/named.custom
#
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
include "/etc/named.custom";
include "/etc/rndc.key";
options {
directory "/var/named/";
forwarders { 192.168.22.9; }; //转向到外部的DNS
};
zone "0.0.127.in-addr.arpa" {
type master;
file "0.0.127.in-addr.arpa.zone";
};
zone "22.168.192.in-addr.arpa" {
type master;
file "22.168.192.in-addr.arpa.zone";
};
zone "7.20.172.in-addr.arpa" {
type master;
file "7.20.172.in-addr.arpa.zone";
};
zone "localhost" {
type master;
file "localhost.zone";
};
zone "hutc.zj.cn" {
type master;
file "hutc.zj.cn.zone";
forwarders { }; //除了内部的本域解析,其余都放到外部的DNS上
};
四。利用bind9的view功能
options {
directory "/var/named";
};
acl "fx_subnet" {192.253.254/24; };
view "internal" { //我们区的内部视图
match-clients { "fx-subnet"; };
zone "fx.movie.edu" {
type master;
file db.fx.moive.edu";
};
zone "254.253.192.in-addr.arpa" {
type master;
file "db.192.253.254";
};
};
view "external" { //相应于世界的其余部分,我们区的视图
match-clients { any; }; //隐式地
rescursion no; //我们的子网外面,它们不应该请求递归查询
zone "fx.movie.edu" {
type master;
file "db.fx.movie.edu.external"; //外部区数据文件
};
zone "254.254.192.in.arpa" {
type master;
file "db.192.253.254.external";//外部区数据文件
};
};
总结:方法一:过于复杂,并且不能解决MX纪录的问题
方法二:实际上用别的思想来解决内外DNS解析的问题
方法三:实际已经运用过,还可以用ACL来做进一步的限制,就是和方法四比较起来,机器用的多了一点
方法四:感觉最好了。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/35012/showart_399480.html |
|