如何使用DNS自动创建子域?

如何使用DNS自动创建子域?,dns,Dns,我想以编程方式自动更新我的DNS多个域。我在GoDaddy运行绑定服务器(在FreeBSD上)以及主机域和DNS。我找不到GoDaddy可以访问和更新他们托管的DNS的web服务API,因此我可能必须使用绑定服务器来提供动态解决方案 基本上我只想查询哪些子域已经存在并添加新的子域 绑定是最好的解决方案吗?有没有另一种方法可以自动添加新域,而无需我登录GoDaddy或手动更新绑定配置?一种方法是编写一个程序,读取和/或更新绑定配置文件(它只是一个文本文件,具有特定格式),并在进行任何更改时重新加载

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

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


绑定是最好的解决方案吗?有没有另一种方法可以自动添加新域,而无需我登录GoDaddy或手动更新绑定配置?

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

您需要添加新子域的功能是动态更新,如中所述,并且BIND非常支持此功能

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

要实际检索其中的内容,有两种方法:

  • 将其他一些数据库视为最终数据库,并将该数据库中的更改转换为ddns更新,或

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


  • 仅供参考:这是一个系统/网络管理问题,而不是编程问题。你可能会在其他地方更快地得到更好的答案

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

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

    但是,一定要将域TTL设置为低,以便更新可以快速传播到其他服务器