DNS容灾切换

发布于 16 天前  84 次阅读


AI 摘要

上一篇文章搭了DNS聚合管理系统,这篇讲其中一个关键能力:DNS容灾切换。 我的场景是三线IEPL:三条线路各有一个IP、一个域名,再用华为云按运营商做DNS解析,让单域名也能“手搓BGP”。但问题是某条线路一旦故障,对应运营商用户就直接不可用,所以需要容灾切换,把解析自动切到另一条正常线路。 启用容灾时,我在1Panel里进到对应Docker容器的终端执行: `cd /www/sites/dns.xxx.com/index/` `nohup php think dmtask > /dev/null 2>&1 &` 启动后就能在网页端查看容灾状态。接着创建切换策略,例如“移动线路故障时,切换到联通线路”。同理再补齐联通、电信之间的互切,比如:`zs-cu.iepl.xxx.com > zs-ct.iepl.xxx.com`、`zs-ct.iepl.xxx.com > zs-cm.iepl.xxx.com`。这样任意线路出问题就自动切到另一条,直到三条都故障为止。 线路恢复后,还可以配合自动化脚本(例如NY面板)把DNS解析自动切回,实现从故障检测到DNS变更的全自动闭环。

前言

上一篇文章写了搭建DNS聚合管理系统,本文介绍其中一个重要功能:DNS容灾切换

场景

三线IEPL,三个IP对应三个域名,通过华为云分运营商DNS解析,实现单域名手搓BGP。当一个线路出现问题时,该运营商用户就无法使用了,所以通过容灾切换自动切换到另一个线路。

启动容灾

进入1Panel面板>找到Docker容器>终端>执行

  cd /www/sites/dns.xxx.com/index/

  nohup php think dmtask > /dev/null 2>&1 &

启动容灾切换,在网页端查看状态

创建切换策略

添加容灾策略>当移动线路故障时,切换到联通线路

如下图

以此类推,添加联通和电信,比如:

  zs-cu.iepl.xxx.com > zs-ct.iepl.xxx.com
  zs-ct.iepl.xxx.com > zs-cm.iepl.xxx.com

当任意线路故障,自动切到另一条线路,直到所有线路都故障。

当该线路恢复,可配合自动化程序脚本实现自动DNS解析,比如NY面板,从而实现全自动化流程。

  • alipay_img
  • wechat_img
公众号:享生活爱羊毛
最后更新于 2026-01-16