DNS负载均衡

基本概念

  • 负载均衡
    将流量均摊到多个服务器上
  • A记录
    DNS系统中的主机记录

DNS查询过程

DNS系统是一个树状结构,当我们访问一个域名www.a.com,计算机会首先去查询localDNS(本机网卡设置的dns服务器的dns缓存)。如果找得到则返回,找不到就会递归向上查询直到根DNS。
根部DNS会给出负责解析这个域名的域名解析服务器的地址,然后域名解析服务器会去响应请求返回www.a.com的地址给客户端。整个解析路劲如下:
本机->localDNS->根DNS->隶属DNS服务器->IP地址->本机

智能DNS

智能DNS解析过程:
本机->localDNS->根DNS->智能DNS解析->返回IP地址->本机
智能DNS解析体现就是,如果请求解析的PC机是电信线路的,则返回电信机房的服务器地址。如果是网通机房的,则返回网通机房服务器的地址。
那么如何判断请求解析的客户端是哪种类型的?
方法1:将所有电信和网通的所有IP段放在一张表中,每次请求都去查询这张表。
这种方法最简单最笨,但是稳定性最高。基本上银行.证券.金融.这些重要部门,都是使用的这种笨的方法.
方法2:在接收到解析请求时,分别往电信和网通的两条线路发送一个探测包。发送目标可以是目标IP地址,也可以是localDNS。包可以是IGMP ping包,也可以是反向查询DNS包。当两个包都有响应时,比较回包的时间戳,取比较小的时间戳包的服务器地址返回即可。

DNS负载均衡

一个域名访问多个IP地址。当客户端请求解析域名时,DNS服务器查询文件中的记录按顺序返回不同的解析结果,从而将客户访问引导到不同的服务器上去,从而实现负载均衡。

优点

  • 实现简单,服务器不需要修改任何代码。
  • 服务器可以位于互联网上任何位置
  • 省去运维麻烦

缺点

  • DNS是多级解析的,每一级都可能缓存A记录。当某台服务器下线,需要较长的时间才能生效。这段时间内,用户仍然会访问到下线的服务器,导致访问失败。
  • 为保证本地DNS跟上级的DNS保持记录,需要设置比较短的刷新时间,这样会消耗很大的DNS流量。

实际应用

大型网站实际上一般会把DNS解析作为第一级负载均衡手段,域名解析得到的地址一般不会是实际提供服务的服务器地址,而是一个内部的同样提供负载均衡的服务器。这个服务器再把请求转发到实际提供服务的服务器上。

你可能感兴趣的:(DNS负载均衡)