推荐

推荐

我们使用 Amazon Route53 作为我公司的主 DNS。随着我们逐渐使用来自不同提供商的多项服务,他们每个人都请求某种 DNS 条目来验证我们的域和/或使用他们的服务。截至目前,我们的主要托管区域中有大约 60 个条目。

这开始变得令人困惑,因为亚马逊甚至不允许一个简单的描述字段对于每个条目,这样我们就知道它的含义,而不必解析它。

有没有更好/不同的方法来解决这个问题?

答案1

推荐

开始学习使用并使用 AWS 命令​​行,结合您自己的自主开发的解决方案来管理您的 DNS 条目。

我个人有一个解决方案,它将多个文本文件(每个文件都包含客户标识和评论)汇总为一个文件,然后在有更新时将其发送到我的权威 DNS。

有关 AWS Route53 CLI 的更多信息这里


示例解决方案

1)得到cli53

2)为每个客户创建一个文件夹,并在其中填充与 BIND 兼容的 zonefile.txt。

C:\zones\customer.com.txt
C:\zones\example.org.txt
C:\zones\loyal-customer.net.au.txt

3)编写一个脚本,获取每个文件并将其上传到 AWS Route53:

电源外壳

$zonefileDir = "C:\zones\"

foreach ($file in (ls $zonefileDir -r))
{
    # Remove the '.txt' from each file, so we have the proper domain name
    $zone = ($file.name -replace "\.txt$","")

    # import the BIND zonefile and replace any existing records
    cli53 import $zone --file $file --replace --wait
}

猛击

directory="/etc/bind/zones/"
for file in `ls $directory`
do
    zone=`echo $file | grep -Po "^.*?(?=\.extension)"`
    cli53 import $zone --file $directory$file --replace --wait
done

4)每当您需要进行更改时,您都可以在单独的客户区域文件内进行更改,您也可以使用目录进行分隔。

5)同步所有区域文件Git这样您就可以跟踪每个区域文件的更改,以防需要恢复。

答案2

我不知道有任何现成的解决方案可以做到这一点。

也就是说,自制 Route53 管理系统应该相当简单 - 几个 mysql 表和一个你选择的语言的同步脚本就足够了。

相关内容