サーバーは起動し、VPN は接続済みなのに、外からは誰も参加できない。トンネルの内側にいる全員は参加できるので、アクセス規則のように見える。足りないのは許可ではなく経路であり、プレイヤーが到達できるアドレスとポート、そして応答が同じ道で戻るルートが必要になる。VPN の出口アドレスは内向きのホスティング機能ではない.

プレイヤーがサーバーに到達する四つの方法

本当の選択は、誰が観客か、そのパケットがどう入るかであり、名付ける価値のある四つの形がある。

DesignWho can joinWhat it costs
Private VPN playersOnly members of the tunnelEvery player needs a profile and identity
Provider public mappingAnyone with the assigned address and portDepends on supported protocol and mapping lifetime
Your own public relayAnyone who can reach the relayYou run and secure the relay
Deliberate direct entryAnyone who can reach your lineSplit routing has to stay coherent

非公開の設計は最も単純で最も不便であり、許可されたプレイヤーが制限されたネットワークに参加し、ゲームの非公開アドレスに到達する。与えるべきはゲームサービスへのアクセスであり、所有するすべてのホストを渡り歩ける共有 ID ではない。

中継の設計は軽視されやすい。到達可能なゲートウェイが公開トラフィックを受け取り、非公開トンネルでホストへ転送するので、プレイヤーがバックエンド VPN に参加することはない。中継はゲームのトランスポートを運ぶ必要があり、HTTP プロキシは汎用の UDP 中継ではない。

到着と同じ注意深さで応答を追う

変換する入口ごとに、外部アドレス、プロトコル、ポート、内部の宛先の四つを記録する。ポート転送のリファレンスは、人がつまずく区別、つまり宛先変換と、その先の通過を許すファイアウォール規則の違いを示している。片方だけ設定すると、正しく見えて何も通さないマッピングができる。

次に戻りを確認する。転送された要求は完璧に届いても、ホストが別の出口から応答するために失敗することがある。中継はバックエンドの流れを送信元変換するか、送信元を保ってルーティングに頼るかで、どちらも別の設計であり、ゲームのホストがプレイヤーのアドレスとして見るものを変える。

暗号化は壊れた戻り経路を救わない。守るのは区間であり、トポロジーではない。

トンネルが非公開にしないもの

ゲームの認証、更新、参加ポリシーは今も独自に働く。非公開のバックエンドトンネルは、意図的に公開した入口を非公開にはせず、プレイヤーから公開入口までの区間をまったく暗号化しない。これは二つの異なる跳躍と二つの異なる露出であり、ゲームは VPN 越しに動くと書いた設計メモは、その一方だけを説明している。

アドレスを誰かに告知する前に、どちらの区間が保護され、どちらがそうでないかを書き留める。

アドレスより先に観客を選ぶ

誰が参加できるべきかを決め、それに合う設計を選ぶ。友だちだけなら非公開トンネルか、許可リスト付きの中継だ。公開コミュニティなら中継か、実際に露出する直接入口にモデレーションを加える。それが決まったら、ゲームの文書化されたポートと告知アドレスの挙動を選んだ設計の中で使う。

テストが通るまで VPN アダプターを並べ替えない。それをすると、次の更新後に誰も再現できない未文書の経路を持つ、動くサーバーができる。

テストはプレイヤー二人、一人はトンネルの内側、一人は外側で、どちらも参加と通信の一巡を完了する。それ未満では入口が機能する証明にならない。

関連記事