linux怎么设置DNS轮询实现负载平衡

这篇文章主要介绍“linux怎么设置DNS轮询实现负载平衡”,在日常操作中,相信很多人在linux怎么设置DNS轮询实现负载平衡问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux怎么设置DNS轮询实现负载平衡”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

成都创新互联 - 棕树数据中心,四川服务器租用,成都服务器租用,四川网通托管,绵阳服务器托管,德阳服务器托管,遂宁服务器托管,绵阳服务器托管,四川云主机,成都云主机,西南云主机,棕树数据中心,西南服务器托管,四川/成都大带宽,成都机柜租用,四川老牌IDC服务商

不过有一个参数你可以试试看是否能调整一下轮询的效果:
在 named.conf 中可以设置 bind 的 round-robin 的给出结果的顺序:

options {
rrset-order { order random; };
};

rrset-order 支持三个参数:fixed, random, cyclic 。
fix 会将多个A记录按配置文件的顺序固定给出
random 会随机给出
cyclic 会循环给出

DNS轮询就是指DNS服务器将域名解析请求按照A记录的顺序,逐一分配到不同的IP上,同时在一定程度上也实现了简单的负载均衡

我们先看一下 WINDOWS2003下如何设置DNS轮询。比如:有两台WEB主机,A主机ip是 192.168.1.1,B主机ip是192.168.1.4 , 企业里有单独一台DNS服务器,然后在该DNS服务器的正向区域里(域名为haiquan.net)分别建立两个主机A记录,第一个主机记录的记录IP是 192.168.1.1, 第二个主机记录的记录IP是192.168.1.4,附图:
linux怎么设置DNS轮询实现负载平衡
转: linux实现DNS轮询实现负载平衡

然后在DNS主机QINGYG上点击右键选择属性,在出现的对话框中勾选"启用循环",如图:
linux怎么设置DNS轮询实现负载平衡

注意:网络掩码排序可以根据子网掩码来判断dns地址和客户端是否在同一个网段或者离的比较近,然后优先返回较近的服务器的地址。

设置完毕后,我们看一下效果:
linux怎么设置DNS轮询实现负载平衡

注意:WINDOWS会缓存DNS结果,为方便观察轮询情况,我们需要用"ipconfig /flushdns"来清空DNS缓存。

下面我们看一下LINUX下如何设置DNS轮询,以RHEL 5为例:
1、首先需要安装BIND并搭建DNS服务器(具体DNS搭建过程请参考相关资料)

#yum install -y bind* caching-nameserver*

安装DNS服务器一般需要安装以下三个数据包:

bind-utils-9.3.3-7.el5

查询用

bind-chroot-9.3.3-7.el5

安全机制

caching-nameserver-9.3.3-7.el5

配置文件

2、修改区域数据配置文件(example.com.db),这里主要看一下DNS轮询配置

IN MX 10 mail.example.com.
... ...
mail IN A 192.168.1.9
IN A 192.168.1.10
IN A 192.168.1.11

在以上配置中,mail.example.com对应了3个IP地址,此时具体选择哪一条A记录,是由rrset-order语句决定的。另外,在反向解析文件中,这3个IP也都要对应mail主机,以免有些邮件服务器为了反垃圾邮件进行反向查询时出现问题。

这是在 /etc/named.conf 文件中 options 语句有关rrset-order配置的一个例子:

rrset-order {
class IN type A name "mail.example.com" order random;
order cyclic;
};

这个设置会使处于IN类中的A记录的响应以随机顺序返回,IN 类以"mail.example.com"为后缀。其他的记录以循环记录被返回。

rrset-order 支持三个参数:fixed, random, cyclic 。
fixed 将多个A记录按配置文件的顺序固定给出
random 随机给出
cyclic 循环给出

注:rrset-order语句并不被BIND9支持,BIND9目前只支持"random-cyclic"排序,服务器随机选择RRset集中的开始点,有顺序返回在那个点开始的记录。

3、测试看结果:

[root@linux252:/]#host mail.example.com
mail.example.com has address 192.168.1.9
mail.example.com has address 192.168.1.10
mail.example.com has address 192.168.1.11

总结一下:

DNS轮询的配置是比较方便的,如果网络扩增,新增的Web服务器只要增加一个公网IP即可。 但相对来说,DNS轮询也有其自身的一些缺点,这个工作当中也是我们需要注意的。

其一:如果某台服务器宕机,DNS服务器是无法知晓的,仍旧会将访问分配到此服务器。修改DNS记录全部生效一般要1-3小时,甚至更久;

其二:如果几台Web服务器之间的硬件配置不同,导致能够承受的压力也是不同的,但是DNS轮询解析目前不能很好的按权重进行分配。

其三:如果是 需要身份验证的网站,DNS解析无法将验证用户的访问持久分配到同一服务器。虽然有一定的本地DNS缓存,但是很难保证在用户访问期间,本地DNS不过 期,而重新查询服务器并指向了新的服务器,那么原服务器保存的用户信息是无法被带到新服务器的,而且可能被要求重新认证身份,而且来回切换时间长了各台服 务器都保存有用户不同的信息,对服务器资源也是一种浪费。

到此,关于“linux怎么设置DNS轮询实现负载平衡”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


网页标题:linux怎么设置DNS轮询实现负载平衡
本文路径:http://scyanting.com/article/jscgjh.html