0

我正在使用 boto3 和 dnspython 库为 route-53 托管区域生成区域文件。我能够使用dnspython library(1.14.0)成功生成 A/CNAME/MX/TXT 记录集。但是,由于它没有任何 ALIAS TARGET (A Record) 的实现。我收到此错误:

**Traceback (most recent call last):
  File "/home/work/dns_check.py", line 156, in <module>
  rdataset = add_record_type_A(zone, name, address)
  File "/home/work/dns_check.py", line 28, in add_record_type_A
  rdata = rd_A.A(IN, A, address=address)
  File "/usr/local/lib/python2.7/dist-packages/dns/rdtypes/IN/A.py", line 34, in __init__
  dns.ipv4.inet_aton(address)
  File "/usr/local/lib/python2.7/dist-packages/dns/ipv4.py", line 51, in inet_aton
  raise dns.exception.SyntaxError
  dns.exception.SyntaxError: Text input is malformed.**

这是因为 ALIAS 就像不支持 IPV4 的“alias.testdomain.com”。我可以通过编辑python库来生成它。还有其他方法吗?

提前致谢

4

1 回答 1

0

您说得对,AWS“别名”记录不是标准的 DNS 记录类型。

如果您尝试使用 Route53 托管区域中的记录生成纯标准 DNS 区域文件,则最接近的标准记录类型将是 CNAME 记录。但是,您生成的区域文件的行为方式与 Route53 区域的行为方式不完全相同,因为“别名”记录在实时查询时返回目标的 A 记录,而您生成的区域文件提供 CNAME 记录,解析器关闭并进行另一轮查询以最终获得 A 记录。

还有一个警告,根据 RFC1033,CNAME 记录不能与其他记录类型一起使用。如果您有域根的别名记录,例如 testdomain.com,这通常会导致麻烦,因为它已经有 SOA、NS 和可能的 MX 和其他记录,所以它不应该有 CNAME 记录。

于 2016-07-26T05:05:46.437 回答