簡體   English   中英

您將如何使用 DNS 自動創建子域?

[英]How would you create sub-domains with DNS automatically?

我想以編程方式自動更新我的 DNS 更多域。 我在 GoDaddy 上運行 BIND 服務器(在 FreeBSD 上)以及主機域和 DNS。 我找不到 web 服務 API 供 GoDaddy 訪問和更新他們托管的 DNS,因此我可能不得不使用我的 BIND 服務器來提供動態解決方案。

基本上我只想查詢哪些子域已經存在並添加新的子域。

BIND 是最好的解決方案嗎? 是否有其他方法可以自動添加新域,而無需我登錄 GoDaddy 或手動更新我的 BIND 配置?

一種方法是編寫一個程序來讀取和/或更新 BIND 配置文件(它只是一個具有特定格式的文本文件)並在進行任何更改時重新加載 BIND 守護程序。 因此,就好像您手動更新了 BIND 配置一樣,除非您已經編寫了一個程序來為您執行此操作。

添加新子域所需的功能是動態更新,如RFC 2136中所指定,並且受到 BIND 的良好支持。

使用 DNS "UPDATE" 消息從區域文件中添加和刪除記錄相當容易(例如使用 Perl 的 Net::DNS 模塊)。

要實際檢索那里的內容,您有兩種方法:

  1. 將其他一些數據庫視為確定的,並將該數據庫中的更改轉換為 ddns 更新,或者。

  2. 允許 DNS “AXFR”消息允許您下載整個區域內容(盡管只下載到您的區域管理系統,而不是整個世界!)

僅供參考:這是一個系統/網絡管理問題,而不是編程問題。 您可能在其他地方可以更快地得到更好的答案。

也就是說......這相當簡單:您只需要一個支持數據庫后端數據的 DNS 服務器。 然后您只需將條目寫入數據庫,或查詢數據庫中的內容,DNS 記錄將自動提供。 理想情況下,使用支持觸發器的數據庫,這樣您就可以讓 DNS 記錄的序列號在更改時自動更新。 否則,您需要在代碼的每次更改中讀取/寫入序列號,在事務中進行整個更新。

編輯:剛剛看到上面的其他評論。 不允許 AXFR。 如今,這被認為是一種安全風險。

不過,請務必將域 TTL 設置得較低,以便更新快速傳播到其他服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM