当我注意到奇怪的差异时,我正在玩通配域(考虑将它们用于未来的项目)。
我的域配置了通配符DNS条目(*.vgoc.info
)。我尝试ping a_.vgoc.info
,在Linux上,我得到了
$ ping a_.vgoc.info
ping: unknown host a_.vgoc.info
但是,在OS X上,我得到了
$ ping a_.vgoc.info
PING vgoc.info (174.2.65.138): 56 data bytes
,类似于Windows。
有没有人知道Linux是否有一些拒绝某些模式的特殊“名称验证”?例如,ping a_b.vgoc.info
和ping a__b.vgoc.info
工作正常,但ping a-.vgoc.info
没有。
根据我对DNS规范的解读,这些名称并非违法。是否有其他一些限制这些名称的参考文献?
答案 0 :(得分:2)
可能是因为根据RFC 1035,您的域名不合法。域名的每个部分(点之间)称为“标签”,这里是标签的语法:
<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]
<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
<let-dig-hyp> ::= <let-dig> | "-"
<let-dig> ::= <letter> | <digit>
请注意,下划线永远不合法,并且标签不能以连字符开头或结尾。