内网 DNS 服务器维护

小初seo 学习笔记581字数 1614阅读5分22秒阅读模式
摘要

使用 AdGuard 搭建内网域名服务

因为有内网域名的需求,所以使用 AdGuard 搭建了多台域名服务器。考虑到服务的连续性,通过负载均衡设备自动踢掉故障服务,同时使用 docker 创建 多个 AdGuard 服务,保障服务出现故障时可以快速恢复。

其中 AdGuard 有两种部署方式,一种是单台部署,一台主机只运行一个 AdGuard 服务。因为 DNS 会用到 TCP和UDP 的 53 端口,单台主机只能保留一个 AdGuard 服务。另一种方式是使用 Docer 的 macvlan 方式,在一台主机上绑定多个IP,每个IP都拥有一套 53 端口。

单台服务模式:

$ docker pull adguard/adguardhome$ docker run --name adguardhome        --restart unless-stopped        -v /mydns/workdir:/opt/adguardhome/work         -v /mydns/confdir:/opt/adguardhome/conf        -p 53:53/tcp        -p 53:53/udp         -p 67:67/udp -p 68:68/udp         -p 80:80/tcp        -p 443:443/tcp        -p 443:443/udp        -p 3000:3000/tcp        -p 853:853/tcp         -p 784:784/udp        -p 853:853/udp        -p 8853:8853/udp        -p 5443:5443/tcp        -p 5443:5443/udp         -d adguard/adguardhome

使用 macvlan 模式:

$ docker pull adguard/adguardhome
$ docker network create -d macvlan               --subnet=10.1.1.0/24               --gateway=10.1.1.254               -o parent=eth0 mymacvlan
$ docker run --name adguard               --ip=10.1.1.1         --network mymacvlan        -d adguard/adguardhome
$ docker run --name adguard-2                 --ip=10.1.1.5           --network mymacvlan          -d adguard/adguardhome

使用 macvlan 的方式可以在一台主机上运行多个 AdGuard 服务。使用 docker network 命令可以管理 macvlan 网络。

$ docker network ls$ docker network inspect mymacvlan$ docker network disconnect mymacvlan adguard$ docker network connect --ip 10.1.1.1 mymacvlan adguard

对于 AdGuard 服务,我们主要用到了它的DNS重写功能,具体到配置文件就是 AdGuardHome.yaml 中的 rewrites 属性。

内网 DNS 服务器维护

当没有做数据持久化时,数据存在 overlay 文件系统中。我们可以通过 docker inspect 来定位配置文件的位置。

$ docker inspect adguard | grep MergedDir

配置文件在 MergedDir 目录下

${MergedDir}/opt/adguardhome/conf/AdGuardHome.yaml

通过备份或还原配置文件就可以实现多台 AdGuard 服务的配置同步。多套 AdGuard 服务可以共用一套配置文件。因为所有的配置都是基于 YAML 文件的,所以替换配置文件后重启 docker 服务即可。

# 更新 AdGuardHome.yaml 后需求重启服务$ docker restart adguard

检查一下 AdGuard 容器的存储策略是否使用的 overlay 挂载方式,如果使用 overlay 方式重启容器数据文件不会丢失,除非销毁容器,不然数据都在 overlay 的 MergedDir 存储。

全文完。

  • 本文由 发表于 2023年1月5日 21:20:47
  • 转载请务必保留本文链接:https://www.pkak.cn/9075.html