通过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

相关推荐

  • Mysql之主从复制

    Mysql之主从复制 节点一 修改配置文件设置唯一ID开起二进制日志 [root@node1 ~]# vim /etc/my.cnf 增加以下内容     [mysqld]     log-bin=master_bin &nbsp…

    Linux干货 2016-07-19
  • N22-love cat 博客作业 第3部分

    基于 heartbeat v2 crm 实现HA高可用性的 LAMP+wordpress 基本环境设置 OS   version:       CentOS release 6.7 (Final) Soft versio…

    Linux干货 2016-08-15
  • LINUX用户建立秘钥认证实现SHELL脚本管理,分发,部署

    环境介绍 SSH Server [root@vm1 ~]# ifconfig |awk '/broadcast/{print $2}' 192.168.99.241 SSH Client [root@vm2 ~]# ifconfig |awk '…

    Linux干货 2017-01-05
  • MBR、GPT的结构和区别

    本章学习内容         ——–介绍MBR、GPT         ——–不同的启动流程         ——–分区结构 &nb…

    Linux干货 2016-08-29
  • 日志分析工具Awstats实战之Apache篇-多站点日志分析

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1318052 前面两篇都在讲述如何去部署nginx下的awstats日志分析工具,现在终于轮到apache。作为老牌的网页服务器,awstats对apache…

    Linux干货 2016-08-15
  • Net22-第一周作业-linux基础知识

    1、描述计算机的组成及其功能。    计算机硬件由五大部件组成,分别是运算器、控制器、存储器、输入和输出设备组成。 其中,运算器和控制器合称为cpu,接受指令,加工数据。 存储器又分为内存和外存(硬盘、U盘等等),这里指的是内存,给cpu提供数据和指令。 输入设备对数据进行输入,如鼠标,键盘等。 输出设备对计算结果进行显示或者打印等,如显…

    Linux干货 2016-08-22