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 服务器允许它。为此,我将不得不听从其他用户的意见。