私は、サーバー側からの助けをほとんどまたはまったく必要とせずに、クライアント側の実行によって達成できるサーバーのクライアント共有について考えていましたが、これを思いつきました-
ばかげて聞こえるかもしれませんが、ここに行きます -
- サーバーには、サーバー名、サーバーのIPアドレス、および対応するIPアドレスのMAC IDのフィールドを格納するテーブルがあります(はい、これは非常にWindows中心のアプローチです)
- クライアントがメインサーバーにログオンするたびに、サーバーにクエリを送信し、テーブルにあるそれぞれの MAC ID としてすべてのサーバーエントリの IP アドレスを返します (1 つのサーバーに複数の rsynced コピーがあると仮定しています)。
- 次に、クライアントはこれらの IP アドレスのそれぞれに traceroute を実装し、ホップカウントの昇順に配列に格納します。
- この配列を反復処理し、arp を実装して IP アドレスを MAC ID に解決します。次に、これらの MAC ID をステップ 1 でメイン サーバーから取得したものと比較します。一致する場合は、接続するサーバーの選択は、ホップ カウント数 + MAC IDS の一致 + 負荷を示すメトリックに基づいて行われます (その時点でのそのサーバーへの接続)。
このアイデアがどのように聞こえるかについての意見は大歓迎です。