1)DNS负载均衡的介绍

对于负载均衡的一个典型应用就是DNS负载均衡。庞大的网络地址和网络域名绝对是负载均衡体现优势的地方。那么它的具体原理是如何的呢?本文就将为大家详细介绍一下相关内容。

DNS负载均衡

DNS负载均衡技术是在DNS服务器中为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。

DNS负载均衡的优点是经济简单易行,并且服务器可以位于internet上任意的位置。但它也存在不少缺点:

为了使本DNS服务器和其他DNS服务器及时交互,保证DNS数据及时更新,使地址能随机分配,一般都要将DNS的刷新时间设置的较小,但太小将会使DNS流量大增造成额外的网络问题。

一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算机将不能正常访问服务器。

DNS负载均衡采用的是简单的轮循负载算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器多分配请求,甚至会出现客户请求集中在某一台服务器上的情况。

要给每台服务器分配一个internet上的IP地址,这势必会占用过多的IP地址。

判断一个站点是否采用了DNS负载均衡的最简单方式就是连续的ping这个域名,如果多次解析返回的IP地址不相同的话,那么这个站点就很可能采用的就是较为普遍的DNS负载均衡。但也不一定,因为如果采用的是DNS响应均衡,多次解析返回的IP地址也可能会不相同。不妨试试Ping一下www.sohu.com,www.yahoo.com

现假设有三台服务器来应对www.test.com的请求。在采用BIND 8.x DNS服务器的unix系统上实现起来比较简单,只需在该域的数据记录中添加类似下面的结果:

www1 IN A 192.1.1.1

www2 IN A 192.1.1.2

www3 IN A 192.1.1.3

www IN CNAME www1

www IN CNAME www2

www IN CNAME www3

在NT下的实现也很简单,下面详细介绍在win2000 server下实现DNS负载均衡的过程,NT4.0类似:

打开“管理工具”下的“DNS”,进入DNS服务配置控制台。

打开相应DNS 服务器的“属性”,在“高级”选项卡的“服务器选项”中,选中“启用循环”复选框。此步相当于在注册表记录HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters中添加一个双字节制值(dword值)RoundRobin,值为1。

打开正向搜索区域的相应区域(如test.com),新建主机添加主机 (A) 资源记录,记录如下:

www IN A 192.1.1.1

www IN A 192.1.1.2

www IN A 192.1.1.3

在这里可以看到的区别是在NT下一个主机名对应多个IP地址记录,但在unix下,是先添加多个不同的主机名分别对应个自的IP地址,然后再把这些主机赋同一个别名(CNAME)来实现的。

在此需要注意的是,NT下本地子网优先级会取代多宿主名称的循环复用,所以在测试时,如果做测试用的客户机IP地址与主机资源记录的IP在同一有类掩码范围内,就需要清除在“高级”选项卡“服务器选项”中的“启用netmask排序”。

2)直白讲解DNS负载均衡

Internet,互联网络的现状,就如我们的交通,会出现拥堵,迟缓的现象。那么,很多访问用户,很多的网络使用者的同时运作就会出现流量分配等数据分配不均匀的情况。那么,一个有效的管理和操作理念——负载均衡,就是我们改善这一状况的技术。那么,现在我们就来讨论一下网络构架中CDN和DNS负载均衡的问题。

CDN是一个经策略性部署的整体系统.能够帮助用户解决分布式存储.负载均衡.网络请求的重定向和内容管理等问题.其目的是通过在现有的Internet中增加一层新的网络架构.将网站的内容发布到最接近用户的网络"边缘".使用户可以就近取得所需的内容.解决Internet网络拥塞状况.提高用户访问网站的响应速度.从技术上全面解决由于网络带宽小.用户访问量大.网点分布不均等原因.解决用户访问网站的响应速度慢的根本原因.CDN是个很庞大的概念和体系.全世界CDN服务提供商屈指可数.我们熟悉的Google就是某CND的最大客户.我们今天只选取其中一小部分来讨论.

说了半天.看上去似乎很复杂.鉴于经典的大多是搞WEB的.接触的最多的是WEB服务器/数据库等.既然是浅谈.我就举个简单的例子.

比如你弄一网站.假设你有能力购买2台服务器.作为WEB服务.暂时我们认为服务器本身不存在性能问题.一台托管在北方的网通机房.一台托管在南方的电信机房.2台服务器内容互为同步.则通过智能的DNS解析设备.将网通的用户定位到北方网通的服务器上.将电信的用户定位到南方电信的服务器上.这.就是最基础的CDN.我的理解是——广域网负载均衡.

