欢迎您光临本站,如有问题请及时联系我们。

系统运维:DNS通过软路由(Quagga’s OSPF)实现负载均衡

  DNS是非常重要的服务,需要保证业务的安全性,可靠性与可用性。

  原始的DNS主从结构虽然能够实现DNS的主备,但是无法使用统一的IP对外服务。所以我们将OSPF引入,多台DNS服务器都配置统一的VIP作为业务IP,统一对外服务。

  早前介绍了使用LVS来实现DNS的负载均衡,现在我们来说说另外一种解决方案

  LVS+DNS遇到的问题(keepalived软件bug)

  为啥要引入DNS+软路由的方式呢,是因为在使用LVS+DNS架构中,出现过问题。

  故障描述

  在主LVS发生网络拥塞情况下,会引起ARP表错误更新

  故障原因

  Master VRRP心跳包发送至Slave VRRP延时,致使Slave VRRP错误的进入Master状态,并发送ARP至三层交换机网关,导致网关错误更新ARP缓存(VIP对应的MAC地址)

  故障日志

  OSPF+DNS替代LVS+DNS

  要想使用OSPF+DNS来替代LVS+DNS,那就要看看OSPF+DNS的能否解决我们的需求

  负载均衡

  OSPF自带负载均衡算法,所以负载均衡肯定没有问题

  后端服务器IP自动增减

  我们在OSPF+DNS中引入systemd依赖关系来解决DNS服与OSPF服务之间的关联关系,保证DNS服务一旦出现故障,自动关闭OSPF服务

  显然,OSPF+DNS的架构是可以实现,而且并不存在keepalived中出现的VRRP主从的bug,而且keepalived虽然是主从结构,但是实际业务流量只能在单边跑(master在提供服务时,slave其实只算备份,没有任务业务流量)

  OSPF+DNS架构拓扑

  DNS集群安装软路由工具Quagga

  DNS Server与交换机之前采用点对点/30位IP配置

  DNS Server上全部配置回环口(DNS对外服务统一IP)

  使用Systemd做依赖关系

  DNS集群可以横向扩展

  环境搭建

  DNS集群搭建(略)

  Quagga安装

  yum install quagga.x86_64

  Zebra配置

  DNS Server1

  hostname yxj-10-59-90-2.test.com

  interface em2

  ip address 10.59.90.2

  DNS Server2

  hostname yxj-10-59-90-6.test.com

  interface em2

  ip address 10.59.90.6

  OSPF配置

  DNS Server1

  interface em2

  ip ospf network point-to-point

  ip ospf hello-interval 1

  ip ospf dead-interval 4

  router ospf

  ospf router-id 10.59.90.2

  network 10.59.90.2/30 area 0.0.0.0

  network 10.59.111.250/32 area 0.0.0.0

  DNS Server2

  interface em2

  ip ospf network point-to-point

  ip ospf hello-interval 1

  ip ospf dead-interval 4

  router ospf

  ospf router-id 10.59.90.6

  network 10.59.90.6/30 area 0.0.0.0

  network 10.59.111.250/32 area 0.0.0.0

  交换机配置(H3C)

  interface gi1/0/1

  ip address 10.59.90.1 255.255.255.252

  ospf timer hello 1

  ospf timer dead 4

  ospf network-tpye p2p

  interface gi1/0/2

  ip address 10.59.90.5 255.255.255.252

  ospf timer hello 1

  ospf timer dead 4

  ospf network-tpye p2p

  ospf 1

  description osp_dns

  area 0.0.0.0

  network 10.59.90.1 0.0.0.3

  network 10.59.90.4 0.0.0.3

  systemd依赖关系配置


来源:本文由E8运维原创撰写,欢迎分享本文,转载请保留出处和链接!