温馨提示×

centos域名备份方案

小樊
31
2025-12-11 11:32:40
栏目: 云计算

CentOS 域名解析备份与高可用方案

一、总体思路

  • 在生产环境中,“域名备份”通常包含三层目标:
    1. 配置层面的可恢复性(主从复制、配置与区域文件备份);
    2. 解析层面的连续性(主 DNS 故障时从 DNS 可无缝接管);
    3. 异地容灾(跨机房/跨地域的备份与快速回滚)。
  • 本方案以 BIND 9 为核心,采用 主从同步 + 配置/区域文件定期备份 + 异地 rsync 归档 的组合,实现可用性与可恢复性的兼顾。主从同步负责“近实时增量备份”,定时备份负责“配置与审计留痕”,异地 rsync 负责“灾备与快速回滚”。

二、主从 DNS 高可用部署

  • 架构要点
    • 主 DNS:维护权威区域数据(正向/反向),允许从服务器进行区域传送(AXFR/IXFR)。
    • 从 DNS:配置为 type slave,指定主 DNS 地址,自动拉取与持续同步区域数据。
    • 端口与协议:TCP/UDP 53;其中 TCP 53 用于主从同步与大数据量传输,UDP 53 用于客户端查询。
  • 关键配置示例
    • 主 DNS(/etc/named.conf 片段)
      • 全局:
        • listen-on port 53 { any; };
        • allow-query { any; };
        • recursion yes;(若仅作权威解析,可关闭递归)
        • forwarders { 8.8.8.8; 8.8.4.4; };(可选,提升外部解析效率)
      • 区域:
        • zone “example.com” IN { type master; file “/var/named/example.com.db”; allow-transfer { 192.0.2.11; }; };
    • 从 DNS(/etc/named.conf 片段)
      • zone “example.com” IN { type slave; file “slaves/example.com.db”; masters { 192.0.2.10; }; };
  • 区域文件与权限(示例)
    • 主区域库 /var/named/example.com.db:
      • $TTL 86400
      • @ IN SOA ns1.example.com. admin.example.com. ( 2024101501 3600 1800 1209600 86400 )
      • @ IN NS ns1.example.com.
      • @ IN NS ns2.example.com.
      • ns1 IN A 192.0.2.10
      • ns2 IN A 192.0.2.11
      • www IN A 203.0.113.10
    • 权限与检查:
      • chown root:named /var/named/example.com.db && chmod 640 /var/named/example.com.db
      • named-checkconf 与 named-checkzone 校验语法与区域一致性
  • 防火墙放行
    • firewall-cmd --zone=public --add-port=53/tcp --permanent
    • firewall-cmd --zone=public --add-port=53/udp --permanent
    • firewall-cmd --reload
  • 验证
    • dig @192.0.2.10 www.example.com +short
    • dig @192.0.2.11 www.example.com +short
    • 模拟主故障(停止主 DNS 或断网),确认从 DNS 仍能解析
      上述要点与示例覆盖了主从架构、端口用途、关键配置、权限校验与验证方法,可直接用于 CentOS 7/8 环境部署。

三、配置与区域文件备份

  • 备份范围与频率
    • 每日增量备份:/etc/named.conf、/etc/named.rfc1912.zones(或包含区域定义的 included 文件)、/var/named/*.db、/var/named/slaves/(从库)、/var/named/data/(统计/缓存相关)。
    • 每周全量归档:打包并异地同步,保留至少 7–30 天
  • 本地备份脚本(示例)
    • 备份脚本 /usr/local/bin/dns_backup.sh
      • #!/bin/bash
        • set -e
        • DATE=$(date +%F_%H-%M-%S)
        • BACKUP_BASE=“/opt/dns_backup/${DATE}”
        • mkdir -p “$BACKUP_BASE”
        • 配置文件

        • cp -p /etc/named.conf /etc/named.rfc1912.zones “$BACKUP_BASE/”
        • 区域库与从库

        • rsync -a /var/named/*.db /var/named/slaves/ /var/named/data/ “$BACKUP_BASE/”
        • 校验与清单

        • named-checkconf >/dev/null 2>&1
        • find “$BACKUP_BASE” -type f -exec sha256sum {} ; > “$BACKUP_BASE/sha256sum.txt”
        • 清理 7 天前本地备份

        • find /opt/dns_backup -maxdepth 1 -type d -mtime +7 -exec rm -rf {} ;
    • 定时任务(每日 02:00)
      • 0 2 * * * /usr/bin/bash /usr/local/bin/dns_backup.sh >> /var/log/dns_backup.log 2>&1
  • 异地容灾(rsync 示例)
    • 备份机准备(示例账号与模块):/etc/rsyncd.conf 中定义 [backup_dns] 模块与路径、权限;客户端使用密码文件 /etc/rsyncd_backup.secrets
    • 在备份脚本末追加:
      • rsync -azP --password-file=/etc/rsyncd_backup.secrets “/opt/dns_backup/${DATE}” rsync@10.10.10.20::backup_dns/
        该脚本覆盖配置与区域库等关键数据,并结合 rsync 实现自动化异地归档,便于快速回滚与审计。

四、回滚与演练

  • 快速回滚步骤
    • 停止 named:systemctl stop named
    • 从最近备份恢复:
      • 配置文件:cp -p /opt/dns_backup/YYYY-MM-DD_HH-MM-SS/named.* /etc/
      • 区域库:rsync -a /opt/dns_backup/YYYY-MM-DD_HH-MM-SS/var/named/ /var/named/
    • 权限修正:chown -R root:named /var/named/.db && chmod 640 /var/named/.db
    • 启动服务:systemctl start named
    • 校验:named-checkconf && dig @127.0.0.1 example.com any +short
  • 演练建议
    • 每周在维护窗口演练一次“主故障→从接管→回滚”全流程,记录 RTO/RPO 并优化脚本与阈值(如 serial 增长策略、备份保留周期)。

五、补充建议

  • 安全加固
    • 限制区域传送:在 options 或 zone 中使用 allow-transfer { 从库IP; };;必要时启用 TSIG 做主从认证。
    • 最小权限与 chroot:使用 bind-chroot 将 named 运行在受限根目录;严格控制 /var/named 属主属组为 root:named,区域库 640
    • 访问控制:按业务划分 allow-query(如内网段/any),对外仅暴露必要接口。
  • 监控与告警
    • 监控项:named 进程存活、UDP/TCP 53 连通性、从库 serial 是否落后、备份任务成功与否、异地归档结果。
    • 建议接入 Zabbix/Prometheus 并设置阈值告警(如 serial 超过 3 次未增长即告警)。
  • 变更管理
    • 区域变更遵循“先备后改”:更新前先备份;修改 SOA Serial(建议采用 YYYYMMDDNN 格式),变更后使用 dig axfr 拉取校验一致性;必要时在从库手动触发一次 zone transfer 加速收敛。
      以上加固与运维实践可显著提升稳定性与可运维性,并与主从与备份流程形成闭环。

0