通过view实现智能DNS

DNS策略解析最基本的功能是可以智能的判断访问您网站的用户,然后根据不同的访问者把您的域名分别解析成不同的IP地址,然后跟DNS服务器内部的IP表匹配一下,看看用户的类型,然后给用户返回对应的IP地址。

原理介绍

DNS策略解析最基本的功能是可以智能的判断访问您网站的用户,然后根据不同的访问者把您的域名分别解析成不同的IP地址,然后跟DNS服务器内部的IP表匹配一下,看看用户的类型,然后给用户返回对应的IP地址。例如:一台http服务器在不同地区有不同代理服务器,智能DNS会在用户访问这个http服务器的时候,自动识别用户的IP所在地区和哪个代理服务器最近(根据内部设置的表格识别),然后将代理服务器的IP地址返回给用户让其访问,相当于进行了引导和负载均衡。
如下图所示:
通过view实现智能DNS

应用场景

双线路的机房:

服务本身有两个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:

通过view实现智能DNS

在主配置文件/etc/named.conf配置view:

通过view实现智能DNS

配置不同用户DNS配置文件:

北京用户 vim named.rfc1912.zones.bj
通过view实现智能DNS

河南用户 vim named.rfc1912.zones.hn
通过view实现智能DNS

配置不同用户的区域数据库文件

北京用户 vim jzt.com.zone.bj
通过view实现智能DNS

河南用户 vim jzt.com.zone.hn
通过view实现智能DNS

检查配置

通过view实现智能DNS

在客户端进行测试

通过view实现智能DNS

后记

虽然这个实验相对来说比较简单,但是想要深刻了解和理解DNS的工作原理以及智能DNS的详细技术,还需要我们进行更像详细和深刻的学习。本文只是一个引导大家进入这个世界的一条小路罢了

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87566

(6)
OscaoChaserOscaoChaser
上一篇 2017-10-03 11:03
下一篇 2017-10-05 12:38

相关推荐

  • 马哥教育网络班-N26

    From the beginning~~~

    Linux干货 2016-12-26
  • bash的基础特性之一

    bash的基础特性之一 命令历史:shell进程会保存会话中此前用户使用过的命令; history:命令的用法 history 【-c】【-d #】 【n】或者【文件名】     -c:清空命令历史     -d 【#】:删除指定的命令历史…

    Linux干货 2016-12-18
  • 20160810作业

    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。           2、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到/root…

    Linux干货 2016-08-12
  • Linux Cluster之Keepalived + Nginx的实现

      一、实验环境 http server1与http server2组成web集群,由nginx服务器实现负载均衡代理,使用keepalived保证nginx服务的高可用。通过虚拟IP192.168.154.177对外提供web服务。 实验目的: 1)当Nginx server1上的nginx服务异常时,由nginx server2提供反带服务。 …

    2016-11-02
  • Linux常见发行版本以及Linux哲学思想

    什么是Linux?  Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。  Linux操作系…

    Linux干货 2016-08-15