1

基本的にオンラインゲームを作っています。すべてのユーザー名/パスワード情報を保持する 1 つのサーバー (ログイン サーバー) と、ゲームをホストする 1 つ以上のサーバー (ゲーム サーバー) があります。クライアントは、資格情報を検証するログイン サーバーに接続し、使用しているゲーム サーバーを確認してから、そのサーバーにクライアントに接続するように指示します。

私はセキュリティについてほとんど知りませんが、ゲームサーバーがクライアントをリッスンするのではなく、クライアントがゲームサーバーからの接続をリッスンする方が安全であると考えました。これにより、少なくとも DDoS 攻撃の防止が容易になると考えました。

問題は、サーバーが特定のタイプのルーターまたはロードバランサーの背後にある場合、クライアントの IP を簡単に取得できないことを読んだことです。ログインサーバーがゲームサーバーに接続先を伝えるために必要です...開いている接続を転送できない限り。特定のゲームには、クライアントを 1 つまたは別のサーバー間でフロートさせるサーバー クラスターがあると思います。それは一般的にどのように行われますか?

多分私は道を外れていますか?

4

2 に答える 2

2

DDoS を回避するために考えられる解決策の 1 つは、 がlogin serverに接続しgame server、ポートを開くように要求することです。これにより、game serverはランダムport numberを返し、login serverそれを が に送信できますclient

は、そのポートを閉じるclient前に、ランダムに割り当てられたポートに接続するための 1 分間のウィンドウとしましょう。game server

ただのアイデア。

Client connects to Login Server:Standard Port
Login Server connects to Game Server:Standard Port
Game Server sends Random Port to Login Server
Login Server sends Random Port to Client
Client connects to Game Server:Random Port
于 2013-02-19T14:42:07.483 に答える
1

あなたが思うように接続を転送することはできません。基本的に、クライアントに新しいサーバーへの別の接続を作成するように指示する必要があります。

接続先の新しいゲーム サーバーの IP とポートを示すある種の転送コマンドを使用して、クライアントに応答できます。新しいサーバーに接続し、既存のサーバーから切断できます。

于 2013-02-19T14:40:18.867 に答える