2台服务器放置问题我不想多谈.有钱就行.2台服务器内容同步的方式很多.我也不想多谈.今天主要是要谈一下.如何实现让网通的用户去访问放置在网通的服务器.电信的用户去访问放置在电信的服务器.即如今很多服务提供商所谓的智能DNS解析.也就是互联网链路负载均衡.

(提问)我们访问一个域名.比如www.Blueidea.com.谁知道实际的访问过程是怎么样的?

电信/网通.2条链路的负载均衡.我们先来谈谈这个.因为这个是访问者最直观的体验.既然CDN的目的是为了提高用户访问网站的响应速度.最直接的方法就是做互联网链路的智能导向.当然.CDN也涉及多台服务器负载均衡.应用的负载均衡.包括中间件的应用负载均衡.因为时间关系暂且不表.

当我们将www.B.com输入IE地址栏敲回车后.首先要去你的LocalDNS做解析.什么是LocalDNS?就是你本机网卡所设置的DNS服务器.比如我的是:202.96.128.68.如果LocalDNS没有www.B.com的Cache记录.则LocalDNS会询问上级DNS服务器.注意.DNS的查询结构是树状的.最后查询的DNS为root.即为rootDNS.或者或者称为根DNS..根DNS在全世界只有13台.中国境内没有.当rootDNS接受到请求后.通过查询获得的结果一般是:B.com这个域的解析服务器为.ns1.2.com.要求你去询问ns1.c2.com去做解析.ns1.2.com是哪里来的?当然是你申请注册域名的机构自己的DNS服务器.也就是你Bl.com这个域名的隶属DNS.隶属DNS获得了你域名解析的请求.则查询A记录.返回Bl.com的IP地址给最初的PCClient端.完成了一次域名解析为IP地址的全部过程.虽然很绕.但是如果能搞明白.那才能理解下面的关于智能DNS的技术原理.上述DNS查询的常规流程.基本上就是如下:

PC->LocalDNS->RootDNS->ns1.2.com->IP->返回给PC

智能DNS的工作原理即是在ns1.2.com这一步.工作流程如下:

PC->LocalDNS->RootDNS->智能DNS解析->返回IP地址->返回给PC

注意.上述的"返回IP地址"这一步.其实是根据PC的来源.智能的返回电信或者网通的IP地址.即如果请求解析的PC是电信线路的.则返回托管在南方电信机房的服务器的电信IP地址.反之.则返回托管在北方网通机房的网通的IP地址.

看到这里.出现了一个问题.如何判断这个请求DNS的PC.他是电信线路还是网通线路呢?

有2个方法.一个聪明的.一个笨的.我们先说笨的方法.如果智能DNS有一张庞大的IP地址分配表.表里面有所有的电信IP地址段和所有的网通地址段.则可以通过查询这个IP地址表来判断.请求的PC是属于哪个线路上的.这个方法是最直接.最高效.最稳妥的方法.虽然的确是笨了点.但是请各位注意.往往笨的方法就代表着稳定.代表着高可用性.所以.我很遗憾的告诉大家.基本上银行.证券.金融.这些重要部门.都是使用的这种笨的方法.

另外一个聪明的方法.则是通过智能的动态检测的方法.在智能DNS解析设备接受到PC的DNS请求的时候.将使用电信/网通的2条线路分别发送一个探测包.发送目标可以为目标PC的IP地址.不过更多的发送目标为LocalDNS.这个包可能是ICMP的PING包.也可能是反向DNS查询的DNS包(TCP53).当2个包有回应后.比较2个包的时间戳.延迟小的.则判定为优先解析的链路.

