当前位置: 首页 > news >正文

使用Bind配置DNS Load Balancing

1. 负载均衡

最原始的负载平衡,可以在 DNS 里使用多个 A 纪录来达到效果。假设,如果你有三台 WWW 服务器,它的 IP 地址分别为 10.0.0.1,10.0.0.2 以及 10.0.0.3,使用以下的设定方式,每台服务器都会被分到 1/3 的联机。

NameTTLCLASSTYPEResource Record (RR) Data
WWW600INA192.168.1.1
 600INA192.168.1.96
 600INA192.168.1.99

当有客户端寻问这三笔纪录时,BIND 会使用不同的顺序轮流回复这三个 IP 地址。如上面这个例子,客户端将会接到任意的顺序,如 1,2,3 ,2,3,1 以及 3,1,2。大部份的客户端会使用第一个顺序,并且忽略其余的。

2.rrset-order 功能

rrset-order {
[ class class_name ]
[ type type_name ]
[ name "domain_name"]
order ordering }; //ordering 可為 fixed / random / cyclic
 

范例 :
rrset-order {class IN type A name "sip.com" order random;};

rrset-order 多笔 FQDN 时响应的方法,也就是当您有 Round Robin 的数据(一个名称对应到多个 RDATA)时,其响应的方式:

random: 随机选取,原来之系统默认值
cyclic: 循环式回答,即有三笔资料的话,即依 1->2->3->1->2…回答

3.Bind配置

这里以sip.com为范例:

/etc/named.conf

...

options {
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;

rrset-order {
class IN type A name "sip.com" order random;
};

}

...

zone "sip.com" IN {
type master;
file "named.sip.zone";
};

/var/named/named.sip.zone

; BIND db file for sip.com

$TTL 86400

@ IN SOA primary.sip.com. admin.sip.com. (
2008090301; serial number YYMMDDNN
28800 ; Refresh
7200 ; Retry
864000 ; Expire
86400 ; Min TTL
)

NS primary.sip.com.
NS secondary.sip.com.

MX 10 mail.sip.com.
MX 20 mail-spool.sip.com.
_sip._udpSRV0 1 9 primary.sip.com.
SRV0 3 9 secondary.sip.com.
primaryINA10.30.32.30
secondaryINA10.30.32.31
mailINA10.30.32.32
mail-spoolINA10.30.32.34
wwwIN A192.168.1.96
wwwIN A192.168.1.99
wwwIN A192.168.1.1
$ORIGIN sip.com.

这里www.sip.com配置了3个ip地址,分别为192.168.1.1 , 192.168.1.96, 192.168.1.99.

4.Test

重新加载配置:

/etc/init.d/named reload

#第一次查询

dig www.sip.com

; <<>> DiG 9.5.0-P1 <<>> www.sip.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32738
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.sip.com. IN A

;; ANSWER SECTION:
www.sip.com. 86400 IN A 192.168.1.1
www.sip.com. 86400 IN A 192.168.1.96
www.sip.com. 86400 IN A 192.168.1.99

;; AUTHORITY SECTION:
sip.com. 86400 IN NS primary.sip.com.
sip.com. 86400 IN NS secondary.sip.com.

;; ADDITIONAL SECTION:
primary.sip.com. 86400 IN A 10.30.32.30
secondary.sip.com. 86400 IN A 10.30.32.31

;; Query time: 9 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Sep 4 00:01:39 2008
;; MSG SIZE rcvd: 155

# 第二次查询

dig www.sip.com

; <<>> DiG 9.5.0-P1 <<>> www.sip.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28609
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.sip.com. IN A

;; ANSWER SECTION:
www.sip.com. 86400 IN A 192.168.1.99
www.sip.com. 86400 IN A 192.168.1.1
www.sip.com. 86400 IN A 192.168.1.96

;; AUTHORITY SECTION:
sip.com. 86400 IN NS secondary.sip.com.
sip.com. 86400 IN NS primary.sip.com.

;; ADDITIONAL SECTION:
primary.sip.com. 86400 IN A 10.30.32.30
secondary.sip.com. 86400 IN A 10.30.32.31

;; Query time: 5 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Sep 4 00:01:41 2008
;; MSG SIZE rcvd: 155

注意红色部分,www.sip.com返回的地址顺序已经改变了!

5. Reference

BIND 9 Administrator Reference Manual

相关文章:

  • Koopman 算子理论参考文献
  • 计算一阶导数的四阶中心差分格式
  • Hankel alternative view of Koopman (HAVOK) analysis
  • SharePoint列表导入/导出命令
  • 奇怪吸引子图鉴
  • 百度网盘提速
  • 全球十大交响乐团
  • Stacked Broad Learning System: From Incremental Flatted Structure to Deep Model
  • 深入了解TOMCAT SERVER
  • linux 笔记
  • 移植MiniGUI到S3C2410目标板
  • 制作持久化的 Kali U盘
  • 这是事实呀!!!
  • python 简单 socket 编程
  • 各类文章 bibtex 的字段
  • CentOS7简单部署NFS
  • ES6核心特性
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Laravel Telescope:优雅的应用调试工具
  • V4L2视频输入框架概述
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 基于web的全景—— Pannellum小试
  • 前端js -- this指向总结。
  • 如何在GitHub上创建个人博客
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • Python 之网络式编程
  • zabbix3.2监控linux磁盘IO
  • 阿里云重庆大学大数据训练营落地分享
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​渐进式Web应用PWA的未来
  • #### go map 底层结构 ####
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (四)linux文件内容查看
  • (万字长文)Spring的核心知识尽揽其中
  • (新)网络工程师考点串讲与真题详解
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转载)Google Chrome调试JS
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .java 9 找不到符号_java找不到符号
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • @Validated和@Valid校验参数区别
  • [17]JAVAEE-HTTP协议
  • [2016.7 test.5] T1
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式