APP下载

高可用DNS集群服务器架构的实践应用

2022-07-07金海峰侯乐斌

关键词:IP地址端口备份

金海峰,侯乐斌

(1.江阴职业技术学院 计算机科学系,江苏 江阴 214405;2.上海高性能集成电路设计中心,上海 200120)

1 引言

集群是指将多个相互独立的服务器组成一个逻辑集群组,像一个独立的服务器一样,共同对外提供服务,集群服务器提高了服务的可用性和灵活性。常见的集群架构模式包括主主模式和主备模式。主主模式是指两台服务器均处于活动状态,按照负载均衡策略共同对外提供服务。主备模式是指在一个冗余组内有多台服务器,一台处于主模式,其他服务器处于备份模式。在此状态下,由主服务器对外提供服务,而备份服务器只在主服务器出现故障的时候才对外提供服务。DNS服务器是一种域名解析系统,为客户提供域名解析服务。客户端每次访问Internet网络资源,尤其是访问WEB服务器的时候,均需要通过DNS服务器的域名解析得到WEB服务器的IP地址。所以DNS服务器的性能、可靠性和稳定性,直接会影响到用户对网络使用的体验感,一旦DNS服务器出现故障,有可能导致Internet网络的瘫痪。软件Keepalived是业内实现服务器集群的主流软件,Keepalived支持主主模式和主备模式。

2 Keepalived介绍

Keepalived是集群管理中保证集群服务器高可用性、高可靠性的一款开源软件。Keepalived基于VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)协议[1],多个服务器(或者多个服务器网卡地址)构成一个或多个VRRP组,每个VRRP组包含一个处于Master状态的服务器,和一个或者多个处于Backup状态的服务器,Master服务器负责处理业务,对外提供服务。如果Master服务器宕机,或者被监测的端口、进程出现故障,Backup服务器自动转为Master状态,并立即接替原Master服务器的工作,实现业务的平滑迁移,保障了服务器的高可用性和高可靠性,整个切换过程全部由系统自动完成,无需人工干预。每个VRRP组拥有一个VIP(Virtual IP)地址,集群服务器通过VIP对外提供服务,而屏蔽了服务器的真实IP地址,提升了服务器的安全性。

3 DNS集群服务器架构及关键技术

3.1 集群架构模型

集群架构模型包括DNS集群服务器和一台客户端主机,DNS集群服务器包括两台DNS服务器,分别命名为DNS-M、DNS-S,DNS-M是 DNS主服务器,具有独立、完备的域名解析记录,DNS-S是DNS辅助服务器,其域名解析记录来源于DNS主服务器。两台DNS服务器中部署Keepalived软件,并建立VRRP组,DNS-M服务器为Master状态,负责对外提供域名解析服务,DNS-S服务器为Backup状态,VRRP组的VIP地址为10.10.10.200/24。DNS集群服务器架构模型具体参数如图1所示[2]。

图1 DNS集群服务器架构模型

3.2 关键技术

完成集群的架构,需要解决两项关键技术。首先,主备节点中Keepalived配置文件的配置,涉及到VRRP组名、state状态、网络接口、实例ID、优先级,以及VIP地址等参数的设置。同一个冗余组的VRRP组名、实例ID必须一致。同一个冗余组中,根据state状态参数、优先级大小,决定主备状态,如果仅有一台服务器state参数为Master,该服务器成为主服务器,如果有多台服务器state参数是Master,优先级值最大者成为主服务器。一般情况下,不建议将多台服务器state参数设置为Master。其次,初次完成Keepalived的配置,VIP地址生效后,可以手动重启Named进程,保证VIP的53号端口开放,即通过VIP:53对外提供域名解析服务。一旦主服务器出现故障,备份服务器自动切换到Master,VIP地址宿主主机变更,则可以通过定义脚本文件监测Keepalived状态信息,一旦发生状态变化,则自动重启Named进程。

3.2.1 部署Keepalived

编辑配置文件keepalived.conf,主节点和备份节点配置文件分别如下[3]。

(1)主节点配置文件

(2)备份节点配置文件

分析主备节点配置文件可以得知:备份节点配置文件与主节点基本框架一致,尤其是VRRP组名、实例ID号、认证方式、VIP必须一致,主备节点状态通过参数state、priority来判断,默认状态下,参数state为master的节点为主节点,当state参数相同时,优先级数值最大者成为主节点。

