我想要设置一个仅包含数字的 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
。