首先,有一些背景知识:我们有一个实验室,其中包含一些在隔离的LAN上运行的专用Linux服务器。所有服务器都运行相同的OS(Debian Linux)和相同的专有服务器软件,并且服务器进程相互通信以保持其数据同步。这意味着就任何客户端而言,客户端连接到哪个服务器都没有关系-任何服务器都将返回与其他服务器相同的数据。
这些Linux服务器都运行avahi-daemon为其自身发布mDNS主机名,这意味着客户端可以输入“ http://linux-server-1.local”。进入他的Web浏览器并连接到Linux服务器1,依此类推。
一切都很好,除了这意味着坐在客户端计算机(通常是安装了Bonjour的Mac或Windows笔记本电脑)上的用户必须知道(或弄清楚)哪些Linux服务器当前在线,并且他必须确保他连接到其中之一。例如,如果服务器#2今天离线,并且客户端输入“ http://linux-server-2.local”。进入他的网址栏,他不会得到回应。当然,这还不是世界末日,但对于希望一切都能“正常运行”的新手用户而言,这很烦人,而且这会使健壮的客户端脚本的开发变得更加复杂(因为客户端脚本将需要知道如何明确处理离线服务器)。
考虑到这一点,我的问题是:是否可以将Avahi配置为发布任意播样式mDNS主机名别名?目标是任何人都可以坐在笔记本电脑上,输入“ http://any-linux-server.local”。(或类似),并连接到当前在线的一台服务器(再次,哪一台都没有关系)。
请注意,这需要在不对客户端便携式计算机进行任何特殊配置的情况下进行,因为我们无法控制它们(除了要求他们安装Bonjour之外)。
还要注意,我们不能依赖于单独的名称服务器或代理服务器,也不可以依赖于任何特定的Linux服务器,因为那样会引入单点故障,我们试图避免这种情况。