Answers:
菜刀是对的。由于DNS的工作原理,“ a.alpha”的“ alpha”组件被视为DNS中的离散“标签”。使用带点的主机名会导致使用DNS的任何系统产生不一致的结果。
Avahi确实与DNS名称进行交互,特别是该<host-name>
指令需要在其中包含服务的DNS FQDN,因此它也受制于DNS与点名的不一致。
不要使用点名。
主机的完整主机名通常是配备了域的FQDN(完全限定域名),在linux中应该以的输出作为host --fqdn
,第一个点之前的部分被视为主机的昵称。但是,不同的系统(Linux,SunOS等)已经以各种方式实现了“ hostnick”概念。如:
另外,hostnick的概念有点变:
而且,更复杂的是,host
来自bind9-host 的命令通过-N <int>
选择控制是否使用搜索域而违反了DNS标准。这会根据情况以各种方式中断DNS查找。DNS应该采用任何查找方式来查找带有尾随点的名称,从字面上看是要查找的内容,对于其他名称,则使用从/etc/resolv.conf
到的附加域来查找它们,直到找到匹配项或它们都失败为止(这些域隐含尾随点)。[这是从内存中获取的,如果通用过程在我错过的RFC中有所更改,请发表评论]
这样,如果您在hostnick中使用点,该host
命令可能会破坏内容,破坏使用它进行查找的脚本。我个人认为它是难以置信的,它host
已经崩溃了,而且即使在今天,我似乎也正在破坏我的家庭网络中的系统上的查找,因为我在家中同时拥有IPv4和-v6,并且具有.v4之类的名称。作为额外的,特定于版本的简短格式,host
即使ping
发现它们很好也无法查找。
无论如何,极少尝试在hostnicks中加点,因此即使没有host
's的脑残,我也建议即使从简单的语义学角度来看,也要坚持使用无点的hostnicks。
如上所述,正确的答案肯定是“不要那样做”。
对于一些可能有用且绝对切线的阅读,请继续:
您是在谈论dns解析还是命令行提示符?如果您要修复命令行提示符,只需使用$ PS1(或类似的非bash / sh等效项,如果适用)。
如果您确实希望将a.alpha作为可以解析为Interweb上IP地址的主机名,则可以这样做,但这可能涉及每个主机名后缀(例如,EG alpha,beta等)的子域。
甚至有可能您可以配置DNS服务器使其工作而无需创建子域。您可以在父域的区域文件中提供子域名称服务器的IP地址,因此它可能“有效”。这是因为当有人向您的DNS服务器询问a.alpha.examaple.com的IP地址时,他们向DNS服务器询问了example.com,并且如果该DNS服务器已经挂起了该地址,它将回答并回答,而不是尝试将您移交给子域的权威服务器。可能会因缺少SOA而感到困惑……因此,也许您为每个主机前缀添加了一个A记录,为每个主机后缀添加了一个SOA。是的,那是票...
互联网上的所有内容仍然会认为您的主机名是“ a”,而您的域名是alpha.example.com。