DNS轮循介绍
一、DNS使用分析
1、作用
DNS轮循是指将相同的域名解析到不同的IP,以达到负载均衡的目的。
2、优点&缺点
优点:
- 零成本:只是在DNS服务器上绑定几个A记录,域名注册商一般都免费提供解析服务;
- 部署简单:就是在网络拓扑进行设备扩增,然后在DNS服务器上添加记录。
- 统一入口,可以使用一个域名提供服务接入。
缺点:
- 负载算法简单,只支持简单轮巡。
应对办法: 如想使用最小连接数等算法,可以将DNS指向HA负载均衡通过HA来负载。
2.不支持高可靠性,如果后端某服务器宕机,DNS仍然会把DNS请求分发到这个机器上,导致不能响应。
应对办法:使用KEEPAPLIVE将DNS请求分发到VIP上,当宕机发生时,VIP发生飘移,仍可使用。
二、DNS配置
- 安装
基于centos or redhat 使用yum安装bind
yum install bind.x86_64
安装后会主要文件
/usr/sbin/named 可执行域名解析进程
/etc/named.conf 主配置文件
/var/named 默认配置的运行路径,域名配置文件。
2.配置
/etc/named.conf
options {
listen-on port 53 { 192.168.1.86; };//配置监控IP,使用53端口
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";
//rrset-order 支持三个参数:fixed, random, cyclic 。
//fix 会将多个A记录按配置文件的顺序固定给出
//random 会随机给出
//cyclic 会循环给出rrset-order { order cyclic ; };
//允许所有IP查询,可以配置限定IP段
allow-query { any; };
//是否递归查询 默认YES
//递归:客户端只发一次请求,要求对方给出最终结果。
//迭代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的//其它名称服务器列表,
//客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。
//如果是yes,并且一个DNS询问要求递归,那么服务器将会做所有能够回答查询请求的工作。如果recursion是off的,并且服务器不知道答案,它将会返回一个推荐(referral)响应。
recursion no;
dnssec-enable yes;
dnssec-validation yes;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "test.com" IN {//配置域名的区域
type master;
//指定具体域 名配置文件
file "test.com.zone";
allow-update { none; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
/var/named/test.com.zone
$TTL 1D
@ IN SOA ns.test.com. xx.test.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.test.com.
ns A 192.168.1.86
www CNAME master
master A 192.168.1.86
master A 192.168.1.87
master A 192.168.1.88
3. 启动&停止
由yum安装的bind 已经自动加入系统启动脚本,可直接使用系统命令启停。
Centos7
/bin/systemctl start named.service
/bin/systemctl stop named.service
Centos6
service named start
service named stop
三、典型使用场景
1、访问过程
- 客户机访问DNS查询域名,域名服务器轮巡返回HA中一个VIP地址。
- 客户机访问VIP。VIP通过keepalive软件产生,通过 arrp协议通讯。
- 请求通过 VIP HA 分发到实列服务器。
四、常见问题
1、DNS日志通过rsyslog输出,需要注意输出大小,如果量大会占满根目录。
2、DNS请求分发到的HA,可以通过KEEPALIVE 做出VIP,客户机连接VIP,当有HA宕机时,另一台HA会接管,实现高可用目的。
3、DNS 前端也可以做负载,分担DNS解析压力。 或者在客户机中配置多个DNS地址,需要配置顺序。