11月12日我参加了51CTO的技术沙龙"Exchange Server系统升级与迁移",两位老师的分享都比较精彩,也让我学到了一些EXCHANGE在升级和迁移方面的知识和经验。记得当时有位朋友问到DNS轮询的问题,因为时间关系宋老师回答的比较简略,在此我把这个问题展开一下,也算是一个补充吧。linux
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,附图:
安全
而后在DNS主机QINGYG上点击右键选择属性,在出现的对话框中勾选"启用循环",如图:
服务器
注意:网络掩码排序能够根据子网掩码来判断dns地址和客户端是否在同一个网段或者离的比较近,而后优先返回较近的服务器的地址。网络
注意:WINDOWS会缓存DNS结果,为方便观察轮询状况,咱们须要用"ipconfig /flushdns"来清空DNS缓存。dom
下面咱们看一下LINUX下如何设置DNS轮询,以RHEL 5为例:
一、首先须要安装BIND并搭建DNS服务器(具体DNS搭建过程请参考相关资料)
#yum install -y bind* caching-nameserver*
安装DNS服务器通常须要安装如下三个数据包:ide
bind-utils-9.3.3-7.el5 查询用测试
bind-chroot-9.3.3-7.el5 安全机制网站
caching-nameserver-9.3.3-7.el5 配置文件
二、修改区域数据配置文件(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主机,以避免有些邮件服务器为了反垃圾邮件进行反向查询时出现问题。
[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不过时,而从新查询服务器并指向了新的服务器,那么原服务器保存的用户信息是没法被带到新服务器的,并且可能被要求从新认证身份,并且来回切换时间长了各台服务器都保存有用户不一样的信息,对服务器资源也是一种浪费。