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 。 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地址,需要配置顺序。