3.2.2 功能测试

完成Keepalived的基本配置后,观察Keepalived的状态,并分别通过关闭主节点DNS-M、禁用主节点网卡、关闭主节点上的Named进程,来测试DNS集群服务器的可靠性。

(1)配置结果

完成Keepalived的基本配置后,重启Keepalived进程,在主节点DNS-M上输入命令ip addlist,结果如图2和图3所示。

图2 主节点IP地址信息

图3 备份节点IP地址信息

从图2和图3可以分析得知:主节点DNS-M上新增了IP地址10.10.10.200/32,而备份节点DNS-S地址信息没有变化,说明Keepalived已经生效,并且DNS-M处于Master状态。

(2)主备服务器故障转移测试

主节点服务器网卡关闭,或者关闭系统后,观察主备份节点服务器的地址信息变化,备份节点地址信息如图4所示。

图4 备份节点IP地址信息

主节点服务器network进程关闭后,备份节点服务器的VIP立即生效了,说明备份节点检测到主节点服务器网络断开后,可以自动切换到Master状态了。

默认情况下,Keepalived开启了抢占模式。重新开启主节点服务器network进程后,主节点服务器VIP立即生效,而备份节点服务器的VIP随即失效。

(3)named进程监测测试

在主节点服务器上,通过命令systemctl stop named进程关闭DNS服务后,观察地址信息发现没有变化,VIP依然生效。

(4)域名解析功能测试

主、备节点VIP生效后,在客户端计算机上完成DNS客户端(配置文件/etc/resolve.conf中添加记录:nameserver 10.10.10.200)配置后,通过命令nslookup测试域名解析,会得到如图5所示的“连接超时”的提示信息。

图5 DNS服务连接超时

在DNS服务器上,通过命令netstat-nat查看端口开放状态,会发现VIP10.10.10.200的53号端口未开放,命令结果如图6所示。

图6 VIP的53号端口未开放

在DNS服务器上,通过命令systemctl restart named重启DNS进程后,会发现VIP10.10.10.200的53号端口开放了,客户端也能够实现域名解析。

手动重启named进程,仅适用于Keepalived首次配置完成后执行。如果每次Keepalived状态自动切换后,手动重启named进程,势必存在一定的空挡期,而空挡期DNS服务器无法对外提供域名解析服务。

4 DNS集群服务架构方案优化

至此,完成了Keepalived的主备自动切换,但切换后VIP还不能很好地提供域名解析服务,仍需解决两个问题:①主备服务器不仅能够监测网络状态,根据网络断开与否,实现Keepalived状态自动切换,还需监测named进程状态,一旦named进程关闭,Keepalived应该立即失效,而备份节点自动切换到Master状态。②备份节点转换到Master后,能够自动重启named进程。

4.1 监测named进程

4.2 自动重启named进程

4.3 高可用性测试

通过命令systemctl stop named关闭主节点服务器上的named进程,分别观察主备节点服务器的地址信息变化情况,并观察VIP的53号端口开放情况。

关闭主节点服务器上的named进程后,查看主备服务器地址信息如图7、图8所示。

图7 主节点中VIP消失

图8 备份节点中增加VIP

查看备份服务端口信息,如图9所示。

图9 备份服务器VIP开放53端口

分析图7、图8和图9,可以得知:关闭主节点服务器上的named进程后,主节点服务器的VIP地址消失了,而备份服务器上的VIP生效了,而且备份服务器切换到master状态后,VIP地址的53端口随即开放,可以对外提供域名解析服务。

5 结语

实践证明,根据本方案部署基于Keepalived的DNS集群服务器,可以有效解决DNS服务器单点故障问题,提高系统的服务能力,加强系统稳定性、可靠性,保障服务的高可用性。

猜你喜欢

IP地址端口备份
华为交换机端口Hybrid 模式的应用
利用云备份微信聊天记录
一种有源二端口网络参数计算方法
一种端口故障的解决方案
如何只备份有用数据而不备份垃圾数据
全方位备份,就用Acronis True Image
Windows10应用信息备份与恢复
《IP地址及其管理》教学设计
计算机的网络身份IP地址
轻松明白网络IP地址以及子网划分问题