DNS BIND之DNS负载

举报
antcloud 发表于 2017/11/25 15:13:39 2017/11/25
【摘要】 DNS负载均衡的优点是简单易行,而且实现代价小。它在DNS服务器中为同一个域名配置多个IP地址(即为一个主机名设置多条A资源记录),在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的计算机上去,从而达到负载均衡的目的。 下面是一个实现web服务器负载平衡的配置片段(在区域数据文件中)。 www.antcloud.c

DNS负载均衡的优点是简单易行,而且实现代价小。它在DNS服务器中为同一个域名配置多个IP地址(即为一个主机名设置多条A资源记录),在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的计算机上去,从而达到负载均衡的目的。
下面是一个实现web服务器负载平衡的配置片段(在区域数据文件中)。
www.antcloud.com   IN  A       20.20.3.1  
                   IN  A       20.20.3.2  
                   IN  A       20.20.3.3

在以上配置中,当客户端查询www服务器IP地址时,Bind将根据rrset-order语句定义的次序把配置中设定的3条A记录都发送给客户端,客户端可以使用自己规定的算法从3条记录中挑选一条。rrset-order语句是主配置文件中options主语句的一条子语句,可以定义固定、随机和轮询的次序,Bind9默认返回的顺序是随机。

 合法的排序值是:
fixed:记录以它们在域文件中的顺序
random:记录以随机顺序被返回
cyclic:记录以环顺序被返回
例如:
rrset-order {
class IN type A name "www.antcloud.com" order random;
order cyclic;
};
将会使得任何处于IN类中的A类记录的响应以随机顺序返回,IN 类以"host.example.com"为后缀。其他的记录以循环记录被返回。如果多重rrset-order语句出现,它们并不组合在一起,只适用于最后一个条。但是rrset-order语句不被BIND9支持,BIND9目前只支持"random-cyclic"排序,服务器随机选择RRset集中的开始点,有顺序返回在那个点开始的记录。
可以通过配置全局配置
dns 轮询配置options来实现轮询。
options { 
rrset-order { order cyclic; }; 
..... 
};
fixed在默认编译的时候是关闭的,需要在编译的时候打开:
Allow 'fixed' rrset-order (--enable-fixed-rrset)
./configure  --enable-largefile --enable-threads --disable-openssl-version-check  --enable-fixed-rrset --prefix=/home/slim/bind9.9.7 --with-libtool

注意:rrset-order为全局配置,该配置在Bind中会配置在每一个view中。每个域名请求都要遍历该规则列表,配置该配置会影响到Bind的解析性能。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。