通过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
下一篇 2017-10-05

相关推荐

  • NFS的应用实例

    实验目的:通过NFS实现共享 实验要求:实验环境下防火墙以及selinux都是要关闭的!!! 实验环境:三台虚拟机,以及相关安装程序 实验过程: 设置服务端centos 6-1 [root@centos6 ~]# yum install mysql-servernfs-utils httpd [root@centos6 ~]# service mysqld …

    2017-05-03
  • 马哥教育网络班28期—第1、2天知识点概略

    没做随堂笔记,根据记忆手打,看看自己能记住多少。

    Linux干货 2017-12-03
  • Centos 6 –grub legacy及grub修复

    一、CentOS 6 grub legacy:     1.启动流程:             POST –> Boot Sequence(BIOS) –> Boo…

    Linux干货 2016-09-21
  • N28-第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 命令:cp、mv、rm 1.1 cp命令 用法: cp [OPTIONS]…[-T] SOURCE DEST cp SRC DEST而言,SRC是文件时 如果目标不存在: 新建DEST,并将SRC中内容填充至DEST中 如果目标存在: 如果DEST是文件:将SRC中的内容覆盖至DE…

    Linux干货 2017-12-15
  • 如何在Linux上创建文件系统

        谈到如何创建文件系统,在这里就不得不提一下什么是文件系统,在百度上搜索得到的定义是这样的:操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统,简单的看这个概念可能感觉还是有点茫茫然,其实简单的说,就是定义磁盘存取数据的一种逻辑组织,我们都知道磁盘是一种存储数据的硬件,首先但这个硬件的工作当…

    Linux干货 2016-01-18
  • N26-第九周

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # # # NUM1=0 NUM2=0 for i in `cut -d: -f7 /etc/passwd` ;do if [[ “$i” = ‘/bin/bash…

    Linux干货 2017-03-15