原理介绍
DNS策略解析最基本的功能是可以智能的判断访问您网站的用户,然后根据不同的访问者把您的域名分别解析成不同的IP地址,然后跟DNS服务器内部的IP表匹配一下,看看用户的类型,然后给用户返回对应的IP地址。例如:一台http服务器在不同地区有不同代理服务器,智能DNS会在用户访问这个http服务器的时候,自动识别用户的IP所在地区和哪个代理服务器最近(根据内部设置的表格识别),然后将代理服务器的IP地址返回给用户让其访问,相当于进行了引导和负载均衡。
如下图所示:
应用场景
双线路的机房:
服务本身有两个IP,一个电信IP,一个网通IP或者其他线路。
镜象网站:
在网通及电信的机房放置多个相同的镜象站点, 让不同的地方客户访问不同的站点。
负载均衡:
对于流量比较大的网站,可以把流量分配到几台不同的服务器上,以提高网站速度。
个性化站点服务:
比如通过IP表的重新定义, 让国外的客户自动访问英文版的网站; 让国内的客户自动访问中文版的网站。
CDN加速器:
通过与squid等WEB缓存软件结合实现CDN加速器。
防止DDOS攻击:
通过多个线路分散攻击流量,从而达到抵挡DDOS攻击。
CDN和智能DNS
CDN服务:
就是把静态页面缓存到不同地区很多台专门的缓存服务器上,然后根据用户线路所在的地区自动选择一个最近的缓存服务器让用户访问,以此提高速度,这种方案对静态页面效果非常好,同时它也需要智能DNS的帮助才能实现把用户引导到离自己最近的缓存服务器上。
智能DNS:
本身并没有加速功能,说白了就是自动识别网通、电信各线路的用户,然后解析到不同的IP,起到一个引导作用。但是由于国内各地域、各系统的网络环境各不相同,并不仅仅是简单的电信、网通两种资源,所以会有域名做了智能DNS后,其用户访问速度反而下降的情况发生。但是使用智能DNS,客户源站是动态还是静态内容则没有影响,效果一样。
BIND VIEW:
view:视图,多个zone的组合。
一个bind服务器可定义多个view,每个view中可 义一个或多个zone
每个view用来匹配一组客户端
多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件
格式:
view VIEW_NAME {
match-clients { testacl; };
zone “magedu.com” {
type master;
file “magedu.com.zone”; };
include “/etc/named.rfc1912.zones”;
};
注意:
(1) 一旦启用了view,所有的zone都只能定义在view中,包括根zone。
(2) 仅在允许递归请求的客户端所在view中定义根区域
(3) 客户端请求到达时,是自上而下检查每个view所服务 的客户端列表
智能DNS的实现
要利用到调用ACL和view。通过定义的不同ACL来规定不同区域的主机,然后给这些不同的主机分配不同的访问IP地址。
下面用一个小实验来展示智能DNS的实现:通过搭建智能DNS实现来访问www.hhy.com的河南用户和北京用户分别得到不同的服务器IP地址。
在主配置文件/etc/named.conf规定acl:
在主配置文件/etc/named.conf配置view:
配置不同用户DNS配置文件:
北京用户 vim named.rfc1912.zones.bj
河南用户 vim named.rfc1912.zones.hn
配置不同用户的区域数据库文件
北京用户 vim jzt.com.zone.bj
河南用户 vim jzt.com.zone.hn
检查配置
在客户端进行测试
后记
虽然这个实验相对来说比较简单,但是想要深刻了解和理解DNS的工作原理以及智能DNS的详细技术,还需要我们进行更像详细和深刻的学习。本文只是一个引导大家进入这个世界的一条小路罢了
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87566