1

我正在开发一个接口,以允许我们的客户自行更新他们的 DNS。

我有两个问题:

  1. 什么构成有效的有效主机和目标记录?(A, CNAME, MX, TXT) 即如果用户输入........作为主机和目标DNS服务器不会这样。
  2. 有没有我可以用来清理用户输入的正则表达式?

顺便说一句,它是 BIND9 DNS 和 C# Web 应用程序。

谢谢,

凯尔

4

4 回答 4

3

域名标签在技术上可以包含任何八位字节值,但通常它们只包含字母数字以及连字符和下划线字符。

这来自RFC 1035第 2.3.1 节中的建议:

标签必须遵循 ARPANET 主机名的规则。它们必须以字母开头,以字母或数字结尾,并且只有字母、数字和连字符作为内部字符。长度也有一些限制。标签不得超过 63 个字符。

下划线字符是最近添加的,通常用于SRV记录的标签部分。

.如果您要让用户创建自己的子域,您也可以允许使用 " " 字符。

可能的是:

  • A记录 - 必须是点分四线 IP 地址
  • CNAME记录 - 必须是其他一些合法标签
  • MX记录 - 16 位整数优先级字段和合法主机名。注意:有些人贴上标签,这些标签本身只指向CNAME唱片。这是不受欢迎的。
  • TXT记录 - 你喜欢的任何东西!

请注意,在每种情况下,如果您确实允许任何不在正常集中的字符,如果它们被存储在 BIND 格式区域文件中,则需要对其进行转义。

于 2009-02-06T09:22:17.757 回答
1

答案过去很容易,但现在不再那么容易了。

您几乎可以使用任何 Unicode 字符,但它们应该经过规范化和编码过程。

请参阅 RFC 3490 (IDNA)、RFC 3454 (Stringprep)、RFC 3491 (Nameprep)、RFC 3492 (Punycode)

或者使用 Wikipedia 了解全局(http://en.wikipedia.org/wiki/Internationalized_domain_name)。

于 2009-02-09T09:01:12.677 回答
0

不要忘记 AAAA,即 IPv6 地址(请记住,距离我们用完 IPv4 地址仅剩两年时间......)。

对于合法名称,请阅读 RFC 1123,第 2.1 节。域名可以是任何东西主机名有更严格的语法(参见 RFC 1123)。

于 2009-02-09T08:01:29.653 回答
0

除了上面的建议,如果有人仍然面临从 godaddy 导入区域文件到 route53 的问题,请删除评论。我花了几个小时才发现写成“;comment line here”的注释导致路由 53 系统无法正确解析区域文件。

于 2020-04-30T06:10:22.760 回答