【问题标题】:How would you create sub-domains with DNS automatically?您将如何使用 DNS 自动创建子域?
【发布时间】:2009-02-25 00:41:49
【问题描述】:

我想以编程方式自动更新我的 DNS 更多域。我在 GoDaddy 上运行 BIND 服务器(在 FreeBSD 上)以及主机域和 DNS。我找不到让 GoDaddy 访问和更新他们托管的 DNS 的 Web 服务 API,因此我可能不得不使用我的 BIND 服务器来提供动态解决方案。

基本上我只是想查询哪些子域已经存在并添加新的。

BIND 是最佳解决方案吗?是否有其他方法可以自动添加新域,而无需我登录 GoDaddy 或手动更新我的 BIND 配置?

【问题讨论】:

    标签: dns


    【解决方案1】:

    您需要添加新子域的功能是动态更新,如 RFC 2136 中指定的那样,并且受到 BIND 的良好支持。

    使用 DNS“UPDATE”消息从区域文件中添加和删除记录相当容易(例如使用 Perl 的 Net::DNS 模块)。

    要真正检索那里的内容,您有两种方法:

    1. 将某些其他数据库视为权威,并将该数据库中的更改转换为 ddns 更新,或者。

    2. 允许 DNS“AXFR”消息以允许您下载整个区域内容(尽管只下载到您的区域管理系统,而不是整个世界!)

    【讨论】:

      【解决方案2】:

      一种方法是编写一个程序来读取和/或更新 BIND 配置文件(它只是一个具有特定格式的文本文件)并在进行任何更改时重新加载 BIND 守护程序。因此,就好像您手动更新了 BIND 配置一样,除非您已经编写了一个程序来为您执行此操作。

      【讨论】:

        【解决方案3】:

        仅供参考:这是一个系统/网络管理问题,而不是编程问题。您可能在别处可以更快地得到更好的答案。

        也就是说...这很简单:您只需要一个支持数据库后端的 DNS 服务器来存储其数据。然后,您只需将条目写入数据库,或查询数据库中的内容,DNS 记录将自动提供。理想情况下,使用支持触发器的数据库,这样您就可以让 DNS 记录的序列号在更改时自动更新。否则,您需要在代码的每次更改中读取/写入序列号,在事务中进行整个更新。

        编辑:刚刚看到上面的其他评论。不允许 AXFR。如今,这被认为是一种安全风险。

        将域 TTL 设置得较低,以便更新快速传播到其他服务器。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-02-09
          • 1970-01-01
          • 1970-01-01
          • 2017-10-28
          • 2020-01-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多