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

Xiè*_*léi 3 domain-name-system bind

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

www1                    A       1.2.3.4
1                       CNAME   www1
Run Code Online (Sandbox Code Playgroud)

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

我知道有些网站在其主机名中使用整数,例如 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
...
Run Code Online (Sandbox Code Playgroud)

但是,当我使用 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
Run Code Online (Sandbox Code Playgroud)

不过,谷歌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
Run Code Online (Sandbox Code Playgroud)

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

sys*_*138 16

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 实现将其视为福音,因此不适用于所有数字。这是另一种说法,为了最大程度地与整个 Internet 兼容,请在您的主机名中至少放置一个字母。

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