如何在 DNS 主机名中使用数字?

如何在 DNS 主机名中使用数字?

我想要设置一个仅包含数字的 DNS 记录,例如:

www1                    A       1.2.3.4
1                       CNAME   www1

但是,纯数字似乎不起作用。

我知道有些网站在其主机名中使用整数,例如 400.5432.somefax.com,所以我想也许我应该转义这些数字?

编辑

看来 BIND 确实支持纯数字的标签:

$ dig @localhost 1.example.com
...
1.example.com.     43200  IN  CNAME  www1.example.com.
www1.example.com.  43200  IN  A      1.2.3.4
...

但是,当我使用Google DNS服务器(8.8.8.8)时,它失败了。

; <<>> DiG 9.7.3 <<>> 1.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 20866
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;1.example.com.         IN  A

;; AUTHORITY SECTION:
example.com.        1205    IN  SOA root.example.com. admin.example.com. 5 3600 600 43200 3600

;; Query time: 112 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue May  3 19:09:39 2011
;; MSG SIZE  rcvd: 94

不过,Google DNS 服务器对于数字标签应该没有问题,因为它可以解析例如83592583.qzone.qq.com

; <<>> DiG 9.7.3 <<>> 83592583.qzone.qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18687
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;83592583.qzone.qq.com.     IN  A

;; ANSWER SECTION:
83592583.qzone.qq.com.  600 IN  CNAME   qq.com.edgesuite.net.
qq.com.edgesuite.net.   9439    IN  CNAME   a1574.b.akamai.net.
a1574.b.akamai.net. 18  IN  A   60.254.175.65
a1574.b.akamai.net. 18  IN  A   60.254.175.64

;; Query time: 328 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue May  3 19:12:10 2011
;; MSG SIZE  rcvd: 134

因此,BIND9 没问题,Google DNS 没问题,我的区域配置也没问题,我可以dig @localhost 1.example.com给出正确的答案。但我不能dig @8.8.8.8 1.example.com(8.8.4.4 都不能),现在我卡住了。

答案1

RFC 1912 记录了常见的 DNS 配置错误,其中指出:

主机名标签中允许的字符仅是 ASCII 字母、数字和“-”字符。 标签可能不全是数字,但可以有一个前导数字(例如,3com.com)标签必须以字母或数字结尾和开头。请参阅 [RFC 1035] 和 [RFC 1123]。(标签最初在 [RFC 1035] 中被限制为以字母开头,据报道,一些较旧的主机仍无法适应 [RFC 1123] 中的放宽规定。)请注意,有些 Internet 主机名违反了此规则(411.org、1776.com)。[RFC 1033] 允许在标签中使用下划线,但 [RFC 1033] 仅供参考,并未定义标准。目前至少有一个流行的 TCP/IP 实现拒绝与名称中带有下划线的主机通信。

对于您的问题,标签相当于主机名。

RFC1912 是信息性的,而不是制定标准。在信息性 RFC 方面,一些 DNS 实现将其视为福音,因此无法处理所有数字。换句话说,为了与整个互联网实现最大程度的兼容性,请在主机名中至少添加一个字母。

显然它可以工作(哎呀,RFC 引用了示例!),所以诀窍是说服您的 DNS 服务器允许它。为此,我不得不听从其他用户的意见。

答案2

仅使用数字作为主机名是不允许的,根据 rfc1035:

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

答案3

除了关于 RFC 的答案之外,另一种解决方案是使用

1.fax IN A 1.2.3.4

在 的配置中example.com。您最终会得到一个 FQDN 1.fax.example.com

相关内容