关于 DNS 记录管理的一些疑问

关于 DNS 记录管理的一些疑问

我最近购买了一个域名,karthikts.com(仅作为示例,但这不是实际注册的域名),在注册商(crazydomains.com)仪表板上我可以看到以下配置:

  1. 我被分配了两个名称服务器,ns1.crazydomains.com 和 ns2.crazydomains.com
  2. 两个A记录,一个“karthikts.com -> abcd”,另一个“www.karthikts.com -> abcd”,abcd是注册商自己提供的IP。

现在我想执行以下活动,因此需要一些指针/参考来实现它们。

A]

我想将 karthikts.com 下的所有子域名的 DNS 记录管理委托给另一个名称服务器,与此相关的两个查询:

  1. 如何将 karthikts.com 下的所有子域名委托给新名称服务器?NS 记录的格式是什么?它接受通配符吗?像这样:“*.karthikts.com => ipx”?

  2. 如何让服务器充当名称服务器?我知道 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。

另外,如何将我的子域名的新 D​​NS 记录提供给 DNS 服务器?

取决于所使用的软件。许多软件使用一种称为区域文件。有些可能有图形工具(例如 Windows Server,尽管它仍将数据存储在区域文件中)。有些可能支持从 MySQL 或 Postgres 读取数据。有些使用旧符文 (djbdns)。

是否可以编写一个 Python 程序,将动态 DNS 更新发送到我的名称服务器

是的,取决于所使用的 DNS 服务器软件。许多服务器通过标准支持更新RFC 2136协议(DNS UPDATE),有些可能有针对该协议的自定义 API。

对于 Python,您应该能够在任何功能齐全的 DNS 模块中找到 DNS UPDATE 支持。(我总是混淆 Python 的两个大型 DNS 模块,但我知道其中至少有一个肯定支持 UPDATE。)

相关内容