我想将各种 FQDN 的简写添加到/etc/hosts
文件中,例如:
pyrrha.compsci.university.org. pyrrha
有没有办法强制本地 DNS 解析器递归处理条目/etc/hosts
?
为什么?将完整的 FQDN 插入每个配置文件感觉是多余的。在中心位置创建别名可以解决这个问题,并且还增加了一个抽象级别,允许在别名后面的 FQDN 发生变化时进行简单更新。
答案1
resolv.conf
允许您指定searchdomain
s。类似如下的条目:
search cse.iitb.ac.in it.iitb.ac.in iitb.ac.in
允许我:
$ ping -c1 www
PING www.cse.iitb.ac.in (10.105.1.3) 56(84) bytes of data.
64 bytes from cse.iitb.ac.in (10.105.1.3): icmp_seq=1 ttl=64 time=0.803 ms
--- www.cse.iitb.ac.in ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.803/0.803/0.803/0.000 ms
$ ping -c1 cygnus
PING cygnus.it.iitb.ac.in (10.129.1.1) 56(84) bytes of data.
64 bytes from cygnus.it.iitb.ac.in (10.129.1.1): icmp_seq=1 ttl=61 time=0.688 ms
--- cygnus.it.iitb.ac.in ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.688/0.688/0.688/0.000 ms
resolv.conf
不适用于 中的条目/etc/hosts
,但如果使用 DNS 服务器解析您的姓名,那么searchdomain
可能就是您要查找的内容。
答案2
您问题的第一部分要求 中的递归定义/etc/hosts
。这不是必需的,因为已经可以在那里指定多个主机名:
69.162.80.52 pyrrha.compsci.university.org pyrrha
请阅读手册页 ( man 5 hosts
) 了解主机文件的语法。
你的问题的第二部分是重复的/etc/hosts 中的 IPv6 区域 ID所以请在那里寻找答案。
答案3
原始发帖者的问题似乎不是关于/etc/hosts
,而是关于一个新的软件层:本地管理的网络主机别名列表。
是的,有一个可立即部署的解决方案。
- 安装名称服务器(例如 BIND)。
- 让它服务于一个新的(私有)区域
.host
(zone "host" {
…),带有一个主区域文件。 - 制作
search host
(甚至可能domain host
)第一行/etc/resolv.conf
和nameserver 127.0.0.1
第二行。如果有多台机器要使用该系统,则使用除该系统之外的机器上的名称服务器的 IP 地址。 - 将别名放置到 DNS 记录语义中的区域文件中(即,
IN CNAME
对于正确的别名,IN A
(IN AAAA
) 对于hosts
-style 显式 IPv4(v6) 地址)。 - 重新加载区域。
所有以新版本启动的应用程序resolv.conf
都可以访问您的别名而无需.host
附加。请注意第 4 点:CNAME
访问另一个区域中的域名需要.
目标使用 - 终止的 FQDN 语法。例如:
irc IN CNAME h.mixtery.name.