Đầu tiên, một số thông tin cơ bản: Chúng tôi đã có một phòng thí nghiệm chứa một số máy chủ Linux chuyên dụng chạy trên mạng LAN bị cô lập. Tất cả các máy chủ chạy cùng một hệ điều hành (Debian Linux) và cùng một phần mềm máy chủ độc quyền và các quy trình máy chủ liên lạc với nhau để giữ cho dữ liệu của chúng được đồng bộ hóa. Điều đó có nghĩa là theo như bất kỳ máy khách nào có liên quan, thì máy khách đó kết nối với máy chủ nào - bất kỳ máy chủ nào cũng sẽ trả về cùng một dữ liệu như bất kỳ máy chủ nào khác.
Tất cả các máy chủ Linux này đều chạy avahi-daemon để xuất bản tên máy chủ mDNS, điều đó có nghĩa là máy khách có thể nhập, ví dụ: " http: //linux-server-1.local ." vào trình duyệt web của mình và kết nối với máy chủ Linux # 1, v.v.
Điều này rất tốt và tốt, ngoại trừ điều đó có nghĩa là người dùng ngồi ở máy khách (thường là máy tính xách tay Mac hoặc Windows đã cài đặt Bonjour) phải biết (hoặc tìm hiểu) máy chủ Linux nào hiện đang trực tuyến và anh ta phải hãy chắc chắn rằng anh ấy kết nối với một trong những người đó. Ví dụ: nếu máy chủ số 2 ngoại tuyến hôm nay và máy khách nhập " http: //linux-server-2.local ." vào thanh URL của anh ấy, anh ấy sẽ không nhận được phản hồi. Tất nhiên, đó không phải là ngày tận thế, nhưng thật khó chịu cho những người dùng mới, những người hy vọng mọi thứ sẽ "chỉ hoạt động", và nó cũng làm cho việc phát triển kịch bản phía máy khách mạnh mẽ trở nên phức tạp hơn (vì kịch bản phía máy khách sẽ cần phải biết cách đối phó với các máy chủ ngoại tuyến một cách rõ ràng).
Với ý nghĩ đó, câu hỏi của tôi là: có thể định cấu hình Avahi để xuất bản bí danh tên máy chủ mDNS kiểu anycast không? Mục tiêu là bất cứ ai cũng có thể ngồi xuống với máy tính xách tay của mình, nhập " http: //any-linux-server.local ." (hoặc tương tự) và được kết nối với một trong các máy chủ hiện đang hoạt động (một lần nữa, không quan trọng là máy chủ nào).
Lưu ý rằng điều này cần phải hoạt động mà không có bất kỳ cấu hình đặc biệt nào của máy tính xách tay khách, vì chúng tôi không có quyền kiểm soát chúng (ngoài yêu cầu chúng đã cài đặt Bonjour).
Cũng lưu ý rằng chúng ta không thể dựa vào sự hiện diện của một máy chủ tên hoặc hộp proxy riêng biệt hoặc vào sự hiện diện của bất kỳ máy chủ Linux cụ thể nào, vì điều đó sẽ gây ra một điểm thất bại duy nhất mà chúng ta đang cố gắng tránh.