我最近购买了一个域名,karthikts.com(仅作为示例,但这不是实际注册的域名),在注册商(crazydomains.com)仪表板上我可以看到以下配置:
- 我被分配了两个名称服务器,ns1.crazydomains.com 和 ns2.crazydomains.com
- 两个A记录,一个“karthikts.com -> abcd”,另一个“www.karthikts.com -> abcd”,abcd是注册商自己提供的IP。
现在我想执行以下活动,因此需要一些指针/参考来实现它们。
A]
我想将 karthikts.com 下的所有子域名的 DNS 记录管理委托给另一个名称服务器,与此相关的两个查询:
如何将 karthikts.com 下的所有子域名委托给新名称服务器?NS 记录的格式是什么?它接受通配符吗?像这样:“*.karthikts.com => ipx”?
如何让服务器充当名称服务器?我知道 DNS 服务器在 UDP 端口 53 上运行,但我如何获得它?是否有可用的开源 DNS 服务器软件,还是它随操作系统一起提供?此外,如何将我的子域的新 DNS 记录提供给 DNS 服务器?
二]
假设我有两个子域,其 A 记录分别为oxygen.karthikts.com => ip1 和 carbon.karthikts.com => ip2。是否可以编写一个 Python 程序,将动态 DNS 更新发送到我的名称服务器,并每半小时将映射切换到oxygen.karthikts.com => ip2 和 carbon.karthikts.com => ip1。我不是在寻找解决方案,只是想知道是否可行,如果可行,是否有任何 Python 库可以进行动态 DNS 更新。
答案1
如何将 karthikts.com 下的所有子域名委托给新名称服务器?NS 记录的格式是什么?
NS 记录有一个字段 - 服务器的名称(但不是 IP 地址)。
例如,您当前的 NS 记录是:
@ NS ns1.crazydomains.com.
@ NS ns1.crazydomains.com.
在某些情况下,需要额外的“粘合记录”来使委派发挥作用。
它接受通配符吗?像这样:“*.karthikts.com => ipx”?
不,委托通配符不允许。
相反,委托你的整个域。您的注册商网站将有一个单独的选项,内容类似于“使用您自己的 DNS 服务器”。使用该选项将完全委托域名(包括子域名)并禁用注册商的基于 Web 的记录编辑器。
如何让服务器充当名称服务器?我知道 DNS 服务器在 UDP 端口 53 上运行,但如何获取它?是否有可用的开源 DNS 服务器软件,或者它是否随操作系统一起提供?
有许多。流行的选择包括 NSD、PowerDNS、BIND 9、djbdns 以及 Windows Server 附带的选择。
DNS 同时使用 UDP 和 TCP;后者用于大型回复(对缺少 EDNS 支持的客户端)、用于您自己的权威服务器之间的传输(复制)以及用于 DNS-over-TLS。
另外,如何将我的子域名的新 DNS 记录提供给 DNS 服务器?
取决于所使用的软件。许多软件使用一种称为区域文件。有些可能有图形工具(例如 Windows Server,尽管它仍将数据存储在区域文件中)。有些可能支持从 MySQL 或 Postgres 读取数据。有些使用旧符文 (djbdns)。
是否可以编写一个 Python 程序,将动态 DNS 更新发送到我的名称服务器
是的,取决于所使用的 DNS 服务器软件。许多服务器通过标准支持更新RFC 2136协议(DNS UPDATE),有些可能有针对该协议的自定义 API。
对于 Python,您应该能够在任何功能齐全的 DNS 模块中找到 DNS UPDATE 支持。(我总是混淆 Python 的两个大型 DNS 模块,但我知道其中至少有一个肯定支持 UPDATE。)