我们使用 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 表和一个你选择的语言的同步脚本就足够了。