DNS负载均衡的更多相关文章

  1. 《搭建DNS负载均衡服务》RHEL6

    搭建DNS负载均衡环境: 1.至少三台的linux虚拟机,一台主的DNS服务器,1台副的(可以N台),1台测试机. 负载均衡有很多种,apache那样的是为了缓解人们访问网站时给服务器造成太大的压力, ...

  2. DNS负载均衡 Nginx 负载均衡的种类

    DNS负载均衡 当一个网站有足够多的用户的时候,假如每次请求的资源都位于同一台机器上面,那么这台机器随时可能会蹦掉.处理办法就是用DNS负载均衡技术,它的原理是在DNS服务器中为同一个主机名配置多个I ...

  3. DNS负载均衡与NGINX负载均衡策略

    负载均衡是指的是把请求均匀的分摊到多个服务器上处理.一般常见的负载均衡有两种:①客户端与反向代理服务器之间的DNS负载均衡②反向代理服务器与应用服务器之间的负载均衡(这种负载均衡有很多,可以是webl ...

  4. 负载均衡(二)DNS负载均衡

    一.DNS原理及解析过程详解 相信大家在平时工作中都离不开DNS解析,DNS解析是互联网访问的第一步,无论是使用笔记本浏览器访问网络还是打开手机APP的时候,访问网络资源的第一步必然要经过DNS解析流 ...

  5. Nginx+DNS负载均衡实现

    负载均衡有多种实现方法,nginx.apache.LVS.F5硬件.DNS等. DNS的负载均衡就是一个域名指向多个ip地址,客户访问的时候进行轮询解析 操作方法,在域名服务商解析的DNS也可以是第三 ...

  6. DNS 负载均衡

    相关文章: 文章 网址 一个域名可以绑定多个IP吗?由此引发的调查 https://ask.zkbhj.com/?/article/139

  7. 实现跨云应用——基于DNS的负载均衡

    “公有云可以作为传统IT资源的延展,能帮助客户应对不断变化的需求”——这是我们在向客户介绍公有云产品时经常说的一句话.我们来看一个具体的需求: 某客户有一个web站点,部署在自有的数据中心(on-pr ...

  8. 利用dns解析来实现网站的负载均衡

    当网站的访问量大了就会考虑负载均衡,这也是每一个架构师的基本功了,其基本地位就相当于相声里的说学逗唱,活好不好就看这个了 :) 传统的负载均衡思路是单点的,不管你是硬件的还是软件的基本都是这样的原理 ...

  9. 每天进步一点点——负载均衡之DNS域名解析

    转载请说明出处:http://blog.csdn.net/cywosp/article/details/38017027     在上一篇文章(http://blog.csdn.net/cywosp/ ...

随机推荐

  1. Windows下命令行连接mysql及导入sql文件

    嗯,今天要把phpcms的模板放到服务器上,,,呃,phpMyAdmin死活连接不上数据库,这又是个神马情况无奈,又想到命令行了,好吧,最近喜欢上命令行了,不过这果然还是命令行强大啊,啊哈哈下面呢,我 ...

  2. Win7-IIS7下运行PHP网站(以配置好的drupal网站为例)

    0.前提:IIS7已启用. drupal网站配置文件web.config中用到了“简洁链接”(URL重写),所以,还需要事先安装URL重写模块. URL重写模块(url rewrite)下载地址: r ...

  3. Apache 相关配置

    1. HTTP缓存设置 ExpiresActive On #ExpiresDefault 设置全局缓存时间,将导致一些get请求不能连续执行 #ExpiresDefault "access ...

  4. Java中start和run方法的区别

    一.问题引入         说到这两个方法就不得不说多线程,说到多线程就不得不提实现多线程的两种方式继承Thread类和实现Runable接口,下面先看这两种方式的区别. 二. Java中实现多线程 ...

  5. Preventing Web Attacks with Apache

    http://www.boyunjian.com/do/article/snapshot.do?uid=net.csdn.blog/wurangy050/article/details/5287235

  6. poj A Round Peg in a Ground Hole

    http://poj.org/problem?id=1584 #include<cstdio> #include<cstring> #include<cmath> ...

  7. Gold Balanced Lineup

    #include<cstdio> #include<cstring> #include<cmath> #include <cstdlib> #defin ...

  8. Android Broadcaset 简介

    在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制.而BroadcastReceiver是对发送出来的Broadcast进行过滤接收并响应的一类组件.可以使用Broad ...

  9. linux wenjian

    文件锁是一种文件读写机制,在任何特定的时间只允许一个进程访问一个文件.利用这种机制能够使读写单个文件的过程变得更安全. 在这篇文章中,我们将探讨Linux中不同类型的文件锁,并通过示例程序来理解它们之 ...

  10. sql server 主从数据库同步 利用发布 订阅是实现

    发布订阅功能自SQL 2005之后就有了 配置方法可参考:http://blog.csdn.net/wanmdb/article/details/7515277 遇到问题: 1. 如果代理无法启动 , ...