Po pierwsze, pewne tło: mamy laboratorium zawierające garść dedykowanych serwerów Linux, które działają w odizolowanej sieci LAN. Wszystkie serwery działają w tym samym systemie operacyjnym (Debian Linux) i tym samym zastrzeżonym oprogramowaniu serwerowym, a procesy serwera komunikują się ze sobą w celu synchronizacji danych. Oznacza to, że dla każdego klienta nie ma znaczenia, z którym serwerem klient się łączy - każdy serwer zwróci te same dane, co każdy inny.
Wszystkie te serwery Linux uruchamiają demona avahi, aby same publikować nazwy hostów mDNS, co oznacza, że klient może wprowadzić np. „ Http: //linux-server-1.local ”. do swojej przeglądarki internetowej i połącz się z serwerem Linux nr 1 i tak dalej.
To wszystko dobrze i dobrze, z tym wyjątkiem, że użytkownik siedzący na komputerze klienckim (zwykle Mac lub Windows z zainstalowanym Bonjour) musi wiedzieć (lub dowiedzieć się), które serwery Linux są obecnie online, i musi upewnij się, że łączy się z jednym z nich. Na przykład, jeśli serwer nr 2 jest dzisiaj offline, a klient wprowadza „ http: //linux-server-2.local ”. na pasku adresu URL nie uzyska odpowiedzi. To oczywiście nie koniec świata, ale jest denerwujący dla początkujących użytkowników, którzy oczekują, że wszystko „po prostu zadziała”, a także utrudnia rozwój solidnego skryptu po stronie klienta (od skryptu po stronie klienta musiałby wiedzieć, jak jawnie radzić sobie z serwerami offline).
Mając to na uwadze, moje pytanie brzmi: czy można skonfigurować Avahi do publikowania także aliasu nazwy hosta mDNS w stylu anycast? Celem jest, aby każdy mógł usiąść ze swoim laptopem i wpisać „ http: //any-linux-server.local ”. (lub podobny) i połącz się z jednym z serwerów, który jest aktualnie online (ponownie, nie ma znaczenia, który z nich).
Pamiętaj, że musi to działać bez specjalnej konfiguracji laptopów klienckich, ponieważ nie mamy nad nimi kontroli (poza wymogiem zainstalowania Bonjour).
Zauważ też, że nie możemy polegać na obecności oddzielnego serwera nazw lub serwera proxy ani na żadnym konkretnym serwerze Linux, ponieważ spowodowałoby to jeden punkt awarii, którego staramy się uniknąć.