DNS轮询

2021-05-17 15:24:02 浏览数 (1)

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

下面是一个实现邮件服务器负载平衡的配置片段(在区域数据文件中)。

www IN A 192.168.0.4

IN A 192.168.0.5

IN A 192.168.0.6

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

order_spec定义:

[ class class_name ][ type type_name ][ name "domain_name"] order ordering

如果没有设定类,默认值为ANY。如果没有设定类型,默认值为ANY。如果没有设定

名称,默认值为"*"。

合法的排序值是:

fixed:记录以它们在域文件中的顺序

random:记录以随机顺序被返回

cyclic:记录以环顺序被返回

例如:

rrset-order {

class IN type A name "host.example.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

0 人点赞